ol-cesium
Version:
OpenLayers Cesium integration library
1 lines • 67.7 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("ol/geom/Point.js"),require("ol/easing.js"),require("ol/layer/Tile.js"),require("ol/layer/Image.js"),require("ol/proj.js"),require("ol/source/ImageStatic.js"),require("ol/source/ImageWMS.js"),require("ol/source/TileImage.js"),require("ol/source/TileWMS.js"),require("ol/source/VectorTile.js"),require("ol/source/Image.js"),require("ol/source.js"),require("ol/format/MVT.js"),require("ol/style/Style.js"),require("ol/style/Stroke.js"),require("ol/render.js"),require("ol/util.js"),require("ol/structs/LRUCache.js"),require("ol/tilegrid.js"),require("ol/tileurlfunction.js"),require("ol/render/Feature.js"),require("ol/layer/VectorTile.js"),require("ol/extent.js"),require("ol/Observable.js"),require("ol/layer/Group.js"),require("ol/layer/BaseVector.js"),require("ol/source/Vector.js"),require("ol/layer/Layer.js"),require("ol/source/Cluster.js"),require("ol/layer/Vector.js"),require("ol/style/Icon.js"),require("ol/geom/Polygon.js"),require("ol/geom/SimpleGeometry.js"),require("ol/geom.js"),require("ol/Overlay.js")):"function"==typeof define&&define.amd?define(["ol/geom/Point.js","ol/easing.js","ol/layer/Tile.js","ol/layer/Image.js","ol/proj.js","ol/source/ImageStatic.js","ol/source/ImageWMS.js","ol/source/TileImage.js","ol/source/TileWMS.js","ol/source/VectorTile.js","ol/source/Image.js","ol/source.js","ol/format/MVT.js","ol/style/Style.js","ol/style/Stroke.js","ol/render.js","ol/util.js","ol/structs/LRUCache.js","ol/tilegrid.js","ol/tileurlfunction.js","ol/render/Feature.js","ol/layer/VectorTile.js","ol/extent.js","ol/Observable.js","ol/layer/Group.js","ol/layer/BaseVector.js","ol/source/Vector.js","ol/layer/Layer.js","ol/source/Cluster.js","ol/layer/Vector.js","ol/style/Icon.js","ol/geom/Polygon.js","ol/geom/SimpleGeometry.js","ol/geom.js","ol/Overlay.js"],t):"object"==typeof exports?exports.olcs=t(require("ol/geom/Point.js"),require("ol/easing.js"),require("ol/layer/Tile.js"),require("ol/layer/Image.js"),require("ol/proj.js"),require("ol/source/ImageStatic.js"),require("ol/source/ImageWMS.js"),require("ol/source/TileImage.js"),require("ol/source/TileWMS.js"),require("ol/source/VectorTile.js"),require("ol/source/Image.js"),require("ol/source.js"),require("ol/format/MVT.js"),require("ol/style/Style.js"),require("ol/style/Stroke.js"),require("ol/render.js"),require("ol/util.js"),require("ol/structs/LRUCache.js"),require("ol/tilegrid.js"),require("ol/tileurlfunction.js"),require("ol/render/Feature.js"),require("ol/layer/VectorTile.js"),require("ol/extent.js"),require("ol/Observable.js"),require("ol/layer/Group.js"),require("ol/layer/BaseVector.js"),require("ol/source/Vector.js"),require("ol/layer/Layer.js"),require("ol/source/Cluster.js"),require("ol/layer/Vector.js"),require("ol/style/Icon.js"),require("ol/geom/Polygon.js"),require("ol/geom/SimpleGeometry.js"),require("ol/geom.js"),require("ol/Overlay.js")):e.olcs=t(e["ol/geom/Point.js"],e["ol/easing.js"],e["ol/layer/Tile.js"],e["ol/layer/Image.js"],e["ol/proj.js"],e["ol/source/ImageStatic.js"],e["ol/source/ImageWMS.js"],e["ol/source/TileImage.js"],e["ol/source/TileWMS.js"],e["ol/source/VectorTile.js"],e["ol/source/Image.js"],e["ol/source.js"],e["ol/format/MVT.js"],e["ol/style/Style.js"],e["ol/style/Stroke.js"],e["ol/render.js"],e["ol/util.js"],e["ol/structs/LRUCache.js"],e["ol/tilegrid.js"],e["ol/tileurlfunction.js"],e["ol/render/Feature.js"],e["ol/layer/VectorTile.js"],e["ol/extent.js"],e["ol/Observable.js"],e["ol/layer/Group.js"],e["ol/layer/BaseVector.js"],e["ol/source/Vector.js"],e["ol/layer/Layer.js"],e["ol/source/Cluster.js"],e["ol/layer/Vector.js"],e["ol/style/Icon.js"],e["ol/geom/Polygon.js"],e["ol/geom/SimpleGeometry.js"],e["ol/geom.js"],e["ol/Overlay.js"])}(self,((e,t,i,r,s,o,n,a,l,c,u,h,m,d,g,p,C,y,_,f,v,w,S,L,T,b,P,E,R,x,j,A,O,F,I)=>(()=>{"use strict";var G={911:e=>{e.exports=L},312:e=>{e.exports=I},177:e=>{e.exports=t},235:e=>{e.exports=S},401:e=>{e.exports=m},524:e=>{e.exports=F},206:t=>{t.exports=e},253:e=>{e.exports=A},988:e=>{e.exports=O},515:e=>{e.exports=b},604:e=>{e.exports=T},330:e=>{e.exports=r},582:e=>{e.exports=E},164:e=>{e.exports=i},425:e=>{e.exports=x},996:e=>{e.exports=w},24:e=>{e.exports=s},817:e=>{e.exports=p},115:e=>{e.exports=v},432:e=>{e.exports=h},63:e=>{e.exports=R},673:e=>{e.exports=u},606:e=>{e.exports=o},469:e=>{e.exports=n},623:e=>{e.exports=a},886:e=>{e.exports=l},830:e=>{e.exports=P},622:e=>{e.exports=c},750:e=>{e.exports=y},962:e=>{e.exports=j},51:e=>{e.exports=g},193:e=>{e.exports=d},628:e=>{e.exports=_},423:e=>{e.exports=f},280:e=>{e.exports=C}},M={};function V(e){var t=M[e];if(void 0!==t)return t.exports;var i=M[e]={exports:{}};return G[e](i,i.exports,V),i.exports}V.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return V.d(t,{a:t}),t},V.d=(e,t)=>{for(var i in t)V.o(t,i)&&!V.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},V.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),V.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var k={};return(()=>{V.r(k),V.d(k,{AbstractSynchronizer:()=>ke,ContribLazyLoader:()=>pt,ContribManager:()=>Ct,FeatureConverter:()=>Je,MaskDrawer:()=>mt,OLCSCamera:()=>Ge,OLImageryProvider:()=>j,RasterSynchronizer:()=>De,VectorLayerCounterpart:()=>Qe,VectorSynchronizer:()=>et,applyHeightOffsetToGeometry:()=>te,attributionsFunctionToCredits:()=>be,autoDrawMask:()=>dt,bottomFovRay:()=>ce,calcDistanceForResolution:()=>Pe,calcResolutionForDistance:()=>Ee,computeAngleToZenith:()=>he,computeBoundingBoxAtTarget:()=>ee,computePixelSizeAtCoordinate:()=>J,computeRectangle:()=>ut,computeSignedTiltAngleOnGlobe:()=>le,convertColorToCesium:()=>fe,convertUrlToCesium:()=>ve,createMatrixAtCoordinates:()=>ie,default:()=>yt,extentToRectangle:()=>me,isCesiumProjection:()=>Te,limitCameraToBoundingSphere:()=>Re,normalizeView:()=>Le,ol4326CoordinateArrayToCsCartesians:()=>ye,ol4326CoordinateToCesiumCartesian:()=>Ce,olGeometryCloneTo4326:()=>_e,pickBottomPoint:()=>ne,pickCenterPoint:()=>ae,pickOnTerrainOrEllipsoid:()=>oe,resetToNorthZenith:()=>we,rotateAroundAxis:()=>re,rotateAroundBottomCenter:()=>Se,setHeadingUsingBottomCenter:()=>se,signedAngleBetween:()=>ue,sourceToImageryProvider:()=>de,takeScreenshot:()=>gt,tileLayerToImageryLayer:()=>ge,updateCesiumLayerProperties:()=>pe});var e={};V.r(e),V.d(e,{applyHeightOffsetToGeometry:()=>te,attributionsFunctionToCredits:()=>be,bottomFovRay:()=>ce,calcDistanceForResolution:()=>Pe,calcResolutionForDistance:()=>Ee,computeAngleToZenith:()=>he,computeBoundingBoxAtTarget:()=>ee,computePixelSizeAtCoordinate:()=>J,computeSignedTiltAngleOnGlobe:()=>le,convertColorToCesium:()=>fe,convertUrlToCesium:()=>ve,createMatrixAtCoordinates:()=>ie,extentToRectangle:()=>me,isCesiumProjection:()=>Te,limitCameraToBoundingSphere:()=>Re,normalizeView:()=>Le,ol4326CoordinateArrayToCsCartesians:()=>ye,ol4326CoordinateToCesiumCartesian:()=>Ce,olGeometryCloneTo4326:()=>_e,pickBottomPoint:()=>ne,pickCenterPoint:()=>ae,pickOnTerrainOrEllipsoid:()=>oe,resetToNorthZenith:()=>we,rotateAroundAxis:()=>re,rotateAroundBottomCenter:()=>Se,setHeadingUsingBottomCenter:()=>se,signedAngleBetween:()=>ue,sourceToImageryProvider:()=>de,tileLayerToImageryLayer:()=>ge,updateCesiumLayerProperties:()=>pe});var t=V(206),i=V.n(t);let r,s;function o(){if(void 0===r){const e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges; image-rendering: crisp-edges; image-rendering: pixelated;");const t=e.style.imageRendering;r=!!t,r&&(s=t)}return r}function n(e){return e.get("olcs.projection")||e.getProjection()}let a=0;function l(e){return e.olcs_uid||(e.olcs_uid=++a)}function c(e){const t=e,i=t.readyPromise;return i||(void 0!==t.ready?t.ready?Promise.resolve(e):new Promise(((i,r)=>{const s=setInterval((()=>{t.ready&&(clearInterval(s),i(e))}),20)})):Promise.reject("Not a readyable object"))}var u=V(177),h=V(164),m=V.n(h),d=V(330),g=V.n(d),p=V(24),C=V(606),y=V.n(C),_=V(469),f=V.n(_),v=V(623),w=V.n(v),S=V(886),L=V.n(S),T=V(622),b=V.n(T),P=V(673),E=V(432);function R(){const e=document.createElement("canvas");return e.width=1,e.height=1,e}const x=function(){const e=new E.Tile({projection:"EPSG:3857",wrapX:!0}).getTileCoordForTileUrlFunction([6,-31,22]);return e&&33===e[1]&&22===e[2]}();class j{get ready(){return this.ready_}get rectangle(){return this.rectangle_}get tilingScheme(){return this.tilingScheme_}get _ready(){return this.ready_}get tileWidth(){const e=this.source_.getTileGrid();if(e){const t=e.getTileSize(0);return Array.isArray(t)?t[0]:t}return 256}get tileHeight(){const e=this.source_.getTileGrid();if(e){const t=e.getTileSize(0);return Array.isArray(t)?t[1]:t}return 256}get maximumLevel(){const e=this.source_.getTileGrid();return e?e.getMaxZoom():18}get minimumLevel(){return 0}get tileDiscardPolicy(){}get hasAlphaChannel(){return!0}pickFeatures(e,t,i,r,s){}constructor(e,t,i){this.emptyCanvas_=R(),this.emptyCanvasPromise_=Promise.resolve(this.emptyCanvas_),this.errorEvent=new Cesium.Event,this.source_=t,this.projection_=null,this.ready_=!1,this.fallbackProj_=i||null,this.tilingScheme_=new Cesium.WebMercatorTilingScheme,this.rectangle_=null,this.map_=e,this.shouldRequestNextLevel=!1;const r=this.source_.get("olcs.proxy");r&&("function"==typeof r?this.proxy={getURL:r}:"string"==typeof r&&(this.proxy=new Cesium.DefaultProxy(r))),this.source_.on("change",(e=>{this.handleSourceChanged_()})),this.handleSourceChanged_()}handleSourceChanged_(){if(!this.ready_&&"ready"==this.source_.getState()){this.projection_=n(this.source_)||this.fallbackProj_;const e={numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1};if(null!==this.source_.tileGrid&&this.source_.tileGrid.forEachTileCoord(this.projection_.getExtent(),0,(t=>{let[i,r,s]=t;e.numberOfLevelZeroTilesX=r+1,e.numberOfLevelZeroTilesY=s+1})),"EPSG:4326"===this.projection_.getCode())this.shouldRequestNextLevel=1===e.numberOfLevelZeroTilesX&&1===e.numberOfLevelZeroTilesY,this.tilingScheme_=new Cesium.GeographicTilingScheme(e);else{if("EPSG:3857"!==this.projection_.getCode())return;this.shouldRequestNextLevel=!1,this.tilingScheme_=new Cesium.WebMercatorTilingScheme(e)}this.rectangle_=this.tilingScheme_.rectangle,this.ready_=!0}}getTileCredits(e,t,i){const r=this.source_.getAttributions();if(!r)return[];const s=this.map_.getView().calculateExtent(this.map_.getSize()),o=this.map_.getView().getCenter();return be(r,this.shouldRequestNextLevel?i+1:i,o,s)}requestImage(e,t,i,r){const s=this.source_.getTileUrlFunction();if(s&&this.projection_){const r=this.shouldRequestNextLevel?i+1:i;let o=t;x||(o=-t-1);let n=s.call(this.source_,[r,e,o],1,this.projection_);return this.proxy&&(n=this.proxy.getURL(n)),n?Cesium.ImageryProvider.loadImage(this,n):this.emptyCanvasPromise_}return this.emptyCanvasPromise_}}var A=V(401),O=V.n(A),F=V(193),I=V.n(F),G=V(51),M=V.n(G),q=V(817),N=V(280),D=V(750),B=V.n(D),W=V(628),U=V(423),z=V(115),H=V.n(z);const K=new(O())({featureClass:H()}),Z=[new(I())({stroke:new(M())({color:"blue",width:2})})];class Y{get minimumLevel(){return this.minimumLevel_}get ready(){return this.ready_}get rectangle(){return this.rectangle_}get tilingScheme(){return this.tilingScheme_}getTileCredits(e,t,i){return[]}get _ready(){return this.ready_}get tileDiscardPolicy(){}get hasAlphaChannel(){return!0}pickFeatures(e,t,i,r,s){}constructor(e){this.emptyCanvas_=R(),this.emptyCanvasPromise_=Promise.resolve(this.emptyCanvas_),this.tilingScheme_=new Cesium.WebMercatorTilingScheme,this.ready_=!0,this.tileWidth=256,this.tileHeight=256,this.maximumLevel=20,this.minimumLevel_=0,this.projection_=(0,p.get)("EPSG:3857"),this.errorEvent=new Cesium.Event,this.urls=e.urls,this.rectangle_=e.rectangle||this.tilingScheme.rectangle,this.credit=e.credit,this.styleFunction_=e.styleFunction||(()=>Z),this.tileRectangle_=new Cesium.Rectangle;const t=void 0!==e.cacheSize?e.cacheSize:50;this.tileCache=new(B())(t),this.featureCache=e.featureCache||new(B())(t),this.minimumLevel_=e.minimumLevel||0;const i=(0,W.getForProjection)(this.projection_);this.tileFunction_=(0,U.createFromTemplates)(this.urls,i)}getTileFeatures(e,t,i){const r=this.getCacheKey_(e,t,i);let s;if(this.featureCache.containsKey(r)&&(s=this.featureCache.get(r)),!s){const o=this.getUrl_(e,t,i);if(s=fetch(o).then((e=>e.ok?e:Promise.reject(e))).then((e=>e.arrayBuffer())).then((e=>this.readFeaturesFromBuffer(e))),this.featureCache.set(r,s),this.featureCache.getCount()>2*this.featureCache.highWaterMark)for(;this.featureCache.canExpireCache();)this.featureCache.pop()}return s}readFeaturesFromBuffer(e){let t;N.VERSION<="6.4.4"&&(t={extent:[0,0,4096,4096],dataProjection:this.projection_,featureProjection:this.projection_});const i=K.readFeatures(e,t),r=this.tileWidth/4096;return i.forEach((e=>{const t=e.getFlatCoordinates();let i=!1;for(let e=0;e<t.length;++e)t[e]*=r,i&&(t[e]=this.tileWidth-t[e]),N.VERSION<="6.4.4"&&(i=!i)})),i}getUrl_(e,t,i){return this.tileFunction_([e,t,i],1,this.projection_)}getCacheKey_(e,t,i){return`${e}_${t}_${i}`}requestImage(e,t,i,r){if(i<this.minimumLevel_)return this.emptyCanvasPromise_;try{const r=this.getCacheKey_(i,e,t);let s;if(this.tileCache.containsKey(r)&&(s=this.tileCache.get(r)),!s&&(s=this.getTileFeatures(i,e,t).then((r=>{this.tilingScheme.tileXYToNativeRectangle(e,t,i,this.tileRectangle_);const s=(this.tileRectangle_.east-this.tileRectangle_.west)/this.tileWidth;return this.rasterizeFeatures(r,this.styleFunction_,s)})),this.tileCache.set(r,s),this.tileCache.getCount()>2*this.tileCache.highWaterMark))for(;this.tileCache.canExpireCache();)this.tileCache.pop();return s}catch(e){this.errorEvent.raiseEvent("could not render pbf to tile",e)}}rasterizeFeatures(e,t,i){const r=document.createElement("canvas"),s=(0,q.toContext)(r.getContext("2d"),{size:[this.tileWidth,this.tileHeight]});return e.forEach((e=>{const r=t(e,i);r&&(Array.isArray(r)?r.forEach((t=>{s.setStyle(t),s.drawGeometry(e)})):(s.setStyle(r),s.drawGeometry(e)))})),r}}var X=V(996),Q=V.n(X),$=V(235);function J(e,t){const i=e.camera,r=e.canvas,s=i.frustum,o=Cesium.Cartesian3.magnitude(Cesium.Cartesian3.subtract(i.position,t,new Cesium.Cartesian3));return s.getPixelDimensions(r.clientWidth,r.clientHeight,o,e.pixelRatio,new Cesium.Cartesian2)}function ee(e,t,i){const r=J(e,t),s=Cesium.Transforms.eastNorthUpToFixedFrame(t),o=Cesium.Matrix4.multiplyByPoint(s,new Cesium.Cartesian3(-r.x*i,-r.y*i,0),new Cesium.Cartesian3),n=Cesium.Matrix4.multiplyByPoint(s,new Cesium.Cartesian3(r.x*i,r.y*i,0),new Cesium.Cartesian3);return Cesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray([o,n])}function te(e,t){e.applyTransform(((e,i,r)=>{if(void 0!==r&&r>=3)for(let e=0;e<i.length;e+=r)i[e+2]=i[e+2]+t;return i}))}function ie(e,t,i,r){void 0===t&&(t=0),void 0===i&&(i=Cesium.Cartesian3.ZERO),void 0===r&&(r=new Cesium.Cartesian3(1,1,1));const s=Ce(e),o=Cesium.Transforms.eastNorthUpToFixedFrame(s),n=Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Z,-t),a=Cesium.Matrix4.fromTranslationQuaternionRotationScale(i,n,r);return Cesium.Matrix4.multiply(o,a,new Cesium.Matrix4)}function re(e,t,i,r,s){const o=Cesium.Math.clamp,n=Cesium.defaultValue,a=s,l=n(null==a?void 0:a.duration,500),c=n(null==a?void 0:a.easing,u.linear),h=null==a?void 0:a.callback;let m=0;const d=new Cesium.Matrix4,g=Date.now(),p=function(){const s=Date.now(),n=c(o((s-g)/l,0,1));e.transform.clone(d);const a=(n-m)*t;m=n,e.lookAtTransform(r),e.rotate(i,a),e.lookAtTransform(d),n<1?window.requestAnimationFrame(p):h&&h()};window.requestAnimationFrame(p)}function se(e,t,i,r){const s=e.camera,o=he(e,i),n=s.right,a=Cesium.Quaternion.fromAxisAngle(n,o),l=Cesium.Matrix3.fromQuaternion(a),c=new Cesium.Cartesian3;Cesium.Cartesian3.subtract(s.position,i,c);const u=new Cesium.Cartesian3;Cesium.Matrix3.multiplyByVector(l,c,u),Cesium.Cartesian3.add(u,i,u);re(s,t,u,Cesium.Matrix4.fromTranslation(u),r)}function oe(e,t){const i=e.camera.getPickRay(t);return e.globe.pick(i,e)||e.camera.pickEllipsoid(t)}function ne(e){const t=e.canvas;return oe(e,new Cesium.Cartesian2(t.clientWidth/2,t.clientHeight))}function ae(e){const t=e.canvas;return oe(e,new Cesium.Cartesian2(t.clientWidth/2,t.clientHeight/2))}function le(e){const t=e.camera,i=new Cesium.Ray(t.position,t.direction);let r=e.globe.pick(i,e);if(!r){const e=Cesium.Ellipsoid.WGS84,t=Cesium.IntersectionTests.rayEllipsoid(i,e);t&&(r=Cesium.Ray.getPoint(i,t.start))}if(!r)return;const s=new Cesium.Cartesian3;Cesium.Ellipsoid.WGS84.geocentricSurfaceNormal(r,s);const o=ue(t.direction,s,t.right)-Math.PI;return Cesium.Math.convertLongitudeRange(o)}function ce(e){const t=e.camera,i=t.frustum.fovy/2,r=t.direction,s=Cesium.Quaternion.fromAxisAngle(t.right,i),o=Cesium.Matrix3.fromQuaternion(s),n=new Cesium.Cartesian3;return Cesium.Matrix3.multiplyByVector(o,r,n),new Cesium.Ray(t.position,n)}function ue(e,t,i){const r=new Cesium.Cartesian3,s=new Cesium.Cartesian3,o=new Cesium.Cartesian3;Cesium.Cartesian3.normalize(e,r),Cesium.Cartesian3.normalize(t,s),Cesium.Cartesian3.cross(r,s,o);const n=Cesium.Cartesian3.dot(r,s),a=Cesium.Cartesian3.magnitude(o),l=Cesium.Cartesian3.dot(i,o),c=Math.atan2(a,n);return l>=0?c:-c}function he(e,t){const i=e.camera,r=i.frustum.fovy/2,s=ce(e),o=Cesium.Cartesian3.clone(s.direction);Cesium.Cartesian3.negate(o,o);const n=new Cesium.Cartesian3;Cesium.Ellipsoid.WGS84.geocentricSurfaceNormal(t,n);const a=new Cesium.Cartesian3;Cesium.Cartesian3.negate(i.right,a);return ue(n,o,a)+r}function me(e,t){if(e&&t){const i=(0,p.transformExtent)(e,t,"EPSG:4326");return Cesium.Rectangle.fromDegrees(i[0],i[1],i[2],i[3])}return null}function de(e,t,i,r){const s=t.get("olcs_skip");if(s)return null;let o=null;if(t instanceof f()&&t.getUrl()&&t.getImageLoadFunction()===P.defaultImageLoadFunction){const e={"olcs.proxy":t.get("olcs.proxy"),"olcs.extent":t.get("olcs.extent"),"olcs.projection":t.get("olcs.projection"),"olcs.imagesource":t};(t=new(L())({url:t.getUrl(),attributions:t.getAttributions(),projection:t.getProjection(),params:t.getParams()})).setProperties(e)}if(t instanceof w()){let r=n(t);if(r||(r=i),!Te(r))return null;o=new j(e,t,i)}else{if(!(t instanceof y())){if(t instanceof b()&&r instanceof Q()){let e=n(t);if(e||(e=i),!1===s){const i=e.getCode().split(":")[1],s=t.urls.map((e=>e.replace(i,"3857"))),n=r.getExtent(),a=me(n,e),l=t.get("olcs_minimumLevel"),c=t.getAttributions(),u=r.getStyleFunction();let h;if(n&&c){h=be(c,0,(0,$.getCenter)(n),n)[0]}return o=new Y({credit:h,rectangle:a,minimumLevel:l,styleFunction:u,urls:s}),o}return null}return null}{let e=n(t);if(e||(e=i),!Te(e))return null;{const e=Cesium.Rectangle.fromDegrees(t.getImageExtent()[0],t.getImageExtent()[1],t.getImageExtent()[2],t.getImageExtent()[3],new Cesium.Rectangle);o=new Cesium.SingleTileImageryProvider({url:t.getUrl(),rectangle:e})}}}return o}function ge(e,t,i){if(!(t instanceof m()||t instanceof g()||t instanceof Q()))return null;const r=t.getSource();if(!r)return null;let s=r.get("olcs_provider");if(s||(s=de(e,r,i,t)),!s)return null;const o={},n=t.get("olcs.extent")||t.getExtent();n&&(o.rectangle=me(n,i));return new Cesium.ImageryLayer(s,o)}function pe(e,t){let i=1,r=!0;[e.layer].concat(e.parents).forEach((e=>{const t=e.getOpacity();void 0!==t&&(i*=t);const s=e.getVisible();void 0!==s&&(r=r&&s)})),t.alpha=i,t.show=r}function Ce(e){const t=e;return t.length>2?Cesium.Cartesian3.fromDegrees(t[0],t[1],t[2]):Cesium.Cartesian3.fromDegrees(t[0],t[1])}function ye(e){const t=Ce,i=[];for(let r=0;r<e.length;++r)i.push(t(e[r]));return i}function _e(e,t){const i=(0,p.get)("EPSG:4326"),r=(0,p.get)(t);if(r.getCode()!==i.getCode()){const t=e.getProperties();(e=e.clone()).transform(r,i),e.setProperties(t)}return e}function fe(e){if(e=e||"black",Array.isArray(e))return new Cesium.Color(Cesium.Color.byteToFloat(e[0]),Cesium.Color.byteToFloat(e[1]),Cesium.Color.byteToFloat(e[2]),e[3]);if("string"==typeof e)return Cesium.Color.fromCssColorString(e);if(e instanceof CanvasPattern||e instanceof CanvasGradient){const t=document.createElement("canvas"),i=t.getContext("2d");return t.width=t.height=256,i.fillStyle=e,i.fillRect(0,0,t.width,t.height),new Cesium.ImageMaterialProperty({image:t})}}function ve(e){let t="";const i=/\{(\d|[a-z])-(\d|[a-z])\}/,r=i.exec(e);if(r){e=e.replace(i,"{s}");const s=r[1].charCodeAt(0),o=r[2].charCodeAt(0);let n;for(n=s;n<=o;++n)t+=String.fromCharCode(n)}return{url:e,subdomains:t}}function we(e,t){return new Promise(((i,r)=>{const s=t.camera,o=ne(t);if(!o)return void r("Could not get bottom pivot");const n=e.getView().getRotation();if(void 0===n)return void r("The view is not initialized");const a=he(t,o);se(t,n,o);const l=Cesium.Matrix4.fromTranslation(o);re(s,-a,s.right,l,{callback:()=>{Le(e.getView()),i(void 0)}})}))}function Se(e,t){return new Promise(((i,r)=>{const s=e.camera,o=ne(e);if(!o)return void r("could not get bottom pivot");const n={callback:()=>i(void 0)},a=Cesium.Matrix4.fromTranslation(o),l=s.right;re(s,-t,l,a,n)}))}function Le(e,t){void 0===t&&(t=0);const i=e.getResolution();e.setRotation(t),e.constrainResolution?e.setResolution(e.constrainResolution(i)):e.setResolution(e.getConstrainedResolution(i))}function Te(e){const t="EPSG:3857"===e.getCode(),i="EPSG:4326"===e.getCode();return t||i}function be(e,t,i,r){if(!e)return[];let s=e({viewState:{zoom:t,center:i,projection:void 0,resolution:void 0,rotation:void 0},extent:r});return Array.isArray(s)||(s=[s]),s.map((e=>new Cesium.Credit(e,!0)))}function Pe(e,t,i,r){const s=i.canvas,o=i.camera.frustum.fovy,n=r.getMetersPerUnit();return e*s.clientHeight*n*Math.cos(Math.abs(t))/2/Math.tan(o/2)}function Ee(e,t,i,r){const s=i.canvas,o=i.camera.frustum.fovy,n=r.getMetersPerUnit();return 2*e*Math.tan(o/2)/n/Math.cos(Math.abs(t))/s.clientHeight}function Re(e,t,i){let r=!1;return function(){if(!r){const s=e.position,o=Cesium.Cartographic.fromCartesian(s);if(Cesium.Cartesian3.distance(t.center,s)>t.radius*i(o.height)){if(!0===e.flying)return;{r=!0;const i=()=>r=!1;e.flyToBoundingSphere(t,{complete:i,cancel:i})}}}}}class xe{constructor(e){this.repaintEventNames_=["mousemove","mousedown","mouseup","touchstart","touchend","touchmove","pointerdown","pointerup","pointermove","wheel"],this.ol3d=e,this.scene_=e.getCesiumScene(),this.canvas_=this.scene_.canvas,this._boundNotifyRepaintRequired=this.notifyRepaintRequired.bind(this),this.enable()}enable(){this.scene_.requestRenderMode=!0,this.scene_.maximumRenderTimeChange=1e3;for(const e of this.repaintEventNames_)this.canvas_.addEventListener(e,this._boundNotifyRepaintRequired,!1);window.addEventListener("resize",this._boundNotifyRepaintRequired,!1),this.ol3d.getOlMap().getLayerGroup().on("change",this._boundNotifyRepaintRequired)}disable(){for(const e of this.repaintEventNames_)this.canvas_.removeEventListener(e,this._boundNotifyRepaintRequired,!1);window.removeEventListener("resize",this._boundNotifyRepaintRequired,!1),this.ol3d.getOlMap().getLayerGroup().un("change",this._boundNotifyRepaintRequired),this.scene_.requestRenderMode=!1}restartRenderLoop(){this.notifyRepaintRequired()}notifyRepaintRequired(){this.scene_.requestRender()}}var je=V(911),Ae=V.n(je);function Oe(e){return 180*e/Math.PI}function Fe(e){return e*Math.PI/180}function Ie(e,t,i){const r=i||e.length;if(t)for(let i=0;i<r;++i)t[i]=e[i];return e}class Ge{constructor(e,t){this.viewListenKey_=null,this.toLonLat_=Ie,this.fromLonLat_=Ie,this.tilt_=0,this.distance_=0,this.lastCameraViewMatrix_=null,this.viewUpdateInProgress_=!1,this.scene_=e,this.cam_=e.camera,this.map_=t,this.map_.on("change:view",(e=>{this.setView_(this.map_.getView())})),this.setView_(this.map_.getView())}destroy(){(0,je.unByKey)(this.viewListenKey_),this.viewListenKey_=null}setView_(e){if(this.view_&&((0,je.unByKey)(this.viewListenKey_),this.viewListenKey_=null),this.view_=e,e){const t=(0,p.getTransform)(e.getProjection(),"EPSG:4326"),i=(0,p.getTransform)("EPSG:4326",e.getProjection());this.toLonLat_=t,this.fromLonLat_=i,this.viewListenKey_=e.on("propertychange",(e=>this.handleViewChangedEvent_())),this.readFromView()}else this.toLonLat_=Ie,this.fromLonLat_=Ie}handleViewChangedEvent_(){this.viewUpdateInProgress_||this.readFromView()}setHeading(e){this.view_&&this.view_.setRotation(e)}getHeading(){if(!this.view_)return;return this.view_.getRotation()||0}setTilt(e){this.tilt_=e,this.updateCamera_()}getTilt(){return this.tilt_}setDistance(e){this.distance_=e,this.updateCamera_(),this.updateView()}getDistance(){return this.distance_}setCenter(e){this.view_&&this.view_.setCenter(e)}getCenter(){if(this.view_)return this.view_.getCenter()}setPosition(e){if(!this.toLonLat_)return;const t=this.toLonLat_(e),i=new Cesium.Cartographic(Fe(t[0]),Fe(t[1]),this.getAltitude());this.cam_.setView({destination:Cesium.Ellipsoid.WGS84.cartographicToCartesian(i)}),this.updateView()}getPosition(){if(!this.fromLonLat_)return;const e=Cesium.Ellipsoid.WGS84.cartesianToCartographic(this.cam_.position);return this.fromLonLat_([Oe(e.longitude),Oe(e.latitude)])}setAltitude(e){const t=Cesium.Ellipsoid.WGS84.cartesianToCartographic(this.cam_.position);t.height=e,this.cam_.position=Cesium.Ellipsoid.WGS84.cartographicToCartesian(t),this.updateView()}getAltitude(){return Cesium.Ellipsoid.WGS84.cartesianToCartographic(this.cam_.position).height}updateCamera_(){if(!this.view_||!this.toLonLat_)return;const e=this.view_.getCenter();if(!e)return;const t=this.toLonLat_(e),i=new Cesium.Cartographic(Fe(t[0]),Fe(t[1]));if(this.scene_.globe){const e=this.scene_.globe.getHeight(i);i.height=e||0}const r=Cesium.Ellipsoid.WGS84.cartographicToCartesian(i),s={pitch:this.tilt_-Cesium.Math.PI_OVER_TWO,heading:-this.view_.getRotation(),roll:void 0};this.cam_.setView({destination:r,orientation:s}),this.cam_.moveBackward(this.distance_),this.checkCameraChange(!0)}readFromView(){if(!this.view_||!this.toLonLat_)return;const e=this.view_.getCenter();if(null==e)return;const t=this.toLonLat_(e),i=this.view_.getResolution();this.distance_=this.calcDistanceForResolution(i||0,Fe(t[1])),this.updateCamera_()}updateView(){if(!this.view_||!this.fromLonLat_)return;this.viewUpdateInProgress_=!0;const e=Cesium.Ellipsoid.WGS84,t=this.scene_,i=ae(t);let r=i;if(!r){const e=t.globe,i=this.cam_.positionCartographic.clone(),s=e.getHeight(i);i.height=s||0,r=Cesium.Ellipsoid.WGS84.cartographicToCartesian(i)}this.distance_=Cesium.Cartesian3.distance(r,this.cam_.position);const s=e.cartesianToCartographic(r);if(this.view_.setCenter(this.fromLonLat_([Oe(s.longitude),Oe(s.latitude)])),this.view_.setResolution(this.calcResolutionForDistance(this.distance_,s?s.latitude:0)),i){const t=this.cam_.position,r=new Cesium.Cartesian3;e.geocentricSurfaceNormal(i,r);const s=new Cesium.Cartesian3;Cesium.Cartesian3.subtract(t,i,s),Cesium.Cartesian3.normalize(s,s);const o=this.cam_.up,n=this.cam_.right,a=new Cesium.Cartesian3(-i.y,i.x,0),l=Cesium.Cartesian3.angleBetween(n,a),c=Cesium.Cartesian3.cross(i,o,new Cesium.Cartesian3).z;this.view_.setRotation(c<0?l:-l);const u=Math.acos(Cesium.Cartesian3.dot(r,s));this.tilt_=isNaN(u)?0:u}else this.view_.setRotation(this.cam_.heading),this.tilt_=-this.cam_.pitch+Math.PI/2;this.viewUpdateInProgress_=!1}checkCameraChange(e){const t=this.lastCameraViewMatrix_,i=this.cam_.viewMatrix;t&&Cesium.Matrix4.equalsEpsilon(t,i,1e-7)||(this.lastCameraViewMatrix_=i.clone(),!0!==e&&this.updateView())}calcDistanceForResolution(e,t){return Pe(e,t,this.scene_,this.view_.getProjection())}calcResolutionForDistance(e,t){return Ee(e,t,this.scene_,this.view_.getProjection())}}var Me=V(604),Ve=V.n(Me);class ke{constructor(e,t){this.layerMap={},this.olLayerListenKeys={},this.olGroupListenKeys_={},this.map=e,this.view=e.getView(),this.scene=t,this.olLayers=e.getLayerGroup().getLayers(),this.mapLayerGroup=e.getLayerGroup()}synchronize(){this.destroyAll(),this.addLayers_(this.mapLayerGroup)}orderLayers(){}addLayers_(e){const t=[{layer:e,parents:[]}];for(;t.length>0;){const e=t.splice(0,1)[0],i=e.layer,r=l(i).toString();this.olLayerListenKeys[r]=[];let s=null;if(i instanceof Ve())this.listenForGroupChanges_(i),i!==this.mapLayerGroup&&(s=this.createSingleLayerCounterparts(e)),s||i.getLayers().forEach((r=>{if(r){const s={layer:r,parents:i===this.mapLayerGroup?[]:[e.layer].concat(e.parents)};t.push(s)}}));else if(s=this.createSingleLayerCounterparts(e),!s){const t=r,i=e,s=()=>{const e=this.createSingleLayerCounterparts(i);e&&(i.layer.un("change",s),this.addCesiumObjects_(e,t,i.layer),this.orderLayers())};this.olLayerListenKeys[r].push(i.layer.on("change",s))}s&&this.addCesiumObjects_(s,r,i)}this.orderLayers()}addCesiumObjects_(e,t,i){this.layerMap[t]=e,this.olLayerListenKeys[t].push(i.on("change:zIndex",(()=>this.orderLayers()))),e.forEach((e=>{this.addCesiumObject(e)}))}removeAndDestroySingleLayer_(e){const t=l(e).toString(),i=this.layerMap[t];return i&&(i.forEach((e=>{this.removeSingleCesiumObject(e,!1),this.destroyCesiumObject(e)})),this.olLayerListenKeys[t].forEach(je.unByKey),delete this.olLayerListenKeys[t]),delete this.layerMap[t],!!i}unlistenSingleGroup_(e){if(e===this.mapLayerGroup)return;const t=l(e).toString();this.olGroupListenKeys_[t].forEach((e=>{(0,je.unByKey)(e)})),delete this.olGroupListenKeys_[t],delete this.layerMap[t]}removeLayer_(e){if(e){const t=[e];for(;t.length>0;){const e=t.splice(0,1)[0],i=this.removeAndDestroySingleLayer_(e);e instanceof Ve()&&(this.unlistenSingleGroup_(e),i||e.getLayers().forEach((e=>{t.push(e)})))}}}listenForGroupChanges_(e){const t=l(e).toString(),i=[];this.olGroupListenKeys_[t]=i;let r=[];const s=function(){const t=e.getLayers();t&&(r=[t.on("add",(e=>{this.addLayers_(e.element)})),t.on("remove",(e=>{this.removeLayer_(e.element)}))],i.push(...r))}.bind(this);s(),i.push(e.on("change:layers",(e=>{r.forEach((e=>{const t=i.indexOf(e);t>=0&&i.splice(t,1),(0,je.unByKey)(e)})),s()})))}destroyAll(){let e;for(e in this.removeAllCesiumObjects(!0),this.olGroupListenKeys_){this.olGroupListenKeys_[e].forEach(je.unByKey)}for(e in this.olLayerListenKeys)this.olLayerListenKeys[e].forEach(je.unByKey);this.olGroupListenKeys_={},this.olLayerListenKeys={},this.layerMap={}}}var qe=V(515),Ne=V.n(qe);class De extends ke{constructor(e,t){super(e,t),this.cesiumLayers_=t.imageryLayers,this.ourLayers_=new Cesium.ImageryLayerCollection}addCesiumObject(e){this.cesiumLayers_.add(e),this.ourLayers_.add(e)}destroyCesiumObject(e){e.destroy()}removeSingleCesiumObject(e,t){this.cesiumLayers_.remove(e,t),this.ourLayers_.remove(e,!1)}removeAllCesiumObjects(e){for(let t=0;t<this.ourLayers_.length;++t)this.cesiumLayers_.remove(this.ourLayers_.get(t),e);this.ourLayers_.removeAll(!1)}convertLayerToCesiumImageries(e,t){const i=ge(this.map,e,t);return i?[i]:null}createSingleLayerCounterparts(e){const t=e.layer,i=l(t).toString(),r=this.view.getProjection(),s=this.convertLayerToCesiumImageries(t,r);if(s){const r=[];if([e.layer].concat(e.parents).forEach((t=>{r.push(t.on(["change:opacity","change:visible"],(()=>{for(let t=0;t<s.length;++t)pe(e,s[t])})))})),t instanceof Ne()){let e=t.getStyleFunction();r.push(t.on("change",(()=>{const i=t.getStyleFunction();if(e!==i){e=i;for(let e=0;e<s.length;++e){const t=s[e];t._imageryCache&&(t._imageryCache={});const o=t.imageryProvider;var r;if(o)null==(r=o.tileCache)||r.clear(),o.styleFunction_=i}this.scene.requestRender()}})))}for(let t=0;t<s.length;++t)pe(e,s[t]);r.push(t.on("change:extent",(e=>{for(let e=0;e<s.length;++e)this.cesiumLayers_.remove(s[e],!0),this.ourLayers_.remove(s[e],!1);delete this.layerMap[l(t)],this.synchronize()}))),r.push(t.on("change",(e=>{for(let e=0;e<s.length;++e){const t=this.cesiumLayers_.indexOf(s[e]);t>=0&&(this.cesiumLayers_.remove(s[e],!1),this.cesiumLayers_.add(s[e],t))}}))),this.olLayerListenKeys[i].push(...r)}return Array.isArray(s)?s:null}orderLayers(){const e=[],t={},i=[this.mapLayerGroup];for(;i.length>0;){const r=i.splice(0,1)[0];if(e.push(r),t[l(r)]=r.getZIndex()||0,r instanceof Ve()){const e=r.getLayers();e&&i.unshift(...e.getArray())}}e.sort(((e,i)=>t[l(e)]-t[l(i)])),e.forEach((e=>{const t=l(e).toString(),i=this.layerMap[t];i&&i.forEach((e=>{this.raiseToTop(e)}))}))}raiseToTop(e){this.cesiumLayers_.raiseToTop(e)}}V(830),V(582);var Be=V(63),We=V.n(Be),Ue=V(425),ze=V.n(Ue),He=V(962),Ke=V.n(He),Ze=V(253),Ye=V(988),Xe=V.n(Ye);class Qe{constructor(e,t){this.olListenKeys=[];const i=new Cesium.BillboardCollection({scene:t}),r=new Cesium.PrimitiveCollection;this.rootCollection_=new Cesium.PrimitiveCollection,this.context={projection:e,billboards:i,featureToCesiumMap:{},primitives:r},this.rootCollection_.add(i),this.rootCollection_.add(r)}destroy(){this.olListenKeys.forEach(je.unByKey),this.olListenKeys.length=0}getRootPrimitive(){return this.rootCollection_}}var $e=V(524);class Je{constructor(e){this.boundOnRemoveOrClearFeatureListener_=this.onRemoveOrClearFeature_.bind(this),this.defaultBillboardEyeOffset_=new Cesium.Cartesian3(0,0,10),this.scene=e,this.scene=e}onRemoveOrClearFeature_(e){const t=e.target,i=t.olcs_cancellers;if(i){const r=e.feature;if(r){const e=l(r),t=i[e];t&&(t(),delete i[e])}else{for(const e in i)i.hasOwnProperty(e)&&i[e]();t.olcs_cancellers={}}}}setReferenceForPicking(e,t,i){i.olLayer=e,i.olFeature=t}createColoredPrimitive(e,t,i,r,s,o){const n={flat:!0,renderState:{depthTest:{enabled:!0}}};void 0!==o&&(n.renderState.lineWidth=o);const a=function(e,t){const i=new Cesium.GeometryInstance({geometry:e});return!t||t instanceof Cesium.ImageMaterialProperty||(i.attributes={color:Cesium.ColorGeometryInstanceAttribute.fromColor(t)}),i}(r,s);let l;if(this.getHeightReference(e,t,i)===Cesium.HeightReference.CLAMP_TO_GROUND){if(!("createShadowVolume"in a.geometry.constructor))return null;l=new Cesium.GroundPrimitive({geometryInstances:a})}else l=new Cesium.Primitive({geometryInstances:a});if(s instanceof Cesium.ImageMaterialProperty){const e=s.image.getValue().toDataURL();l.appearance=new Cesium.MaterialAppearance({flat:!0,renderState:{depthTest:{enabled:!0}},material:new Cesium.Material({fabric:{type:"Image",uniforms:{image:e}}})})}else l.appearance=new Cesium.MaterialAppearance({...n,material:new Cesium.Material({translucent:1!==s.alpha,fabric:{type:"Color",uniforms:{color:s}}})}),l instanceof Cesium.Primitive&&(t.get("olcs_shadows")||e.get("olcs_shadows"))&&(l.shadows=1);return this.setReferenceForPicking(e,t,l),l}extractColorFromOlStyle(e,t){const i=e.getFill()?e.getFill().getColor():null,r=e.getStroke()?e.getStroke().getColor():null;let s="black";return r&&t?s=r:i&&(s=i),fe(s)}extractLineWidthFromOlStyle(e){const t=e.getStroke()?e.getStroke().getWidth():void 0;return void 0!==t?t:1}wrapFillAndOutlineGeometries(e,t,i,r,s,o){const n=this.extractColorFromOlStyle(o,!1),a=this.extractColorFromOlStyle(o,!0),l=new Cesium.PrimitiveCollection;if(o.getFill()){const s=this.createColoredPrimitive(e,t,i,r,n);l.add(s)}if(o.getStroke()&&s){const r=this.extractLineWidthFromOlStyle(o),n=this.createColoredPrimitive(e,t,i,s,a,r);n&&l.add(n)}return l}addTextStyle(e,t,i,r,s){let o;if(s instanceof Cesium.PrimitiveCollection?o=s:(o=new Cesium.PrimitiveCollection,o.add(s)),!r.getText())return o;const n=r.getText(),a=this.olGeometry4326TextPartToCesium(e,t,i,n);return a&&o.add(a),o}csAddBillboard(e,t,i,r,s,o){t.eyeOffset||(t.eyeOffset=this.defaultBillboardEyeOffset_);const n=e.add(t);return this.setReferenceForPicking(i,r,n),n}olCircleGeometryToCesium(e,t,i,r,s){const o=(i=_e(i,r)).getCenter(),n=3==o.length?o[2]:0,a=o.slice();a[0]+=i.getRadius();const l=Ce(o),u=Ce(a),h=Cesium.Cartesian3.distance(l,u),m=new Cesium.CircleGeometry({center:l,radius:h,height:n});let d,g;if(this.getHeightReference(e,t,i)===Cesium.HeightReference.CLAMP_TO_GROUND){const r=this.extractLineWidthFromOlStyle(s);if(r){const o=ye((0,Ze.circular)(i.getCenter(),h).getLinearRing(0).getCoordinates()),n=d=new Cesium.GroundPolylinePrimitive({geometryInstances:new Cesium.GeometryInstance({geometry:new Cesium.GroundPolylineGeometry({positions:o,width:r})}),appearance:new Cesium.PolylineMaterialAppearance({material:this.olStyleToCesium(t,s,!0)}),classificationType:Cesium.ClassificationType.TERRAIN});c(d).then((()=>{this.setReferenceForPicking(e,t,n._primitive)}))}}else g=new Cesium.CircleOutlineGeometry({center:l,radius:h,extrudedHeight:n,height:n});const p=this.wrapFillAndOutlineGeometries(e,t,i,m,g,s);return d&&p.add(d),this.addTextStyle(e,t,i,s,p)}olLineStringGeometryToCesium(e,t,i,r,s){const o=ye((i=_e(i,r)).getCoordinates()),n=this.extractLineWidthFromOlStyle(s);let a;const l=this.getHeightReference(e,t,i),u=new Cesium.PolylineMaterialAppearance({material:this.olStyleToCesium(t,s,!0)});if(l===Cesium.HeightReference.CLAMP_TO_GROUND){const i=new Cesium.GroundPolylineGeometry({positions:o,width:n}),r=a=new Cesium.GroundPolylinePrimitive({appearance:u,geometryInstances:new Cesium.GeometryInstance({geometry:i})});c(a).then((()=>{this.setReferenceForPicking(e,t,r._primitive)}))}else{const e=new Cesium.PolylineGeometry({positions:o,width:n,vertexFormat:u.vertexFormat});a=new Cesium.Primitive({appearance:u,geometryInstances:new Cesium.GeometryInstance({geometry:e})})}return this.setReferenceForPicking(e,t,a),this.addTextStyle(e,t,i,s,a)}olPolygonGeometryToCesium(e,t,i,r,s){i=_e(i,r);const o=this.getHeightReference(e,t,i);let n,a,l;if(5==i.getCoordinates()[0].length&&"rectangle"===t.get("olcs.polygon_kind")){const e=i.getCoordinates()[0],r=(0,$.boundingExtent)(e),s=Cesium.Rectangle.fromDegrees(r[0],r[1],r[2],r[3]);let o=0;if(3==e[0].length)for(let t=0;t<e.length;t++)o=Math.max(o,e[t][2]);const l=t.get("olcs_extruded_height");n=new Cesium.RectangleGeometry({ellipsoid:Cesium.Ellipsoid.WGS84,rectangle:s,height:o,extrudedHeight:l}),a=new Cesium.RectangleOutlineGeometry({ellipsoid:Cesium.Ellipsoid.WGS84,rectangle:s,height:o,extrudedHeight:l})}else{const r=i.getLinearRings(),u={positions:[],holes:[]},h=u;for(let e=0;e<r.length;++e){const t=ye(r[e].getCoordinates());0===e?u.positions=t:u.holes.push({positions:t,holes:[]})}const m=t.get("olcs_extruded_height");if(n=new Cesium.PolygonGeometry({polygonHierarchy:h,perPositionHeight:!0,extrudedHeight:m}),o===Cesium.HeightReference.CLAMP_TO_GROUND){const i=this.extractLineWidthFromOlStyle(s);if(i>0){const r=[u.positions];if(u.holes)for(let e=0;e<u.holes.length;++e)r.push(u.holes[e].positions);const o=new Cesium.PolylineMaterialAppearance({material:this.olStyleToCesium(t,s,!0)}),n=[];for(const e of r){const t=new Cesium.GroundPolylineGeometry({positions:e,width:i});n.push(new Cesium.GeometryInstance({geometry:t}))}l=new Cesium.GroundPolylinePrimitive({appearance:o,geometryInstances:n}),c(l).then((()=>{this.setReferenceForPicking(e,t,l._primitive)}))}}else a=new Cesium.PolygonOutlineGeometry({polygonHierarchy:u,perPositionHeight:!0,extrudedHeight:m})}const u=this.wrapFillAndOutlineGeometries(e,t,i,n,a,s);return l&&u.add(l),this.addTextStyle(e,t,i,s,u)}getHeightReference(e,t,i){let r=i.get("altitudeMode");void 0===r&&(r=t.get("altitudeMode")),void 0===r&&(r=e.get("altitudeMode"));let s=Cesium.HeightReference.NONE;return"clampToGround"===r?s=Cesium.HeightReference.CLAMP_TO_GROUND:"relativeToGround"===r&&(s=Cesium.HeightReference.RELATIVE_TO_GROUND),s}createBillboardFromImage(e,t,i,r,s,o,n,a){o instanceof Ke()&&o.load();const c=o.getImage(1),u=function(){if(!c)return;if(!(c instanceof HTMLCanvasElement||c instanceof Image||c instanceof HTMLImageElement))return;const r=Ce(i.getCoordinates());let l;const u=o.getOpacity();void 0!==u&&(l=new Cesium.Color(1,1,1,u));const h=o.getScale(),m=this.getHeightReference(e,t,i),d={image:c,color:l,scale:h,heightReference:m,position:r};if(Object.assign(d,t.get("cesiumOptions")),o instanceof Ke()){const e=o.getAnchor();if(e){const t=Array.isArray(h)?h[0]:h,i=Array.isArray(h)?h[1]:h;d.pixelOffset=new Cesium.Cartesian2((c.width/2-e[0])*t,(c.height/2-e[1])*i)}}const g=this.csAddBillboard(n,d,e,t,i,s);a&&a(g)}.bind(this);if(c instanceof Image&&!function(e){return""!=e.src&&0!=e.naturalHeight&&0!=e.naturalWidth&&e.complete}(c)){let i=!1;const r=e.getSource(),s=function(){i=!0};r.on(["removefeature","clear"],this.boundOnRemoveOrClearFeatureListener_);let o=r.olcs_cancellers;o||(o=r.olcs_cancellers={});const a=l(t);o[a]&&o[a](),o[a]=s;const h=function(){c.removeEventListener("load",h),n.isDestroyed()||i||u()};c.addEventListener("load",h)}else u()}olPointGeometryToCesium(e,t,i,r,s,o,n){i=_e(i,r);let a=null;const l=s.getImage();if(l){const c=i.get("olcs_model")||t.get("olcs_model");if(c){a=new Cesium.PrimitiveCollection;const e=c(),t=Object.assign({},{scene:this.scene},e.cesiumOptions);if("fromGltf"in Cesium.Model){const e=Cesium.Model.fromGltf(t);a.add(e)}else Cesium.Model.fromGltfAsync(t).then((e=>{a.add(e)}));e.debugModelMatrix&&a.add(new Cesium.DebugModelMatrixPrimitive({modelMatrix:e.debugModelMatrix}))}else this.createBillboardFromImage(e,t,i,r,s,l,o,n)}return s.getText()?this.addTextStyle(e,t,i,s,a||new Cesium.Primitive):a}olMultiGeometryToCesium(e,t,i,r,s,o,n){switch(i.getType()){case"MultiPoint":{const a=i.getPoints();if(s.getText()){const i=new Cesium.PrimitiveCollection;return a.forEach((a=>{const l=this.olPointGeometryToCesium(e,t,a,r,s,o,n);l&&i.add(l)})),i}return a.forEach((i=>{this.olPointGeometryToCesium(e,t,i,r,s,o,n)})),null}case"MultiLineString":{const o=i.getLineStrings(),n=new Cesium.PrimitiveCollection;return o.forEach((i=>{const o=this.olLineStringGeometryToCesium(e,t,i,r,s);n.add(o)})),n}case"MultiPolygon":{const o=i.getPolygons(),n=new Cesium.PrimitiveCollection;return o.forEach((i=>{const o=this.olPolygonGeometryToCesium(e,t,i,r,s);n.add(o)})),n}}}olGeometry4326TextPartToCesium(e,t,i,r){const s=r.getText();if(!s)return null;const o=new Cesium.LabelCollection({scene:this.scene}),n=(0,$.getCenter)(i.getExtent());if(i instanceof Xe()){const e=i.getFirstCoordinate();n[2]=3==e.length?e[2]:0}const a={};a.position=Ce(n),a.text=s,a.heightReference=this.getHeightReference(e,t,i);const l=r.getOffsetX(),c=r.getOffsetY();if(0!=l||0!=c){const e=new Cesium.Cartesian2(l,c);a.pixelOffset=e}let u,h;switch(a.font=r.getFont()||"10px sans-serif",r.getFill()&&(a.fillColor=this.extractColorFromOlStyle(r,!1),u=Cesium.LabelStyle.FILL),r.getStroke()&&(a.outlineWidth=this.extractLineWidthFromOlStyle(r),a.outlineColor=this.extractColorFromOlStyle(r,!0),u=Cesium.LabelStyle.OUTLINE),r.getFill()&&r.getStroke()&&(u=Cesium.LabelStyle.FILL_AND_OUTLINE),a.style=u,r.getTextAlign()){case"left":h=Cesium.HorizontalOrigin.LEFT;break;case"right":h=Cesium.HorizontalOrigin.RIGHT;break;default:h=Cesium.HorizontalOrigin.CENTER}if(a.horizontalOrigin=h,r.getTextBaseline()){let e;switch(r.getTextBaseline()){case"top":case"alphabetic":e=Cesium.VerticalOrigin.TOP;break;case"middle":e=Cesium.VerticalOrigin.CENTER;break;case"bottom":case"hanging":e=Cesium.VerticalOrigin.BOTTOM}a.verticalOrigin=e}const m=o.add(a);return this.setReferenceForPicking(e,t,m),o}olStyleToCesium(e,t,i){const r=t.getFill(),s=t.getStroke();if(i&&!s||!i&&!r)return null;const o=fe(i?s.getColor():r.getColor());return i&&s.getLineDash()?Cesium.Material.fromType("Stripe",{horizontal:!1,repeat:500,evenColor:o,oddColor:new Cesium.Color(0,0,0,0)}):Cesium.Material.fromType("Color",{color:o})}computePlainStyle(e,t,i,r){const s=t.getStyleFunction();let o=null;return s&&(o=s(t,r)),!o&&i&&(o=i(t,r)),o?Array.isArray(o)?o:[o]:null}getGeometryFromFeature(e,t,i){if(i)return i;const r=e.get("olcs.3d_geometry");if(r&&r instanceof $e.Geometry)return r;if(t){const i=t.getGeometryFunction()(e);if(i instanceof $e.Geometry)return i}return e.getGeometry()}olFeatureToCesium(e,t,i,r,s){const o=this.getGeometryFromFeature(t,i,s);if(!o)return null;const n=r.projection,a=function(e){const i=r.featureToCesiumMap[l(t)];i instanceof Array?i.push(e):r.featureToCesiumMap[l(t)]=[e]};switch(o.getType()){case"GeometryCollection":const s=new Cesium.PrimitiveCollection;return o.getGeometriesArray().forEach((o=>{if(o){const n=this.olFeatureToCesium(e,t,i,r,o);n&&s.add(n)}})),s;case"Point":const l=r.billboards,c=this.olPointGeometryToCesium(e,t,o,n,i,l,a);return c||null;case"Circle":return this.olCircleGeometryToCesium(e,t,o,n,i);case"LineString":return this.olLineStringGeometryToCesium(e,t,o,n,i);case"Polygon":return this.olPolygonGeometryToCesium(e,t,o,n,i);case"MultiPoint":case"MultiLineString":case"MultiPolygon":return this.olMultiGeometryToCesium(e,t,o,n,i,r.billboards,a)||null;case"LinearRing":throw new Error("LinearRing should only be part of polygon.");default:throw new Error(`Ol geom type not handled : ${o.getType()}`)}}olVectorLayerToCesium(e,t,i){const r=t.getProjection(),s=t.getResolution();if(void 0===s||!r)throw new Error("View not ready");let o=e.getSource();o instanceof We()&&(o=o.getSource());const n=o.getFeatures(),a=new Qe(r,this.scene),c=a.context;for(let t=0;t<n.length;++t){const r=n[t];if(!r)continue;const o=e.getStyleFunction(),u=this.computePlainStyle(e,r,o,s);if(!u||!u.length)continue;let h=null;for(let t=0;t<u.length;t++){const i=this.olFeatureToCesium(e,r,u[t],c);if(i)if(h){if(i){let e,t=0;for(;e=i.get(t);)h.add(e),t++}}else h=i}h&&(i[l(r)]=h,a.getRootPrimitive().add(h))}return a}convert(e,t,i,r){const s=t.getProjection(),o=t.getResolution();if(null==o||!s)return null;const n=e.getStyleFunction(),a=this.computePlainStyle(e,i,n,o);if(!a||!a.length)return null;r.projection=s;let l=null;for(let t=0;t<a.length;t++){const s=this.olFeatureToCesium(e,i,a[t],r);if(l){if(s){let e,t=0;for(;e=s.get(t);)l.add(e),t++}}else l=s}return l}}class et extends ke{constructor(e,t,i){super(e,t),this.converter=i||new Je(t),this.csAllPrimitives_=new Cesium.PrimitiveCollection,t.primitives.add(this.csAllPrimitives_),this.csAllPrimitives_.destroyPrimitives=!1}addCesiumObject(e){e.getRootPrimitive().counterpart=e,this.csAllPrimitives_.add(e.getRootPrimitive())}destroyCesiumObject(e){e.getRootPrimitive().destroy()}removeSingleCesiumObject(e,t){e.destroy(),this.csAllPrimitives_.destroyPrimitives=t,this.csAllPrimitives_.remove(e.getRootPrimitive()),this.csAllPrimitives_.destroyPrimitives=!1}removeAllCesiumObjects(e){if(this.csAllPrimitives_.destroyPrimitives=e,e)for(let e=0;e<this.csAllPrimitives_.length;++e)this.csAllPrimitives_.get(e).counterpart.destroy();this.csAllPrimitives_.removeAll(),this.csAllPrimitives_.destroyPrimitives=!1}updateLayerVisibility(e,t){let i=!0;[e.layer].concat(e.parents).forEach((e=>{const t=e.getVisible();i=void 0!==t&&(i&&t)})),t.show=i}createSingleLayerCounterparts(e){const t=e.layer;if(!(t instanceof ze())||t instanceof Q())return null;let i=t.getSource();if(i instanceof We()&&(i=i.getSource()),!i)return null;const r=this.view,s={},o=this.converter.olVectorLayerToCesium(t,r,s),n=o.getRootPrimitive(),a=o.olListenKeys;[e.layer].concat(e.parents).forEach((t=>{a.push(t.on("change:visible",(()=>{this.updateLayerVisibility(e,n)})))})),this.updateLayerVisibility(e,n);const c=e=>{const i=o.context,a=this.converter.convert(t,r,e,i);a&&(s[l(e)]=a,n.add(a))},u=e=>{const t=l(e),i=o.context,r=i.featureToCesiumMap[t];r&&(delete i.featureToCesiumMap[t],r.forEach((e=>{e instanceof Cesium.Billboard&&i.billboards.remove(e)})));const a=s[t];delete s[t],a&&n.remove(a)};return a.push(i.on("addfeature",(e=>{c(e.feature)}))),a.push(i.on("removefeature",(e=>{u(e.feature)}))),a.push(i.on("changefeature",(e=>{const t=e.feature;u(t),c(t)}))),o?[o]:null}}var tt=V(312),it=V.n(tt);function rt(e,t){const i=e.cloneNode();if("CANVAS"===e.nodeName){i.getContext("2d").drawImage(e,0,0)}t&&t.appendChild(i),e.nodeType!==Node.TEXT_NODE&&i.addEventListener("click",(t=>{e.dispatchEvent(new MouseEvent("click",t)),t.stopPropagation()}));const r=e.childNodes;for(let e=0;e<r.length;e++)r[e]&&rt(r[e],i);return i}class st extends(it()){constructor(e){const t=e.parent;super(t.getOptions()),this.scenePostRenderListenerRemover_=null,this.attributeObserver_=[],this.scene_=e.scene,this.synchronizer_=e.synchronizer,this.parent_=t,this.positionWGS84_=void 0,this.observer_=new MutationObserver(this.handleElementChanged.bind(this)),this.attributeObserver_=[],this.listenerKeys_=[];const i=e=>this.setPropertyFromEvent_(e);this.listenerKeys_.push(this.parent_.on("change:element",i)),this.listenerKeys_.push(this.parent_.on("change:offset",i)),this.listenerKeys_.push(this.parent_.on("change:position",i)),this.listenerKeys_.push(this.parent_.on("change:positioning",i)),this.setProperties(this.parent_.getProperties()),this.handleMapChanged(),this.handleElementChanged()}observeTarget_(e){if(this.observer_){this.observer_.disconnect(),this.observer_.observe(e,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),this.attributeObserver_.forEach((e=>{e.disconnect()})),this.attributeObserver_.length=0;for(let t=0;t<e.childNodes.length;t++){const i=e.childNodes[t];if(1===i.nodeType){const e=new MutationObserver(this.handleElementChanged.bind(this));e.observe(i,{attributes:!0,subtree:!0}),this.attributeObserver_.push(e)}}}}setPropertyFromEvent_(e){e.target&&e.key&&this.set(e.key,e.target.get(e.key))}getScene(){return this.scene_}handleMapChanged(){var e;this.scenePostRenderListenerRemover_&&(this.scenePostRenderListenerRemover_(),(e=this.element)&&e.parentNode&&e.parentNode.removeChild(e)),this.scenePostRenderListenerRemover_=null;const t=this.getScene();if(t){this.scenePostRenderListenerRemover_=t.postRender.addEventListener(this.updatePixelPosition.bind(this)),this.updatePixelPosition();const e=this.stopEvent?this.synchronizer_.getOverlayContainerStopEvent():this.synchronizer_.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element)}}handlePositionChanged(){const e=this.getPosition();if(e){const t=this.parent_.getMap().getView().getProjection();this.positionWGS84_=(0,p.transform)(e,t,"EPSG:4326")}else this.positionWGS84_=void 0;this.updatePixelPosition()}handleElementChanged(){!function(e){for(;e.lastChild;)e.removeChild(e.lastChild)}(this.element);const e=this.getElement();if(e&&e.parentNode&&e.parentNode.childNodes)for(const t of Array.from(e.parentNode.childNodes)){const e=rt(t,null);this.element.appendChild(e)}e.parentNode&&this.observeTarget_(e.parentNode)}updatePixelPosition(){const e=this.positionWGS84_;if(!this.scene_||!e)return void this.setVisible(!1