earthsdk3-cesium 3.3.0-beta.7 → 3.3.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/earthsdk3-cesium.iife.js +5 -5
- package/dist/earthsdk3-cesium.js +32 -29
- package/dist/earthsdk3-cesium.umd.cjs +5 -5
- package/dist/types/CzmObjects/general/CzmESEntityCluster/index.d.ts.map +1 -1
- package/dist/types/CzmObjects/general/CzmESMVTLayer/index.d.ts.map +1 -1
- package/dist/types/ESCesiumViewer/NavigationManager/index.d.ts.map +1 -1
- package/dist/types/ESObjects/ESCustomPrimitive/index.d.ts +8 -2
- package/dist/types/ESObjects/ESCustomPrimitive/index.d.ts.map +1 -1
- package/dist/types/ESObjects/ESMVTLayer.d.ts +12 -10
- package/dist/types/ESObjects/ESMVTLayer.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -167,7 +167,7 @@ material.alpha = materialInput.color.a;
|
|
|
167
167
|
return material;
|
|
168
168
|
}
|
|
169
169
|
`;C.Material.GlobeLevelMaterialType="GlobelLevel",C.Material._materialCache.addMaterial(C.Material.GlobeLevelMaterialType,{fabric:{type:C.Material.GlobeLevelMaterialType,uniforms:{input_shadows:new C.Cartesian3(0,0,0),input_highlights:new C.Cartesian3(1,1,1),midtones:new C.Cartesian3(.5,.5,.5),output_shadows:new C.Cartesian3(0,0,0),output_highlights:new C.Cartesian3(1,1,1)},source:vP},translucent:!1});const{PrimitiveRenderResources:wP,ModelUtility:bP,Cartesian3:Rn,Matrix4:ga,ModelRenderResources:_P,defined:CP,NodeRenderResources:xP,BoundingSphere:Li,ModelDrawCommands:SP}=C,EP=new Rn,PP=new Rn,F0=new Rn,B0=new Rn;class TP extends wP{constructor(n,e,i){if(super(n,e),!n.runtimeNode.instancingTranslationMin||!n.runtimeNode.instancingTranslationMax)return;const o=ga.inverse(i,new ga),r=bP.getPositionMinMax(e.primitive,ga.multiplyByPoint(o,n.runtimeNode.instancingTranslationMin,F0),ga.multiplyByPoint(o,n.runtimeNode.instancingTranslationMax,B0));this.positionMin=Rn.clone(r.min,new Rn),this.positionMax=Rn.clone(r.max,new Rn),this.boundingSphere=Li.fromCornerPoints(this.positionMin,this.positionMax,new Li)}}function IP(){C.ModelSceneGraph.prototype.buildDrawCommands=function(t){const n=this._model,e=new _P(n);n.statistics.clear(),this.configurePipeline(t);const i=this.modelPipelineStages;let o,r,s;for(o=0;o<i.length;o++)i[o].process(e,n,t);const a=Rn.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,EP),l=Rn.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,PP);for(o=0;o<this._runtimeNodes.length;o++){const c=this._runtimeNodes[o];if(!CP(c))continue;c.configurePipeline();const h=c.pipelineStages,u=new xP(e,c);for(r=0;r<h.length;r++)h[r].process(u,c.node,t);const A=c.computedTransform;for(r=0;r<c.runtimePrimitives.length;r++){const f=c.runtimePrimitives[r];f.configurePipeline(t);const d=f.pipelineStages,g=new TP(u,f,A);for(s=0;s<d.length;s++)d[s].process(g,f.primitive,t);f.boundingSphere=Li.clone(g.boundingSphere,new Li);const v=ga.multiplyByPoint(A,g.positionMin,F0),y=ga.multiplyByPoint(A,g.positionMax,B0);Rn.minimumByComponent(a,v,a),Rn.maximumByComponent(l,y,l);const m=SP.buildModelDrawCommand(g,t);f.drawCommand=m}}this._boundingSphere=Li.fromCornerPoints(a,l,new Li),this._boundingSphere=Li.transformWithoutScale(this._boundingSphere,this._axisCorrectionMatrix,this._boundingSphere),this._boundingSphere=Li.transform(this._boundingSphere,this._components.transform,this._boundingSphere),n._boundingSphere=Li.transform(this._boundingSphere,n.modelMatrix,n._boundingSphere),n._initialRadius=n._boundingSphere.radius,n._boundingSphere.radius*=n._clampedScale}}const tu=class tu extends p.Destroyable{constructor(){super(),C.ParticleSystem.prototype.update=function(n){const e=n.time;n.time=this._falseTime;try{tu.oldUpdate.call(this,n),this._particles.forEach(i=>{C.Billboard.prototype&&(i._billboard.ESSceneObjectID=this.ESSceneObjectID)})}catch{}n.time=e},this.d(()=>{C.ParticleSystem.prototype.update=tu.oldUpdate})}};L(tu,"oldUpdate",C.ParticleSystem.prototype.update);let ad=tu;function kP(){if(C.ParticleSystem.prototype.timeStamp!==void 0){console.warn("fixParticleSystem已经执行过!");return}Object.defineProperties(C.ParticleSystem.prototype,{timeStamp:{get(){return this._innerCurrentTimeStamp===void 0&&(this._innerCurrentTimeStamp=0),this._innerCurrentTimeStamp},set(t){this.timeStamp!==t&&(this._innerCurrentTimeStamp=t,C.JulianDate.fromDate(new Date(t),this._falseTime))}},_falseTime:{get(){return this.__falseTime||(this.__falseTime=C.JulianDate.fromDate(new Date(0))),this.__falseTime}}})}class FP{constructor(n){L(this,"index");L(this,"image");L(this,"resolve");L(this,"reject");L(this,"rectangle");this.index=n.index,this.image=n.image,this.resolve=n.resolve,this.reject=n.reject,this.rectangle=void 0}}function BP(){C.TextureAtlas.prototype._resize=function(t,n=0){const e=this._borderWidthInPixels,i=this._rectangles,o=this._imagesToAddQueue,r=this._texture;let s=r.width,a=r.height;const l=this._subRegions,c=i.map((y,m)=>new FP({index:m,image:y})).filter((y,m)=>C.defined(y.image)&&!C.defined(l.get(m)));let h=0,u=0,A=0;for(let y=n;y<o.length;++y){const{width:m,height:w}=o[y].image;h=Math.max(h,m),u=Math.max(u,w),A+=m*w,c.push(o[y])}s=Math.max(h,s),a=Math.max(u,a),t.webgl2||(s=C.Math.nextPowerOfTwo(s),a=C.Math.nextPowerOfTwo(a));const f=Math.sqrt(A);a*=Math.ceil(f/a),s*=Math.ceil(f/s),c.sort(({image:y},{image:m})=>m.height*m.width-y.height*y.width);const d=new Array(this._nextIndex);for(const y of this._subRegions.keys())C.defined(l.get(y))&&(d[y]=i[y]);let g,v=!1;for(;!v;){g=new C.TexturePacker({height:a,width:s,borderPadding:e});let y;for(y=0;y<c.length;++y){const{index:m,image:w}=c[y];if(!C.defined(w))continue;const _=g.pack(m,w);if(!C.defined(_)){s>a?a*=2:s*=2;break}d[m]=_.rectangle}v=y===c.length}this._texturePacker=g,this._texture=this._copyFromTexture(t,s,a,d),r.destroy(),this._rectangles=d,this._guid=C.createGuid()}}uP(),cP(),hP(),pP(),mP(),gP(),yP(),lP(),IP(),kP(),BP(),C.Camera.DEFAULT_VIEW_RECTANGLE=C.Rectangle.fromDegrees(70,5,140,55);function MP(){return new Promise((t,n)=>C.GroundPolylinePrimitive.initializeTerrainHeights().then(t))}class DP extends p.Destroyable{constructor(n,e,i,o){super();const r=()=>{e.setStatus("Raw");const{viewer:a}=e;if(a){const l=Sn(a);if(l&&(l.destroy(),sd(a,void 0)),C.defined(a)){a.entities.removeAll(),a.dataSources.removeAll(),a.imageryLayers.removeAll(),a.scene.primitives.removeAll(),a.scene.groundPrimitives.removeAll(),a.scene.postProcessStages.removeAll();let c=a.scene.context._originalGLContext;c.canvas.width=c.canvas.height=1,c.getExtension("WEBGL_lose_context").loseContext(),c=null}a.destroy(),i(void 0)}};this.d(r);const s=this.dv(p.createProcessingFromAsyncFunc(async(a,l)=>{e.setStatus("Creating"),e.setStatusLog("正在创建Cesium视口...");const c=sP;await a.promise(MP());const h=await a.promise(p.createCancelablePromise(c(l,o)));h.scene._xbsjOriginSkyAtmosphere=h.scene.skyAtmosphere,h.scene._xbsjOriginSkyBox=h.scene.skyBox,h.clockViewModel.currentTime=C.JulianDate.fromDate(new Date(e.currentTime)),this.dispose(e.currentTimeChanged.disposableOn(()=>{if(e.currentTime===void 0)return;const u=C.JulianDate.fromDate(new Date(e.currentTime));C.JulianDate.equals(u,h.clockViewModel.currentTime)||(h.clockViewModel.currentTime=u)})),this.dispose(si(h.clockViewModel,"currentTime",u=>{const A=C.JulianDate.toDate(h.clockViewModel.currentTime).getTime();A!==e.currentTime&&(e.currentTime=A)}));{const u=new O0(h,e);sd(h,u)}e.setStatus("Created"),e.setStatusLog("成功创建Cesium视口!"),i(h)}));s.start(n),s.errorEvent.don(()=>{e.setStatus("Error"),e.setStatusLog("创建Cesium视口失败!")})}}const RP=new C.EllipsoidTerrainProvider;class M0 extends p.Destroyable{constructor(e){super();L(this,"_terrainMap",new Map);L(this,"_nextAnimateFrame",this.dv(p.createNextAnimateFrame()));L(this,"selectedTerrain");this._viewer=e;const i=this._viewer,o=i.scene.globe.terrainProviderChanged.addEventListener(()=>{this.selectedTerrain&&(this.selectedTerrain.sceneObject.activate=!0,this.selectedTerrain.sceneObject.activateEvent.emit())});this.ad(()=>{o&&o()}),this.dispose(this._changed.disposableOn(()=>{this.selectedTerrain=void 0;let r=Number.MIN_SAFE_INTEGER;for(let s of this._terrainMap.keys())s.sceneObject.activate=!1,(s.sceneObject.show??!0)&&s.sceneObject.zIndex>=r&&(this.selectedTerrain&&console.warn(`存在多个terrain,只能显示一个,当前terrian:${this.selectedTerrain.sceneObject.name}(${this.selectedTerrain.sceneObject.id}), 即将被替换成${s.sceneObject.name}(${s.sceneObject.id})`),r=s.sceneObject.zIndex,this.selectedTerrain=s);this.selectedTerrain&&!this.selectedTerrain.provider&&(this.selectedTerrain.sceneObject.activate=!0,this.selectedTerrain.sceneObject.activateEvent.emit()),i.scene.terrainProvider=(this.selectedTerrain&&this.selectedTerrain.provider)??RP,i.scene.globe.depthTestAgainstTerrain=this.selectedTerrain?this.selectedTerrain.sceneObject.renderMode!="disableDepthTest":!0,i.scene.globe.translucency.enabled=this.selectedTerrain?this.selectedTerrain.sceneObject.renderMode!="default":!1,i.scene.globe.translucency.frontFaceAlpha=this.selectedTerrain?p.clamp(this.selectedTerrain.sceneObject.opacity,0,1):1,i.scene.globe.translucency.backFaceAlpha=this.selectedTerrain?p.clamp(this.selectedTerrain.sceneObject.opacity,0,1):1}))}_makeDirty(){this._nextAnimateFrame.restartIfNotRunning()}get _changed(){return this._nextAnimateFrame.completeEvent}add(e){if(this._terrainMap.has(e)){console.warn("this._terrainMap.has(imagery)");return}const i=new p.Destroyable;i.dispose(e.providerChanged.disposableOn(()=>this._makeDirty())),i.dispose(e.sceneObject.showChanged.disposableOn(()=>this._makeDirty())),this._terrainMap.set(e,()=>i.destroy()),this._makeDirty();const o=this.ad(p.createNextAnimateFrameEvent(e.sceneObject.zIndexChanged,e.sceneObject.opacityChanged,e.sceneObject.renderModeChanged));this.d(o.don(()=>{this._changed.emit()}))}delete(e){if(!this._terrainMap.has(e)){console.warn("!this._imageriesMap.has(imagery)");return}const i=this._terrainMap.get(e);if(!i){console.error("!disposeFunc");return}i(),this._terrainMap.delete(e),this.selectedTerrain===e&&(this.selectedTerrain=void 0),this._makeDirty()}}class D0 extends p.Destroyable{constructor(e){super();L(this,"_labelMap",{div:new Map,canvas:new Map});this._viewer=e,this.d(e.scene.camera.changed.addEventListener(()=>{this._updateZOrder()}))}add(e){const i=e instanceof wt?"div":"canvas";if(this._labelMap[i].has(e)){console.warn(`this._labelMap[${i}].has(poi)`,e);return}const o=new p.Destroyable;{const r=o.dv(p.createNextAnimateFrameEvent(e.zOrderChanged,e.positionChanged));o.dispose(r.don(()=>{this._updateZOrder()}))}this._labelMap[i].set(e,()=>o.destroy()),this._updateZOrder()}delete(e){const i=e instanceof wt?"div":"canvas";if(!this._labelMap[i].has(e)){console.warn(`!this._labelMap[${i}].has(poi)`,e);return}const o=this._labelMap[i].get(e);if(!o){console.error("!disposeFunc");return}o(),this._labelMap[i].delete(e),this._updateZOrder()}_updateZOrder(){for(const e in this._labelMap)Object.prototype.hasOwnProperty.call(this._labelMap,e)&&this._updateLabelZOrder(this._labelMap[e],e)}_updateLabelZOrder(e,i){const o={};for(const a of e.keys())o[a.zOrder]||(o[a.zOrder]=new Map),o[a.zOrder].set(a,a instanceof wt?a.czmDivPoi?a.czmDivPoi.depth:0:a.canvasObj?a.canvasObj.czmCanvasPoi.depth:0);const r=Object.keys(o).sort((a,l)=>i=="div"?Number(l)-Number(a):Number(a)-Number(l));let s=e.size;for(let a=0;a<r.length;a++)new Map([...o[r[a]]].sort((c,h)=>Number(h[1])-Number(c[1]))).forEach((c,h)=>{h instanceof wt&&h.czmDivPoi&&(h.czmDivPoi.zOrder=s),h instanceof Vi&&h.canvasObj&&(h.canvasObj.czmCanvasPoi.zOrder=s),s--})}}class UP extends p.Destroyable{constructor(e){super();L(this,"_czmImageryLayerWrappers",new Set);L(this,"_zIndexChangedEvent",this.dv(new p.Event));this._viewer=e,this.d(this._zIndexChangedEvent.don(()=>{const i=[...this.czmImageryLayerWrappers.values()];i.sort((o,r)=>{const s=o.czmImageryWrapper.imagery.zIndex??Q.ESImageryLayer.defaults.zIndex,a=r.czmImageryWrapper.imagery.zIndex??Q.ESImageryLayer.defaults.zIndex;return s-a});for(const o of i)this.viewer.imageryLayers.raiseToTop(o.imageryLayer)}))}get viewer(){return this._viewer}get czmImageryLayerWrappers(){return this._czmImageryLayerWrappers}add(e){this._czmImageryLayerWrappers.add(e),this.viewer.imageryLayers.add(e.imageryLayer),this.zIndexChange()}delete(e){this.viewer.imageryLayers.remove(e.imageryLayer,!1),this._czmImageryLayerWrappers.delete(e)}zIndexChange(){this._zIndexChangedEvent.emit()}}class OP extends p.Destroyable{constructor(e){super();L(this,"_imageryLayer");if(this._czmImageryWrapper=e,!this._czmImageryWrapper.imagery.layer)throw new Error("this._czmCzmImageryWrapper.imagery.czmImagery");this._imageryLayer=this._czmImageryWrapper.imagery.layer;const{czmImageryWrapper:i}=this,o=i.manager.czmImageriesManager;o.add(this),this.d(()=>o.delete(this)),this.d(this._czmImageryWrapper.imagery.zIndexChanged.don(()=>o.zIndexChange()))}get imageryLayer(){return this._imageryLayer}get czmImageryWrapper(){return this._czmImageryWrapper}}class LP extends p.Destroyable{constructor(e){super();L(this,"_objResetting");this._czmImageryWrapper=e,this._objResetting=this.dv(new p.ObjResettingWithEvent(this.czmImageryWrapper.imagery.showChanged,()=>{if(this.czmImageryWrapper.imagery.show??!0)return new OP(this.czmImageryWrapper)}))}get czmImageryWrapper(){return this._czmImageryWrapper}get objResetting(){return this._objResetting}}class zP extends p.Destroyable{constructor(e,i){super();L(this,"_czmImageryLayerWrapperObjResetting");this._imagery=e,this._manager=i,this._czmImageryLayerWrapperObjResetting=this.dv(new p.ObjResettingWithEvent(this.imagery.layerChanged,()=>{if(this.imagery.layer)return new LP(this)}))}get imagery(){return this._imagery}get manager(){return this._manager}get czmImageryLayerWrapperObjResetting(){return this._czmImageryLayerWrapperObjResetting}}class R0 extends p.Destroyable{constructor(e){super();L(this,"_czmImageryWrappers",new Set);L(this,"_czmImageryLayersManager");this._viewer=e,this._czmImageryLayersManager=this.dv(new UP(this.viewer))}get czmImageryWrappers(){return this._czmImageryWrappers}get czmImageriesManager(){return this._czmImageryLayersManager}get viewer(){return this._viewer}add(e){for(let i of this.czmImageryWrappers)if(i.imagery===e){console.warn("imageriesManager add error: has already added!",e);return}this.czmImageryWrappers.add(new zP(e,this))}delete(e){for(const i of this.czmImageryWrappers)if(i.imagery===e){this.czmImageryWrappers.delete(i);return}console.warn("imageriesManager delete error!",e)}}class U0 extends p.Destroyable{constructor(e){super();L(this,"_pause",this.disposeVar(p.react(!1)));L(this,"_pickPositionTasks",[]);L(this,"_pickTasks",[]);L(this,"pickHeightMustGreaterThanZero",!0);L(this,"objectsToExclude",[]);const i=e.viewer;{this.dispose(()=>{this._pickPositionTasks.length>0&&(this._pickPositionTasks.forEach(a=>a[3]("CzmViewer销毁,任务不再执行!")),this._pickPositionTasks.length=0),this._pickTasks.length>0&&(this._pickTasks.forEach(a=>a[4]("CzmViewer销毁,任务不再执行!")),this._pickTasks.length=0)});const o=()=>{const a=[...this._pickPositionTasks];this._pickPositionTasks.length=0;for(let c of a){const[h,u,A,f]=c;try{(async()=>{const{scene:d,camera:g}=i,v=Xe(h),y=g.getPickRay(v);do{if(!y)break;let m;if(u?m=await d.pickFromRayMostDetailed(y,this.objectsToExclude):m=d.pickFromRay(y,this.objectsToExclude),!m||!m.position)break;const w=Ue(m.position);if(!w){f(new Error("positionFromCartesian failed"));return}A(w);return}while(!1);if(y&&!(d.terrainProvider instanceof C.EllipsoidTerrainProvider)){const m=d.globe.pick(y,d);if(!m){f(new Error("scene.globe.pick failed"));return}const w=Ue(m);if(!w){f(new Error("positionFromCartesian failed"));return}this.pickHeightMustGreaterThanZero&&w[2]<0&&(w[2]=0),A(w);return}{const m=d.terrainProvider instanceof C.EllipsoidTerrainProvider?d.terrainProvider.tilingScheme.ellipsoid:i.scene.globe.ellipsoid,w=i.camera.pickEllipsoid(Xe(h),m);if(!w){f(new Error("Pick failed"));return}const _=Ue(w);if(!_){f(new Error("positionFromCartesian failed"));return}A(_)}})()}catch(d){f(d)}}const l=[...this._pickTasks];this._pickTasks.length=0;for(let c of l){const[h,u,A,f,d]=c;e.pickCustomAttachedInfo=A;try{(async()=>{var E,T,P;let g=i.scene.pick(Xe(h),u&&u[0],u&&u[1]);!g&&C.defined(i.scene.globe)&&(g=await QP(i,Xe(h)));let v;if(g&&g instanceof C.Cesium3DTileFeature){v={};try{g&&g.getPropertyIds().forEach(D=>{v&&(v[D]=g.getProperty(D))})}catch(k){console.warn(k)}}let y;do{if(!g)break;if(g.id&&g.id instanceof C.Entity&&g.id.ESSceneObjectID){y=g.id.ESSceneObjectID;break}if(g.primitive&&g.primitive.ESSceneObjectID){y=g.primitive.ESSceneObjectID;break}if(Array.isArray(g)&&g[0]instanceof C.ImageryLayerFeatureInfo){y=g[0].imageryLayer.ESSceneObjectID;break}}while(!1);let m=y?Q.ESSceneObject.getSceneObject(y):void 0;m&&m.parentID&&(m=Q.ESSceneObject.getSceneObject(m.parentID));let w={};if(m&&Reflect.has(m,"allowPicking")&&Reflect.has(m,"pickedEvent")&&(m.allowPicking??!1)){do{if(m instanceof Q.ESEntityCluster){const k=new C.JulianDate;w=g.id instanceof C.Entity?{name:g.id.label.text.getValue(k),properties:(E=g.id.properties)==null?void 0:E.getValue(k),coordinates:zs(g.id.position.getValue(k))}:(T=g.id)==null?void 0:T.map(D=>{var B;return{name:D.id,properties:(B=D.properties)==null?void 0:B.getValue(k),coordinates:zs(D.position.getValue(k))}});break}if(m instanceof Q.ESGeoJson){const k=new C.JulianDate;if(!g.id.entityCollection)return;const D=g.id.polygon?"Polygon":g.id.polyline?"LineString":"Point",B=((P=g.id.properties)==null?void 0:P.getValue(k))??{},S=D=="Point"?Ue(g.id.position.getValue(k)):D=="LineString"?g.id.polyline.positions.getValue(k).map(I=>Ue(I)):Qf(g.id.polygon.hierarchy.getValue(k));w=m.pickedInfoType=="FeatureCollection"?{type:"Feature",geometry:{type:D,coordinates:S},properties:B}:{type:D,coordinates:S,properties:B};break}if(m instanceof Q.ESGltfModel){let k;Reflect.has(g,"featureId")?k=g.featureId:Reflect.has(g,"instanceId")&&(k=g.instanceId),k&&(g.id=g.primitive.structuralMetadata.getPropertyTable(0).getProperty(g.instanceId,"id"))}}while(!1);m.pickedEvent.emit(new Q.ESJPickedResult(g,m,v,w,A,h))}m&&Reflect.has(m,"allowPicking")&&!m.allowPicking&&f(new Q.ESJPickedResult);const _=new Q.ESJPickedResult(g,m,v,w,A,h);f(_)})()}catch(g){d(g)}}};let r=i.scene.postRender.addEventListener(o);const s=()=>{r&&r(),r=void 0};this.ad(s),this.ad(this.pauseChanged.don(a=>{a?s():r=i.scene.postRender.addEventListener(o)}))}}get pause(){return this._pause.value}set pause(e){this._pause.value=e}get pauseChanged(){return this._pause.changed}pickPosition(e){return new Promise((i,o)=>{this._pickPositionTasks.push([e,!0,i,o])})}quickPickPosition(e){return new Promise((i,o)=>{this._pickPositionTasks.push([e,!1,i,o])})}pick(e,i,o){return new Promise((r,s)=>{this._pickTasks.push([e,i,o,r,s])})}}function QP(t,n){const e=t.scene,i=e.camera.getPickRay(n);if(!i)return;const o=e.imageryLayers.pickImageryLayerFeatures(i,e);if(C.defined(o))return o}class VP extends p.Destroyable{constructor(e){super();L(this,"_enabled",this.disposeVar(p.react(!1)));L(this,"_cursorPosition",p.react(void 0));L(this,"quickPickPosition",!0);let i=new p.Destroyable;const o=()=>{i&&(i.destroy(),i=void 0)};this.dispose(o);const r=()=>{if(o(),!this._enabled.value||!e)return;const s=Sn(e);if(!s)return;i=new p.Destroyable;const a=i.disposeVar(p.react(void 0)),l=i.disposeVar(p.createNextAnimateFrameEvent(a.changed));i.dispose(s.czmViewer.pointerMoveEvent.disposableOn(h=>{h.pointerEvent&&(a.value=p.getDomEventCurrentTargetPos(h.pointerEvent))}));const c=i.disposeVar(p.createProcessingFromAsyncFunc(async h=>{if(s.pickingManager&&a.value)if(this.quickPickPosition){const u=await h.promise(p.createCancelablePromise(s.pickingManager.quickPickPosition(a.value)));this._cursorPosition.value=u}else{const u=await h.promise(p.createCancelablePromise(s.pickingManager.pickPosition(a.value)));this._cursorPosition.value=u}}));i.dispose(l.disposableOn(()=>{c.restart()}))};r(),this.dispose(this._enabled.changed.disposableOn(r))}get enabled(){return this._enabled.value}set enabled(e){this._enabled.value=e}get enabledChanged(){return this._enabled.changed}get cursorPosition(){return this._cursorPosition.value}get cursorPositionChanged(){return this._cursorPosition.changed}}function Sn(t){return p.getExtProp(t,"_viewerExtensions")}function sd(t,n){p.setExtProp(t,"_viewerExtensions",n)}class O0 extends p.Destroyable{constructor(e,i){super();L(this,"_imageriesManager");L(this,"_terrainManager");L(this,"_labelManager");L(this,"_pickingManager");L(this,"_poiContext");L(this,"_cursorPositionInfo");this._viewer=e,this._czmViewer=i,this._imageriesManager=this.dv(new R0(this.viewer)),this._terrainManager=this.dv(new M0(this.viewer)),this._labelManager=this.dv(new D0(this.viewer)),this._poiContext=this.disposeVar(new rw(this._viewer)),this._cursorPositionInfo=this.disposeVar(new VP(this._viewer)),this.ad(i.viewerChanged.don(()=>{this._pickingManager=this.dv(new U0(i))}))}get viewer(){return this._viewer}get czmViewer(){return this._czmViewer}get imageriesManager(){return this._imageriesManager}get terrainManager(){return this._terrainManager}get labelManager(){return this._labelManager}get pickingManager(){return this._pickingManager}get poiContext(){return this._poiContext}get cursorPositionInfo(){return this._cursorPositionInfo}}var L0=new C.Cartesian3,z0=new C.Cartesian3;function Q0(t,n,e){let i=C.Matrix4.clone(t.transform);t.lookAtTransform(C.Matrix4.IDENTITY);var o=t.positionCartographic.height,r=t.positionWC,s=C.Cartesian3.normalize(r,L0),a=C.Cartesian3.dot(t.direction,s);if(a>-.9&&a<.9)var l=C.Cartesian3.cross(t.direction,s,z0);else var l=C.Cartesian3.cross(t.up,s,z0);var c=l;if(e){var h=C.Cartesian3.cross(s,l,L0);c=h}var u=C.Cartesian3.magnitude(r);t.rotate(c,n/u);var A=t.positionCartographic,f=A.longitude,d=A.latitude;C.Cartesian3.fromRadians(f,d,o,void 0,t.position),t.lookAtTransform(i)}function V0(t,n){Q0(t,n,!1)}function H0(t,n){Q0(t,-n,!0)}class HP extends p.Destroyable{constructor(e){super();L(this,"_actions",{MoveForward:!1,MoveBackword:!1,MoveLeft:!1,MoveRight:!1});this._running=e;const{controller:i}=this,{viewer:o}=i.firstPersonController,{camera:r}=o;this.dispose(this.running.keyStatus.currentKeyIdsChanged.disposableOn(()=>{this._updateActions()})),this.dispose(this.controller.keyDownEvent.disposableOn(s=>{const{keyStatusMap:a}=this.running.keyboardCameraController;a[s.code]==="SpeedUp"?this.controller.speed=this.controller.speed*2:a[s.code]==="SpeedDown"&&(this.controller.speed=this.controller.speed*.5)})),this.dispose(this.controller.keyDownEvent.disposableOn(s=>{const{keyStatusMap:a}=this.running.keyboardCameraController;a[s.code]==="SwitchAlwaysWithCamera"&&(this.controller.alwaysWithCamera=!this.controller.alwaysWithCamera)}));{const{actions:s}=this;let a=Date.now();const l=()=>{const c=Date.now(),h=c-a;a=c;const u=this.controller.speed;s.WithCamera||this.controller.alwaysWithCamera?(s.MoveForward&&r.moveForward(h*u),s.MoveBackword&&r.moveBackward(h*u),s.MoveLeft&&r.moveLeft(h*u),s.MoveRight&&r.moveRight(h*u)):(s.MoveForward&&V0(r,h*u),s.MoveBackword&&V0(r,-h*u),s.MoveLeft&&H0(r,-h*u),s.MoveRight&&H0(r,h*u));{const{rotateSpeed:A}=this.controller,f=C.Math.toRadians(A*h);s.RotateRight?r.lookRight(f):s.RotateLeft?r.lookRight(-f):s.RotateUp?r.lookDown(-f):s.RotateDown&&r.lookDown(f)}};o.scene.preUpdate.addEventListener(l),this.dispose(()=>o.scene.preUpdate.removeEventListener(l))}}get running(){return this._running}get controller(){return this.running.keyboardCameraController}get actions(){return this._actions}_resetActions(){const e=Object.keys(this._actions);for(let i of e)this._actions[i]=!1}_updateActions(){const{running:e}=this,{keyStatus:i}=e,{actions:o}=this;this._resetActions();const{keyStatusMap:r}=this.running.keyboardCameraController;for(let s of i.currentKeyIds)o[r[s]]=!0}}class uh extends p.Destroyable{constructor(e){super();L(this,"_currentKeyIds",new Set);L(this,"_currentKeyIdsChanged",this.dv(new p.Event));L(this,"_debug",this.dv(p.react(!1)));L(this,"_debugResetting",this.dv(new p.ObjResettingWithEvent(this.debugChanged,()=>{if(this.debug)return new class extends p.Destroyable{constructor(e){super();const i=()=>{console.log([...e.currentKeyIds].join(`
|
|
170
|
-
`))};i(),this.d(e.currentKeyIdsChanged.don(i))}}(this)})));this._keyboardCameraControllerRunning=e;const{keyboardCameraController:i}=this._keyboardCameraControllerRunning;{const o=r=>{const s=uh.getKeyId(r);this._currentKeyIds.has(s)||(this._currentKeyIds.add(s),this._currentKeyIdsChanged.emit())};this.d(i.keyDownEvent.don(o))}{const o=r=>{const s=uh.getKeyId(r);this._currentKeyIds.has(s)&&(this._currentKeyIds.delete(s),this._currentKeyIdsChanged.emit())};this.d(i.keyUpEvent.don(o))}{const o=()=>{this._currentKeyIds.clear(),this._currentKeyIdsChanged.emit()};this.d(i.abortEvent.don(o))}}static getKeyId(e){return e.code}get currentKeyIds(){return this._currentKeyIds}get currentKeyIdsChanged(){return this._currentKeyIdsChanged}get debug(){return this._debug.value}set debug(e){this._debug.value=e}get debugChanged(){return this._debug.changed}}class NP extends p.Destroyable{constructor(e){super();L(this,"_keyStatus");L(this,"_cameraOp");this._keyboardCameraController=e,this._keyStatus=this.dv(new uh(this)),this._cameraOp=this.dv(new HP(this))}get keyboardCameraController(){return this._keyboardCameraController}get keyStatus(){return this._keyStatus}get cameraOp(){return this._cameraOp}}const vf=class vf extends p.Destroyable{constructor(e){super();L(this,"_enabled",this.dv(p.react(!1)));L(this,"_keyStatusMap",this.dv(p.react(vf.defaultKeyStatusMap)));L(this,"_speed",this.dv(p.react(1)));L(this,"_rotateSpeed",this.dv(p.react(.01)));L(this,"_alwaysWithCamera",this.dv(p.react(!1)));L(this,"_keyDownEvent",this.dv(new p.Event));L(this,"_keyUpEvent",this.dv(new p.Event));L(this,"_abortEvent",this.dv(new p.Event));this._firstPersonController=e,this.dv(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new NP(this)}))}get firstPersonController(){return this._firstPersonController}get enabled(){return this._enabled.value}set enabled(e){this._enabled.value=e}get enabledChanged(){return this._enabled.changed}get keyStatusMap(){return this._keyStatusMap.value}set keyStatusMap(e){this._keyStatusMap.value=e}get keyStatusMapChanged(){return this._keyStatusMap.changed}get speed(){return this._speed.value}set speed(e){this._speed.value=e}get speedChanged(){return this._speed.changed}get rotateSpeed(){return this._rotateSpeed.value}set rotateSpeed(e){this._rotateSpeed.value=e}get rotateSpeedChanged(){return this._rotateSpeed.changed}get alwaysWithCamera(){return this._alwaysWithCamera.value}set alwaysWithCamera(e){this._alwaysWithCamera.value=e}get alwaysWithCameraChanged(){return this._alwaysWithCamera.changed}get keyDownEvent(){return this._keyDownEvent}keyDown(e){this._keyDownEvent.emit(e)}get keyUpEvent(){return this._keyUpEvent}keyUp(e){this._keyUpEvent.emit(e)}get abortEvent(){return this._abortEvent}abort(){this._abortEvent.emit()}};L(vf,"defaultKeyStatusMap",{ShiftLeft:"WithCamera",ShiftRight:"WithCamera",KeyW:"MoveForward",KeyS:"MoveBackword",KeyA:"MoveLeft",KeyD:"MoveRight",ArrowUp:"MoveForward",ArrowDown:"MoveBackword",ArrowLeft:"MoveLeft",ArrowRight:"MoveRight",KeyR:"SpeedUp",KeyF:"SpeedDown",KeyQ:"SwitchAlwaysWithCamera"});let ch=vf;function GP(t,n){t.lookRight(C.Math.toRadians(n.movementX)*.1),t.lookDown(C.Math.toRadians(n.movementY)*.1);const e=t.pitch,i=C.Math.clamp(e,-C.Math.PI_OVER_TWO,C.Math.PI_OVER_TWO);i!==e&&t.setView({destination:t.positionWC,orientation:{heading:t.heading,pitch:i,roll:t.roll}})}class WP extends p.Destroyable{constructor(n,e){super(),this._firstPersonController=n,this._mouseCameraController=e;const{canvas:i}=this._firstPersonController.viewer;{const o=r=>{const{camera:s}=this._firstPersonController.viewer.scene;GP(s,r)};i.addEventListener("pointermove",o),this.dispose(()=>i.removeEventListener("pointermove",o))}}}const wf=class wf extends p.Destroyable{constructor(e){super();L(this,"_mouseMoving",this.dv(new WP(this.firstPersonController,this.mouseCameraController)));this._mouseCameraController=e;const{viewer:i}=this.firstPersonController;this.mouseCameraController.enableViewerOriginInputs(!1),this.dispose(()=>this.mouseCameraController.enableViewerOriginInputs(!0)),Element.prototype.setPointerCapture=()=>{},this.dispose(()=>Element.prototype.setPointerCapture=wf.origin_setPointerCapture);const o=i.canvas;o.requestPointerLock(),this.dispose(()=>document.exitPointerLock());{const r=()=>{document.pointerLockElement!==o&&(this.firstPersonController.mouseEnabled=!1)};document.addEventListener("pointerlockchange",r,!1),this.dispose(()=>document.removeEventListener("pointerlockchange",r,!1))}{const r=()=>{this.firstPersonController.mouseEnabled=!1,console.log("Error locking pointer")};document.addEventListener("pointerlockerror",r)}}get mouseCameraController(){return this._mouseCameraController}get firstPersonController(){return this.mouseCameraController.firstPersonController}get mouseMoving(){return this._mouseMoving}};L(wf,"origin_setPointerCapture",Element.prototype.setPointerCapture);let ld=wf;class qP extends p.Destroyable{constructor(e){super();L(this,"_enabled",this.dv(p.react(!1)));L(this,"enableViewerOriginInputs",e=>{e?this.firstPersonController.czmViewer.incrementDisabledInputStack():this.firstPersonController.czmViewer.decrementDisabledInputStack()});L(this,"_mouseResetting",this.dv(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new ld(this)})));this._firstPersonController=e}get firstPersonController(){return this._firstPersonController}get enabled(){return this._enabled.value}set enabled(e){this._enabled.value=e}get enabledChanged(){return this._enabled.changed}get mouseResetting(){return this._mouseResetting}}class KP extends p.Destroyable{constructor(e){super();L(this,"viewer");L(this,"_mouseCameraController",this.dv(new qP(this)));L(this,"_keyboardCameraController",this.dv(new ch(this)));if(this._viewer=e,!this._viewer.viewer)throw new Error("Cesium.Viewer不存在!");this.viewer=this._viewer.viewer}get czmViewer(){return this._viewer}get mouseCameraController(){return this._mouseCameraController}get mouseEnabled(){return this.mouseCameraController.enabled}set mouseEnabled(e){this.mouseCameraController.enabled=e}get mouseEnabledChanged(){return this.mouseCameraController.enabledChanged}get keyboardCameraController(){return this._keyboardCameraController}get keyboardEnabled(){return this.keyboardCameraController.enabled}set keyboardEnabled(e){this.keyboardCameraController.enabled=e}get keyboardEnabledChanged(){return this.keyboardCameraController.enabledChanged}}function N0(t){t.removeInputAction(C.ScreenSpaceEventType.LEFT_DOWN),t.removeInputAction(C.ScreenSpaceEventType.RIGHT_DOWN),t.removeInputAction(C.ScreenSpaceEventType.MIDDLE_DOWN),t.removeInputAction(C.ScreenSpaceEventType.MOUSE_MOVE),t.removeInputAction(C.ScreenSpaceEventType.LEFT_UP),t.removeInputAction(C.ScreenSpaceEventType.RIGHT_UP),t.removeInputAction(C.ScreenSpaceEventType.MIDDLE_UP)}function ud(t,n,e,i=void 0){const r=t.camera,s=new C.Cartesian2;s.x=n.startPosition.x,s.y=0;const a=new C.Cartesian2;a.x=n.endPosition.x,a.y=0;let l=r.getPickRay(s,new C.Ray),c=r.getPickRay(a,new C.Ray),h=0,u,A;if(!l||!c)return;r.frustum instanceof C.OrthographicFrustum?(u=l.origin,A=c.origin,C.Cartesian3.add(r.direction,u,u),C.Cartesian3.add(r.direction,A,A),C.Cartesian3.subtract(u,r.position,u),C.Cartesian3.subtract(A,r.position,A),C.Cartesian3.normalize(u,u),C.Cartesian3.normalize(A,A)):(u=l.direction,A=c.direction);let f=C.Cartesian3.dot(u,A);f<1&&(h=Math.acos(f)),h=n.startPosition.x>n.endPosition.x?h:-h;const d=e._horizontalRotationAxis;if(C.defined(i)?r.look(i,-h):C.defined(d)?r.look(d,-h):r.lookLeft(h),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,l=r.getPickRay(s,new C.Ray),c=r.getPickRay(a,new C.Ray),h=0,!(!l||!c))if(r.frustum instanceof C.OrthographicFrustum?(u=l.origin,A=c.origin,C.Cartesian3.add(r.direction,u,u),C.Cartesian3.add(r.direction,A,A),C.Cartesian3.subtract(u,r.position,u),C.Cartesian3.subtract(A,r.position,A),C.Cartesian3.normalize(u,u),C.Cartesian3.normalize(A,A)):(u=l.direction,A=c.direction),f=C.Cartesian3.dot(u,A),f<1&&(h=Math.acos(f)),h=n.startPosition.y>n.endPosition.y?h:-h,i=C.defaultValue(i,d),C.defined(i)){const g=r.direction,v=C.Cartesian3.negate(i,new C.Cartesian3),y=C.Cartesian3.equalsEpsilon(g,i,C.Math.EPSILON2),m=C.Cartesian3.equalsEpsilon(g,v,C.Math.EPSILON2);if(!y&&!m){f=C.Cartesian3.dot(g,i);let w=C.Math.acosClamped(f);h>0&&h>w&&(h=w-C.Math.EPSILON4),f=C.Cartesian3.dot(g,v),w=C.Math.acosClamped(f),h<0&&-h>w&&(h=-w+C.Math.EPSILON4);const _=C.Cartesian3.cross(i,g,new C.Cartesian3);r.look(_,h)}else(y&&h<0||m&&h>0)&&r.look(r.right,-h)}else r.lookUp(h)}class ZP extends p.Destroyable{constructor(n,e){super();const i=e.viewer;if(!i)throw new Error("viewer is undefined");let o=!0;this.d(n.positionChanged.don(()=>o=!0)),this.d(n.rotationChanged.don(()=>o=!0)),this.d(n.offsetHeightChanged.don(()=>o=!0)),this.d(n.viewDistanceChanged.don(()=>o=!0)),this.d(n.offsetRotationChanged.don(()=>o=!0)),this.d(n.relativeRotationChanged.don(()=>o=!0));const r=[0,0,0],s=[0,0,0];this.d(i.clock.onTick.addEventListener(()=>{if(!o)return;if(o=!1,!n.position){console.warn("相机控制器未能设置位置,无法启用!");return}if(n.viewDistance===void 0){console.warn("相机控制器未能设置视距,将自动设置视距!");const u=dt(n.position),A=i.camera.positionWC,f=C.Cartesian3.distance(u,A);n.viewDistance=f}p.Vector.clone(n.position,s),n.offsetHeight&&(s[2]+=n.offsetHeight);const{rotation:a,offsetRotation:l=li.defaults.offsetRotation}=n,c=[...l];p.Vector.set(r,0,0,0),a&&(n.relativeRotation??li.defaults.relativeRotation)&&(p.Vector.add(a,r,r),c[0]+=90),p.Vector.add(c,r,r);const h={distance:n.viewDistance,heading:r[0],pitch:r[1],flyDuration:0,hDelta:0,pDelta:0};e.flyTo(h,s)})),e.incrementDisabledInputStack(),this.d(()=>{e.decrementDisabledInputStack()}),this.d(e.pointerMoveEvent.don(a=>{const l=a==null?void 0:a.pointerEvent;if(l&&n.enabledRotationInput&&(l.buttons===1||l.buttons===2)){const{movementX:c,movementY:h}=l;n.offsetRotation=p.Vector.add(n.offsetRotation??li.defaults.offsetRotation,[c*.2,h*-.2,0])}})),this.d(e.wheelEvent.don(a=>{if(!n.enabledScaleInput)return;const l=a.deltaY,h=Math.max(1,n.viewDistance)*(l*.001);n.viewDistance=n.viewDistance+h}))}}class li extends p.Destroyable{constructor(e){super();L(this,"_resetWithCameraEvent",this.dv(new p.Event));const i=e.viewer;if(!i)throw new Error("viewer is undefined");const o=this;let r;const s=()=>{r&&(r.destroy(),r=void 0)};this.d(s);const a=()=>{s(),o.enabled&&(r=new ZP(o,e))};a(),this.d(o.enabledChanged.don(a)),this.d(o.resetWithCameraEvent.don(l=>{if(!e.actived)return;const c=ha(i.camera);if(!c)return;const h=o.rotation;o.offsetRotation=[c[0]-(o.relativeRotation?h[0]:90),c[1]-(o.relativeRotation?h[1]:0),c[2]-(o.relativeRotation?h[2]:0)]}))}get resetWithCameraEvent(){return this._resetWithCameraEvent}resetWithCamera(e){this._resetWithCameraEvent.emit(e)}}L(li,"defaults",{position:[116.39,39.9,0],rotation:[0,0,0],offsetRotation:[0,-60,0],relativeRotation:!0}),(t=>{t.createDefaultProps=()=>({enabled:!1,showTarget:!1,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArrayWithUndefined(void 0),positionEditing:!1,rotationEditing:!1,viewDistance:1e3,offsetHeight:0,offsetRotation:p.reactArray([0,-60,0]),enabledRotationInput:!0,enabledScaleInput:!0,relativeRotation:!0})})(li||(li={})),p.extendClassProps(li.prototype,li.createDefaultProps);class $s extends p.Destroyable{constructor(e){super();L(this,"_geoCameraController");L(this,"_geoPolylinePath");this._geoCameraController=this.dv(new li(e)),this._geoPolylinePath=this.dv(new as(e)),this._geoPolylinePath.show=!1,this._geoPolylinePath.currentTime=0;const i=()=>{(this.usePathPosition??!0)&&(this._geoCameraController.position=this._geoPolylinePath.currentPosition),(this.usePathRotation??!0)&&(this._geoCameraController.rotation=this._geoPolylinePath.currentRotation)};i(),this.d(this._geoPolylinePath.currentPositionChanged.don(i)),this.d(this._geoPolylinePath.currentRotationChanged.don(i)),this.dispose(p.bind([this._geoCameraController,"enabled"],[this,"enabled"])),this.dispose(p.bind([this._geoCameraController,"viewDistance"],[this,"viewDistance"])),this.dispose(p.bind([this._geoCameraController,"offsetHeight"],[this,"offsetHeight"])),this.dispose(p.bind([this._geoCameraController,"offsetRotation"],[this,"offsetRotation"])),this.dispose(p.track([this._geoCameraController,"enabledRotationInput"],[this,"enabledRotationInput"])),this.dispose(p.track([this._geoCameraController,"enabledScaleInput"],[this,"enabledScaleInput"])),this.dv(new p.ObjResettingWithEvent(this.lineModeChanged,()=>{if(this.lineMode!==void 0){if(this.lineMode==="auto")return new XP(this,e);if(this.lineMode==="manual")return new $P(this,e)}}))}get geoCameraController(){return this._geoCameraController}get polylinePath(){return this._geoPolylinePath}get position(){return this._geoCameraController.position}get positionChanged(){return this._geoCameraController.positionChanged}get rotation(){return this._geoCameraController.rotation}get roataionChanged(){return this._geoCameraController.rotationChanged}}(t=>{t.createDefaultProps=()=>({enabled:!1,usePathPosition:!0,usePathRotation:!0,viewDistance:1e3,offsetHeight:0,offsetRotation:p.reactArray([0,-60,0]),enabledRotationInput:!0,enabledScaleInput:!0,lineMode:void 0})})($s||($s={})),p.extendClassProps($s.prototype,$s.createDefaultProps);class XP extends p.Destroyable{constructor(n,e){if(super(),!e.viewer)throw new Error("viewer is undefined");n.offsetRotation=[-90,0,0]}}class $P extends p.Destroyable{constructor(n,e){if(super(),!e.viewer)throw new Error("viewer is undefined");const o=r=>{(r.key==="w"||r.key==="s")&&(n.polylinePath.playing=r.type==="keydown",n.polylinePath.speed=r.key==="w"||r.type==="keyup"?1:-1)};this.dispose(e.keyDownEvent.don(o)),this.dispose(e.keyUpEvent.don(o))}}class YP extends p.Destroyable{constructor(n,e){super();const i=e.positionPropertyName??"position",o=e.positionChangedPropertyName??i+"Changed",r=e.rotationPropertyName??"rotation",s=e.rotationChangedPropertyName??r+"Changed",a=(e.positionTracking??!0)&&Reflect.has(n,i)&&Reflect.has(n,o),l=(e.rotationTracking??!0)&&Reflect.has(n,r)&&Reflect.has(n,s);if(!(!a&&!l)){if(a){const c=()=>{e.geoCameraController.position=n[i]};c();const h=n[o];this.d(h.don(c))}if(l){const c=()=>{e.geoCameraController.rotation=n[r]};c();const h=n[o];this.d(h.don(c))}}}}class JP extends p.Destroyable{constructor(n,e){super();const i=this.dv(new Q.ESSceneObjectWithId);i.id=n;const o=this.dv(p.createNextAnimateFrameEvent(e.enabledChanged,e.positionTrackingChanged,e.rotationTrackingChanged,e.positionPropertyNameChanged,e.positionChangedPropertyNameChanged,e.rotationPropertyNameChanged,e.rotationChangedPropertyNameChanged,i.sceneObjectChanged));this.disposeVar(new p.ObjResettingWithEvent(o,()=>{const{sceneObject:r}=i;if(!(!e.enabled||!r))return new YP(r,e)}))}}class Ys extends p.Destroyable{constructor(e){super();L(this,"_geoCameraController");this._geoCameraController=this.dv(new li(e)),this.d(p.bind([this._geoCameraController,"enabled"],[this,"enabled"])),this.dv(new p.ObjResettingWithEvent(this.sceneObjectIdChanged,()=>{if(this.sceneObjectId)return new JP(this.sceneObjectId,this)}))}get geoCameraController(){return this._geoCameraController}}(t=>{t.createDefaultProps=()=>({enabled:void 0,sceneObjectId:void 0,positionTracking:void 0,rotationTracking:void 0,positionPropertyName:void 0,positionChangedPropertyName:void 0,rotationPropertyName:void 0,rotationChangedPropertyName:void 0})})(Ys||(Ys={})),p.extendClassProps(Ys.prototype,Ys.createDefaultProps);class jP extends p.Destroyable{constructor(e){super();L(this,"height",1e7);L(this,"cycle",60);L(this,"latitude",6.632251044444445);L(this,"_running",!1);L(this,"_sseh");L(this,"_eventDisposer");L(this,"leftDownCancel",!0);this._viewer=e,this._sseh=this.dv(new C.ScreenSpaceEventHandler(this._viewer.canvas)),this._sseh.setInputAction(()=>{this.leftDownCancel&&this.cancel()},C.ScreenSpaceEventType.LEFT_DOWN),this.d(()=>{this.cancel()})}get viewer(){return this._viewer}get sseh(){return this._sseh}start(){if(this._running)return;const e=this._viewer.camera,i=e.positionCartographic;e.flyTo({destination:C.Cartesian3.fromRadians(i.longitude,this.latitude,this.height),orientation:{heading:0,pitch:-.5*C.Math.PI,roll:0},complete:()=>{this._running=!0;var o=void 0;this._eventDisposer=this.viewer.scene.postUpdate.addEventListener((r,s)=>{if(!o){o=new Date().getTime();return}const a=(new Date().getTime()-o)/1e3,l=e.positionCartographic.longitude+a*C.Math.PI*2/this.cycle;e.setView({destination:C.Cartesian3.fromRadians(l,this.latitude,this.height),orientation:{heading:0,pitch:-.5*C.Math.PI,roll:0}}),o=new Date().getTime()})},duration:.5})}cancel(){this._running&&(this._eventDisposer&&(this._eventDisposer(),this._eventDisposer=void 0),this._running=!1)}}class eT extends p.Destroyable{constructor(e){super();L(this,"_height",this.dv(p.react(1e7)));L(this,"_cycle",this.dv(p.react(60)));L(this,"_latitude",this.dv(p.react(38)));L(this,"_inner");this._czmViewer=e;const i=this._czmViewer.viewer;if(!i)throw new Error("未初始化viewer");this._inner=this.dv(new jP(i)),this._inner.leftDownCancel=!1;{const o=()=>{this._inner.height=this.height,this._inner.cycle=this.cycle,this._inner.latitude=this.latitude*Math.PI/180};o(),this.d(this.heightChanged.don(o)),this.d(this.cycleChanged.don(o)),this.d(this.latitudeChanged.don(o))}}get height(){return this._height.value}set height(e){this._height.value=e}get heightChanged(){return this._height.changed}get cycle(){return this._cycle.value}set cycle(e){this._cycle.value=e}get cycleChanged(){return this._cycle.changed}get latitude(){return this._latitude.value}set latitude(e){this._latitude.value=e}get latitudeChanged(){return this._latitude.changed}get inner(){return this._inner}start(){return this._inner.start()}cancel(){return this._inner.cancel()}}class tT extends p.Destroyable{constructor(e){super();L(this,"_position",this.dv(p.reactArrayWithUndefined(void 0)));L(this,"_distance",this.dv(p.react(5e4)));L(this,"_cycle",this.dv(p.react(60)));L(this,"_heading",this.dv(p.react(0)));L(this,"_pitch",this.dv(p.react(-30)));L(this,"_transform");L(this,"_headingRadius");L(this,"_pitchRadius");L(this,"_running",!1);L(this,"_sseh");L(this,"_eventDisposer");this._viewer=e;const i=this.viewer.scene,o=this.viewer.camera;this._sseh=this.dv(new C.ScreenSpaceEventHandler(this.viewer.canvas)),this.d(()=>{this.cancel()});{const r=()=>{let s;if(this.position==null){var a=o.getPickRay(new C.Cartesian2(i.canvas.width*.5,i.canvas.height*.5));if(!a)return;s=i.globe.pick(a,i)}else s=C.Cartesian3.fromDegrees(...this.position);s&&(this._transform=C.Transforms.eastNorthUpToFixedFrame(s),this.start())};r(),this.d(this.positionChanged.don(r))}{const r=()=>{this._headingRadius=C.Math.toRadians(this.heading)};r(),this.d(this.headingChanged.don(r))}{const r=()=>{this._pitchRadius=C.Math.toRadians(this.pitch)};r(),this.d(this.pitchChanged.don(r))}}get viewer(){return this._viewer}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get distance(){return this._distance.value}set distance(e){this._distance.value=e}get distanceChanged(){return this._distance.changed}get cycle(){return this._cycle.value}set cycle(e){this._cycle.value=e}get cycleChanged(){return this._cycle.changed}get heading(){return this._heading.value}set heading(e){this._heading.value=e}get headingChanged(){return this._heading.changed}get pitch(){return this._pitch.value}set pitch(e){this._pitch.value=e}get pitchChanged(){return this._pitch.changed}get sseh(){return this._sseh}start(){if(this._running)return;const e=this.viewer.camera;e.lookAtTransform(this._transform);var i=this.distance*Math.sin(this._pitchRadius),o=this.distance*Math.cos(this._pitchRadius),r=new C.Cartesian3(0,i,o);e.flyTo({destination:C.Matrix4.multiplyByPoint(this._transform,r,new C.Cartesian3),orientation:{heading:this._headingRadius,pitch:this._pitchRadius,roll:0},endTransform:this._transform,complete:()=>{this._running=!0;let s;this._eventDisposer=this.viewer.scene.postUpdate.addEventListener((a,l)=>{if(!s){s=new Date().getTime();return}const c=(new Date().getTime()-s)/1e3;this._headingRadius+=c*C.Math.PI*2/this.cycle,e.lookAtTransform(this._transform,new C.HeadingPitchRange(this._headingRadius,this._pitchRadius,this.distance)),s=new Date().getTime()})},duration:.5,maximumHeight:e.positionCartographic.height})}cancel(){if(!this._running)return;this.viewer.camera.lookAtTransform(C.Matrix4.IDENTITY),this._eventDisposer&&(this._eventDisposer(),this._eventDisposer=void 0),this._running=!1}}class nT extends p.Destroyable{constructor(e){super();L(this,"_position",this.dv(p.reactArrayWithUndefined(void 0)));L(this,"_distance",this.dv(p.react(5e4)));L(this,"_cycle",this.dv(p.react(60)));L(this,"_heading",this.dv(p.react(0)));L(this,"_pitch",this.dv(p.react(-30)));L(this,"_inner");this._czmViewer=e;const i=this._czmViewer.viewer;if(!i)throw new Error("viewer is undefined");this._inner=this.dv(new tT(i));{const o=()=>{this.inner.distance=this.distance,this.inner.cycle=this.cycle,this.inner.position=this.position,this.inner.heading=this.heading,this.inner.pitch=this.pitch};o(),this.d(this.distanceChanged.don(o)),this.d(this.cycleChanged.don(o)),this.d(this.positionChanged.don(o)),this.d(this.headingChanged.don(o)),this.d(this.pitchChanged.don(o))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get distance(){return this._distance.value}set distance(e){this._distance.value=e}get distanceChanged(){return this._distance.changed}get cycle(){return this._cycle.value}set cycle(e){this._cycle.value=e}get cycleChanged(){return this._cycle.changed}get heading(){return this._heading.value}set heading(e){this._heading.value=e}get headingChanged(){return this._heading.changed}get pitch(){return this._pitch.value}set pitch(e){this._pitch.value=e}get pitchChanged(){return this._pitch.changed}get inner(){return this._inner}start(){return this._inner.start()}cancel(){return this._inner.cancel()}}class iT extends p.Destroyable{constructor(e){super();L(this,"_firstPersonController");L(this,"_rotateGlobe");L(this,"_rotatePoint");L(this,"_followController");L(this,"_pathCameraController");L(this,"_handler");this._viewer=e;{this._firstPersonController=this.dv(new KP(e)),this.d(this._viewer.keyDownEvent.don(i=>this._firstPersonController.keyboardCameraController.keyDown(i))),this.d(this._viewer.keyUpEvent.don(i=>this._firstPersonController.keyboardCameraController.keyUp(i)));{const{subContainer:i}=this._viewer;if(!i)throw new Error("_firstPersonControllerInit error!");const o=()=>this._firstPersonController.keyboardCameraController.abort();i.addEventListener("blur",o,!1),this.d(()=>i.removeEventListener("blur",o,!1))}this._firstPersonController.keyboardEnabled=!1,this._firstPersonController.mouseEnabled=!1,this._firstPersonController.keyboardCameraController.speed=.006,this._firstPersonController.keyboardCameraController.rotateSpeed=.01,this._firstPersonController.keyboardCameraController.alwaysWithCamera=!1,this._firstPersonController.keyboardCameraController.keyStatusMap=ch.defaultKeyStatusMap,this.d(this._firstPersonController.keyboardEnabledChanged.don(()=>{var i;(i=this._viewer.subContainer)==null||i.focus()}))}this._rotateGlobe=this.dv(new eT(e)),this._rotatePoint=this.dv(new nT(e)),this._followController=this.dv(new Ys(e)),this._pathCameraController=this.dv(new $s(e))}get firstPersonController(){return this._firstPersonController}get rotateGlobe(){return this._rotateGlobe}get rotatePoint(){return this._rotatePoint}get followController(){return this._followController}get pathCameraController(){return this._pathCameraController}resetNavigation(){this._firstPersonController.keyboardEnabled=!1,this._rotateGlobe.cancel(),this._rotatePoint.cancel(),this._followController.enabled=!1,this._followController.sceneObjectId=void 0,this._followController.geoCameraController.offsetRotation=[-90,0,0],this._followController.geoCameraController.viewDistance=0,this._pathCameraController.enabled=!1,this._pathCameraController.polylinePath.playing=!1,this._pathCameraController.polylinePath.currentTime=0,this._pathCameraController.polylinePath.loop=!1,this._pathCameraController.geoCameraController.offsetHeight=0,this._pathCameraController.polylinePath.positions=void 0,this._pathCameraController.lineMode=void 0}changeToMap(){this.resetNavigation(),this._changedMouseEvent("Map")}changeToWalk(e,i=4.2){this.resetNavigation(),this._changedMouseEvent("Walk");const o=this._viewer.getCameraInfo(),r=[(o==null?void 0:o.rotation[0])??0,0,0];this._viewer.flyIn(e,r),this.firstPersonController.keyboardEnabled=!0,this.firstPersonController.keyboardCameraController.speed=.006,this.firstPersonController.keyboardCameraController.keyStatusMap={ShiftLeft:"WithCamera",ShiftRight:"WithCamera",KeyW:"MoveForward",KeyS:"MoveBackword",KeyA:"MoveLeft",KeyD:"MoveRight",ArrowUp:"MoveForward",ArrowDown:"MoveBackword",ArrowLeft:"RotateLeft",ArrowRight:"RotateRight",KeyR:"SpeedUp",KeyF:"SpeedDown",KeyQ:"SwitchAlwaysWithCamera"}}changeToRotateGlobe(e=38,i=1e7,o=60){this.resetNavigation(),this._changedMouseEvent("RotateGlobe"),this._rotateGlobe.latitude=e,this._rotateGlobe.height=i,this._rotateGlobe.cycle=o,this._rotateGlobe.start()}changeToRotatePoint(e,i=5e4,o=60,r=0,s=-30){this.resetNavigation(),this._changedMouseEvent("RotatePoint"),this._rotatePoint.position=e,this._rotatePoint.distance=i,this._rotatePoint.cycle=o,this._rotatePoint.heading=r,this._rotatePoint.pitch=s,this._rotatePoint.start()}changeToFollow(e,i=0,o=0,r=-30,s=!0){this.resetNavigation(),this._changedMouseEvent("Follow"),this._followController.sceneObjectId=e,this._followController.geoCameraController.offsetRotation=[o,r,0],this._followController.geoCameraController.relativeRotation=s,i!==0?this._followController.geoCameraController.viewDistance=i:this._followController.geoCameraController.viewDistance=1e3,this._followController.enabled=!0}changeToLine(e,i=10,o=10,r=!0,s=10,a="auto"){this.resetNavigation(),this._changedMouseEvent("Line");const l=a==="auto",c=Q.ESSceneObject.getSceneObjById(e);if(!c)return;const{points:h}=c;if(!h)return;const u=Q.getDistancesFromPositions(h,"NONE"),A=u[u.length-1];this._pathCameraController.viewDistance=0,this._pathCameraController.polylinePath.positions=[...h],this._pathCameraController.polylinePath.duration=A/i*1e3,this._pathCameraController.polylinePath.loop=r,this._pathCameraController.offsetHeight=o;const f=A0(h);this._pathCameraController.polylinePath.rotationRadius=!l||f==!1?[0]:f.map(d=>d/s*i),this._pathCameraController.enabledRotationInput=!l,this._pathCameraController.enabledScaleInput=!1,this._pathCameraController.polylinePath.playing=l,this._pathCameraController.lineMode=a,this._pathCameraController.enabled=!0}_changedMouseEvent(e){const i=this._viewer.viewer;if(!i)return;this._handler||(this._handler=new C.ScreenSpaceEventHandler(i.scene.canvas));const o=this._handler,r=i.scene.screenSpaceCameraController;this.d(()=>{o&&N0(o)}),e=="Walk"||e=="RotateGlobe"?(r.lookEventTypes=void 0,r.rotateEventTypes=void 0,r.tiltEventTypes=void 0,r.zoomEventTypes=void 0,r.translateEventTypes=void 0,o&&e=="Walk"&&(o.setInputAction(s=>{o.setInputAction(a=>{ud(i.scene,a,r)},C.ScreenSpaceEventType.MOUSE_MOVE),o.setInputAction(a=>{o.removeInputAction(C.ScreenSpaceEventType.MOUSE_MOVE),o.removeInputAction(C.ScreenSpaceEventType.LEFT_UP)},C.ScreenSpaceEventType.LEFT_UP)},C.ScreenSpaceEventType.LEFT_DOWN),o.setInputAction(s=>{o.setInputAction(a=>{ud(i.scene,a,r)},C.ScreenSpaceEventType.MOUSE_MOVE),o.setInputAction(a=>{o.removeInputAction(C.ScreenSpaceEventType.MOUSE_MOVE),o.removeInputAction(C.ScreenSpaceEventType.RIGHT_UP)},C.ScreenSpaceEventType.RIGHT_UP)},C.ScreenSpaceEventType.RIGHT_DOWN),o.setInputAction(s=>{o.setInputAction(a=>{ud(i.scene,a,r)},C.ScreenSpaceEventType.MOUSE_MOVE),o.setInputAction(a=>{o.removeInputAction(C.ScreenSpaceEventType.MOUSE_MOVE),o.removeInputAction(C.ScreenSpaceEventType.MIDDLE_UP)},C.ScreenSpaceEventType.MIDDLE_UP)},C.ScreenSpaceEventType.MIDDLE_DOWN))):(o&&N0(o),r.lookEventTypes=C.CameraEventType.RIGHT_DRAG,r.rotateEventTypes=C.CameraEventType.LEFT_DRAG,r.tiltEventTypes=[C.CameraEventType.MIDDLE_DRAG,C.CameraEventType.PINCH,{eventType:C.CameraEventType.LEFT_DRAG,modifier:C.KeyboardEventModifier.CTRL},{eventType:C.CameraEventType.RIGHT_DRAG,modifier:C.KeyboardEventModifier.CTRL}],r.translateEventTypes=C.CameraEventType.LEFT_DRAG,r.zoomEventTypes=[C.CameraEventType.WHEEL,C.CameraEventType.PINCH,{eventType:C.CameraEventType.RIGHT_DRAG,modifier:C.KeyboardEventModifier.SHIFT}])}}const rT=[{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.3558367297943,39.93163726456884,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.30223283037274,39.92688664316035,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.43707387584969,39.922782714050356,3300]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.27929428317248,39.895318074706246,3500]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.36181901056395,39.89720944386167,3553.618347252562]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.40050587550184,39.87565113086582,3500]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.31629153797958,39.88888615917464,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.38662084727662,39.93026695192356,5222.983612030221]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.35985958294472,39.879559968940974,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.30061281533665,39.86521469244785,3500]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.33589491695909,39.85251691437225,3400]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.3978491755026,39.92191230041099,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.404556165088,39.901554635269065,3400]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.3371677114933,39.90666589456628,3200]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.30329238580244,39.90598342431921,5e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.25047545555285,39.927295935589235,5e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.33129680063607,39.98205319015022,5500]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.38241622722414,39.864780790627634,5800]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.24126681456984,39.85629130246847,6e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.4476299820832,39.9015287845667,5233.181711832771]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.33116617802452,39.824241891065384,6e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.15206905891218,39.90872966468676,5e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.24197212869294,39.88630968655299,3200]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.43381133281572,39.96058832885812,5700]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.21635435523064,39.966450178376924,7e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.17908072725879,39.87211951629164,3200]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.32516866705241,39.94534681561764,3300]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.36086721251684,39.948381883306446,3400]}];class oT extends p.Destroyable{constructor(e){super();L(this,"_show",this.dv(p.react(!1)));L(this,"cloudsPostProcess");const i=e.viewer;if(!i)throw new Error("Cesium Viewer is not initialized");const o=new C.CloudCollection;i.scene.primitives.add(o),this.dispose(()=>i.scene.primitives.remove(o));{const r=()=>{o.show=this.show};r(),this.dispose(this.showChanged.disposableOn(r))}{const r=a=>({slice:a.slice,brightness:a.brightness,scale:Xe(a.scale),maximumSize:Kn(a.maximumSize),color:Ie(a.color),position:dt(a.position)});(()=>{o.removeAll();for(let a of rT)o.add(r(a))})()}}get show(){return this._show.value}set show(e){this._show.value=e}get showChanged(){return this._show.changed}}class Js extends p.Destroyable{constructor(n){super();const e=n.viewer;if(!e){console.warn("viewer is undefined!");return}const i=e.scene.postProcessStages.add(C.PostProcessStageLibrary.createDepthOfFieldStage());this.d(()=>e.scene.postProcessStages.remove(i));{const o=()=>{i.enabled=this.show};o(),this.d(this.showChanged.don(o))}{const o=()=>{i.uniforms.fogByDistance=this.focalDistance};o(),this.d(this.focalDistanceChanged.don(o))}{const o=()=>{i.uniforms.delta=this.delta};o(),this.d(this.deltaChanged.don(o))}{const o=()=>{i.uniforms.sigma=this.sigma};o(),this.d(this.sigmaChanged.don(o))}{const o=()=>{i.uniforms.stepSize=this.stepSize};o(),this.d(this.stepSizeChanged.don(o))}}}(t=>{t.createDefaultProps=()=>({show:!1,focalDistance:87,delta:1,sigma:3.78,stepSize:2.46})})(Js||(Js={})),p.extendClassProps(Js.prototype,Js.createDefaultProps);const aT=`
|
|
170
|
+
`))};i(),this.d(e.currentKeyIdsChanged.don(i))}}(this)})));this._keyboardCameraControllerRunning=e;const{keyboardCameraController:i}=this._keyboardCameraControllerRunning;{const o=r=>{const s=uh.getKeyId(r);this._currentKeyIds.has(s)||(this._currentKeyIds.add(s),this._currentKeyIdsChanged.emit())};this.d(i.keyDownEvent.don(o))}{const o=r=>{const s=uh.getKeyId(r);this._currentKeyIds.has(s)&&(this._currentKeyIds.delete(s),this._currentKeyIdsChanged.emit())};this.d(i.keyUpEvent.don(o))}{const o=()=>{this._currentKeyIds.clear(),this._currentKeyIdsChanged.emit()};this.d(i.abortEvent.don(o))}}static getKeyId(e){return e.code}get currentKeyIds(){return this._currentKeyIds}get currentKeyIdsChanged(){return this._currentKeyIdsChanged}get debug(){return this._debug.value}set debug(e){this._debug.value=e}get debugChanged(){return this._debug.changed}}class NP extends p.Destroyable{constructor(e){super();L(this,"_keyStatus");L(this,"_cameraOp");this._keyboardCameraController=e,this._keyStatus=this.dv(new uh(this)),this._cameraOp=this.dv(new HP(this))}get keyboardCameraController(){return this._keyboardCameraController}get keyStatus(){return this._keyStatus}get cameraOp(){return this._cameraOp}}const vf=class vf extends p.Destroyable{constructor(e){super();L(this,"_enabled",this.dv(p.react(!1)));L(this,"_keyStatusMap",this.dv(p.react(vf.defaultKeyStatusMap)));L(this,"_speed",this.dv(p.react(1)));L(this,"_rotateSpeed",this.dv(p.react(.01)));L(this,"_alwaysWithCamera",this.dv(p.react(!1)));L(this,"_keyDownEvent",this.dv(new p.Event));L(this,"_keyUpEvent",this.dv(new p.Event));L(this,"_abortEvent",this.dv(new p.Event));this._firstPersonController=e,this.dv(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new NP(this)}))}get firstPersonController(){return this._firstPersonController}get enabled(){return this._enabled.value}set enabled(e){this._enabled.value=e}get enabledChanged(){return this._enabled.changed}get keyStatusMap(){return this._keyStatusMap.value}set keyStatusMap(e){this._keyStatusMap.value=e}get keyStatusMapChanged(){return this._keyStatusMap.changed}get speed(){return this._speed.value}set speed(e){this._speed.value=e}get speedChanged(){return this._speed.changed}get rotateSpeed(){return this._rotateSpeed.value}set rotateSpeed(e){this._rotateSpeed.value=e}get rotateSpeedChanged(){return this._rotateSpeed.changed}get alwaysWithCamera(){return this._alwaysWithCamera.value}set alwaysWithCamera(e){this._alwaysWithCamera.value=e}get alwaysWithCameraChanged(){return this._alwaysWithCamera.changed}get keyDownEvent(){return this._keyDownEvent}keyDown(e){this._keyDownEvent.emit(e)}get keyUpEvent(){return this._keyUpEvent}keyUp(e){this._keyUpEvent.emit(e)}get abortEvent(){return this._abortEvent}abort(){this._abortEvent.emit()}};L(vf,"defaultKeyStatusMap",{ShiftLeft:"WithCamera",ShiftRight:"WithCamera",KeyW:"MoveForward",KeyS:"MoveBackword",KeyA:"MoveLeft",KeyD:"MoveRight",ArrowUp:"MoveForward",ArrowDown:"MoveBackword",ArrowLeft:"MoveLeft",ArrowRight:"MoveRight",KeyR:"SpeedUp",KeyF:"SpeedDown",KeyQ:"SwitchAlwaysWithCamera"});let ch=vf;function GP(t,n){t.lookRight(C.Math.toRadians(n.movementX)*.1),t.lookDown(C.Math.toRadians(n.movementY)*.1);const e=t.pitch,i=C.Math.clamp(e,-C.Math.PI_OVER_TWO,C.Math.PI_OVER_TWO);i!==e&&t.setView({destination:t.positionWC,orientation:{heading:t.heading,pitch:i,roll:t.roll}})}class WP extends p.Destroyable{constructor(n,e){super(),this._firstPersonController=n,this._mouseCameraController=e;const{canvas:i}=this._firstPersonController.viewer;{const o=r=>{const{camera:s}=this._firstPersonController.viewer.scene;GP(s,r)};i.addEventListener("pointermove",o),this.dispose(()=>i.removeEventListener("pointermove",o))}}}const wf=class wf extends p.Destroyable{constructor(e){super();L(this,"_mouseMoving",this.dv(new WP(this.firstPersonController,this.mouseCameraController)));this._mouseCameraController=e;const{viewer:i}=this.firstPersonController;this.mouseCameraController.enableViewerOriginInputs(!1),this.dispose(()=>this.mouseCameraController.enableViewerOriginInputs(!0)),Element.prototype.setPointerCapture=()=>{},this.dispose(()=>Element.prototype.setPointerCapture=wf.origin_setPointerCapture);const o=i.canvas;o.requestPointerLock(),this.dispose(()=>document.exitPointerLock());{const r=()=>{document.pointerLockElement!==o&&(this.firstPersonController.mouseEnabled=!1)};document.addEventListener("pointerlockchange",r,!1),this.dispose(()=>document.removeEventListener("pointerlockchange",r,!1))}{const r=()=>{this.firstPersonController.mouseEnabled=!1,console.log("Error locking pointer")};document.addEventListener("pointerlockerror",r)}}get mouseCameraController(){return this._mouseCameraController}get firstPersonController(){return this.mouseCameraController.firstPersonController}get mouseMoving(){return this._mouseMoving}};L(wf,"origin_setPointerCapture",Element.prototype.setPointerCapture);let ld=wf;class qP extends p.Destroyable{constructor(e){super();L(this,"_enabled",this.dv(p.react(!1)));L(this,"enableViewerOriginInputs",e=>{e?this.firstPersonController.czmViewer.incrementDisabledInputStack():this.firstPersonController.czmViewer.decrementDisabledInputStack()});L(this,"_mouseResetting",this.dv(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new ld(this)})));this._firstPersonController=e}get firstPersonController(){return this._firstPersonController}get enabled(){return this._enabled.value}set enabled(e){this._enabled.value=e}get enabledChanged(){return this._enabled.changed}get mouseResetting(){return this._mouseResetting}}class KP extends p.Destroyable{constructor(e){super();L(this,"viewer");L(this,"_mouseCameraController",this.dv(new qP(this)));L(this,"_keyboardCameraController",this.dv(new ch(this)));if(this._viewer=e,!this._viewer.viewer)throw new Error("Cesium.Viewer不存在!");this.viewer=this._viewer.viewer}get czmViewer(){return this._viewer}get mouseCameraController(){return this._mouseCameraController}get mouseEnabled(){return this.mouseCameraController.enabled}set mouseEnabled(e){this.mouseCameraController.enabled=e}get mouseEnabledChanged(){return this.mouseCameraController.enabledChanged}get keyboardCameraController(){return this._keyboardCameraController}get keyboardEnabled(){return this.keyboardCameraController.enabled}set keyboardEnabled(e){this.keyboardCameraController.enabled=e}get keyboardEnabledChanged(){return this.keyboardCameraController.enabledChanged}}function N0(t){t.removeInputAction(C.ScreenSpaceEventType.LEFT_DOWN),t.removeInputAction(C.ScreenSpaceEventType.RIGHT_DOWN),t.removeInputAction(C.ScreenSpaceEventType.MIDDLE_DOWN),t.removeInputAction(C.ScreenSpaceEventType.MOUSE_MOVE),t.removeInputAction(C.ScreenSpaceEventType.LEFT_UP),t.removeInputAction(C.ScreenSpaceEventType.RIGHT_UP),t.removeInputAction(C.ScreenSpaceEventType.MIDDLE_UP)}function ud(t,n,e,i=void 0){const r=t.camera,s=new C.Cartesian2;s.x=n.startPosition.x,s.y=0;const a=new C.Cartesian2;a.x=n.endPosition.x,a.y=0;let l=r.getPickRay(s,new C.Ray),c=r.getPickRay(a,new C.Ray),h=0,u,A;if(!l||!c)return;r.frustum instanceof C.OrthographicFrustum?(u=l.origin,A=c.origin,C.Cartesian3.add(r.direction,u,u),C.Cartesian3.add(r.direction,A,A),C.Cartesian3.subtract(u,r.position,u),C.Cartesian3.subtract(A,r.position,A),C.Cartesian3.normalize(u,u),C.Cartesian3.normalize(A,A)):(u=l.direction,A=c.direction);let f=C.Cartesian3.dot(u,A);f<1&&(h=Math.acos(f)),h=n.startPosition.x>n.endPosition.x?h:-h;const d=e._horizontalRotationAxis;if(C.defined(i)?r.look(i,-h):C.defined(d)?r.look(d,-h):r.lookLeft(h),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,l=r.getPickRay(s,new C.Ray),c=r.getPickRay(a,new C.Ray),h=0,!(!l||!c))if(r.frustum instanceof C.OrthographicFrustum?(u=l.origin,A=c.origin,C.Cartesian3.add(r.direction,u,u),C.Cartesian3.add(r.direction,A,A),C.Cartesian3.subtract(u,r.position,u),C.Cartesian3.subtract(A,r.position,A),C.Cartesian3.normalize(u,u),C.Cartesian3.normalize(A,A)):(u=l.direction,A=c.direction),f=C.Cartesian3.dot(u,A),f<1&&(h=Math.acos(f)),h=n.startPosition.y>n.endPosition.y?h:-h,i=C.defaultValue(i,d),C.defined(i)){const g=r.direction,v=C.Cartesian3.negate(i,new C.Cartesian3),y=C.Cartesian3.equalsEpsilon(g,i,C.Math.EPSILON2),m=C.Cartesian3.equalsEpsilon(g,v,C.Math.EPSILON2);if(!y&&!m){f=C.Cartesian3.dot(g,i);let w=C.Math.acosClamped(f);h>0&&h>w&&(h=w-C.Math.EPSILON4),f=C.Cartesian3.dot(g,v),w=C.Math.acosClamped(f),h<0&&-h>w&&(h=-w+C.Math.EPSILON4);const _=C.Cartesian3.cross(i,g,new C.Cartesian3);r.look(_,h)}else(y&&h<0||m&&h>0)&&r.look(r.right,-h)}else r.lookUp(h)}class ZP extends p.Destroyable{constructor(n,e){super();const i=e.viewer;if(!i)throw new Error("viewer is undefined");let o=!0;this.d(n.positionChanged.don(()=>o=!0)),this.d(n.rotationChanged.don(()=>o=!0)),this.d(n.offsetHeightChanged.don(()=>o=!0)),this.d(n.viewDistanceChanged.don(()=>o=!0)),this.d(n.offsetRotationChanged.don(()=>o=!0)),this.d(n.relativeRotationChanged.don(()=>o=!0));const r=[0,0,0],s=[0,0,0];this.d(i.clock.onTick.addEventListener(()=>{if(!o)return;if(o=!1,!n.position){console.warn("相机控制器未能设置位置,无法启用!");return}if(n.viewDistance===void 0){console.warn("相机控制器未能设置视距,将自动设置视距!");const u=dt(n.position),A=i.camera.positionWC,f=C.Cartesian3.distance(u,A);n.viewDistance=f}p.Vector.clone(n.position,s),n.offsetHeight&&(s[2]+=n.offsetHeight);const{rotation:a,offsetRotation:l=li.defaults.offsetRotation}=n,c=[...l];p.Vector.set(r,0,0,0),a&&(n.relativeRotation??li.defaults.relativeRotation)&&(p.Vector.add(a,r,r),c[0]+=90),p.Vector.add(c,r,r);const h={distance:n.viewDistance,heading:r[0],pitch:r[1],flyDuration:0,hDelta:0,pDelta:0};e.flyTo(h,s)})),e.incrementDisabledInputStack(),this.d(()=>{e.decrementDisabledInputStack()}),this.d(e.pointerMoveEvent.don(a=>{const l=a==null?void 0:a.pointerEvent;if(l&&n.enabledRotationInput&&(l.buttons===1||l.buttons===2)){const{movementX:c,movementY:h}=l;n.offsetRotation=p.Vector.add(n.offsetRotation??li.defaults.offsetRotation,[c*.2,h*-.2,0])}})),this.d(e.wheelEvent.don(a=>{if(!n.enabledScaleInput)return;const l=a.deltaY,h=Math.max(1,n.viewDistance)*(l*.001);n.viewDistance=n.viewDistance+h}))}}class li extends p.Destroyable{constructor(e){super();L(this,"_resetWithCameraEvent",this.dv(new p.Event));const i=e.viewer;if(!i)throw new Error("viewer is undefined");const o=this;let r;const s=()=>{r&&(r.destroy(),r=void 0)};this.d(s);const a=()=>{s(),o.enabled&&(r=new ZP(o,e))};a(),this.d(o.enabledChanged.don(a)),this.d(o.resetWithCameraEvent.don(l=>{if(!e.actived)return;const c=ha(i.camera);if(!c)return;const h=o.rotation;o.offsetRotation=[c[0]-(o.relativeRotation?h[0]:90),c[1]-(o.relativeRotation?h[1]:0),c[2]-(o.relativeRotation?h[2]:0)]}))}get resetWithCameraEvent(){return this._resetWithCameraEvent}resetWithCamera(e){this._resetWithCameraEvent.emit(e)}}L(li,"defaults",{position:[116.39,39.9,0],rotation:[0,0,0],offsetRotation:[0,-60,0],relativeRotation:!0}),(t=>{t.createDefaultProps=()=>({enabled:!1,showTarget:!1,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArrayWithUndefined(void 0),positionEditing:!1,rotationEditing:!1,viewDistance:1e3,offsetHeight:0,offsetRotation:p.reactArray([0,-60,0]),enabledRotationInput:!0,enabledScaleInput:!0,relativeRotation:!0})})(li||(li={})),p.extendClassProps(li.prototype,li.createDefaultProps);class $s extends p.Destroyable{constructor(e){super();L(this,"_geoCameraController");L(this,"_geoPolylinePath");this._geoCameraController=this.dv(new li(e)),this._geoPolylinePath=this.dv(new as(e)),this._geoPolylinePath.show=!1,this._geoPolylinePath.currentTime=0;const i=()=>{(this.usePathPosition??!0)&&(this._geoCameraController.position=this._geoPolylinePath.currentPosition),(this.usePathRotation??!0)&&(this._geoCameraController.rotation=this._geoPolylinePath.currentRotation)};i(),this.d(this._geoPolylinePath.currentPositionChanged.don(i)),this.d(this._geoPolylinePath.currentRotationChanged.don(i)),this.dispose(p.bind([this._geoCameraController,"enabled"],[this,"enabled"])),this.dispose(p.bind([this._geoCameraController,"viewDistance"],[this,"viewDistance"])),this.dispose(p.bind([this._geoCameraController,"offsetHeight"],[this,"offsetHeight"])),this.dispose(p.bind([this._geoCameraController,"offsetRotation"],[this,"offsetRotation"])),this.dispose(p.track([this._geoCameraController,"enabledRotationInput"],[this,"enabledRotationInput"])),this.dispose(p.track([this._geoCameraController,"enabledScaleInput"],[this,"enabledScaleInput"])),this.dv(new p.ObjResettingWithEvent(this.lineModeChanged,()=>{if(this.lineMode!==void 0){if(this.lineMode==="auto")return new XP(this,e);if(this.lineMode==="manual")return new $P(this,e)}}))}get geoCameraController(){return this._geoCameraController}get polylinePath(){return this._geoPolylinePath}get position(){return this._geoCameraController.position}get positionChanged(){return this._geoCameraController.positionChanged}get rotation(){return this._geoCameraController.rotation}get roataionChanged(){return this._geoCameraController.rotationChanged}}(t=>{t.createDefaultProps=()=>({enabled:!1,usePathPosition:!0,usePathRotation:!0,viewDistance:1e3,offsetHeight:0,offsetRotation:p.reactArray([0,-60,0]),enabledRotationInput:!0,enabledScaleInput:!0,lineMode:void 0})})($s||($s={})),p.extendClassProps($s.prototype,$s.createDefaultProps);class XP extends p.Destroyable{constructor(n,e){if(super(),!e.viewer)throw new Error("viewer is undefined");n.offsetRotation=[-90,0,0]}}class $P extends p.Destroyable{constructor(n,e){if(super(),!e.viewer)throw new Error("viewer is undefined");const o=r=>{(r.key==="w"||r.key==="s")&&(n.polylinePath.playing=r.type==="keydown",n.polylinePath.speed=r.key==="w"||r.type==="keyup"?1:-1)};this.dispose(e.keyDownEvent.don(o)),this.dispose(e.keyUpEvent.don(o))}}class YP extends p.Destroyable{constructor(n,e){super();const i=e.positionPropertyName??"position",o=e.positionChangedPropertyName??i+"Changed",r=e.rotationPropertyName??"rotation",s=e.rotationChangedPropertyName??r+"Changed",a=(e.positionTracking??!0)&&Reflect.has(n,i)&&Reflect.has(n,o),l=(e.rotationTracking??!0)&&Reflect.has(n,r)&&Reflect.has(n,s);if(!(!a&&!l)){if(a){const c=()=>{e.geoCameraController.position=n[i]};c();const h=n[o];this.d(h.don(c))}if(l){const c=()=>{e.geoCameraController.rotation=n[r]};c();const h=n[o];this.d(h.don(c))}}}}class JP extends p.Destroyable{constructor(n,e){super();const i=this.dv(new Q.ESSceneObjectWithId);i.id=n;const o=this.dv(p.createNextAnimateFrameEvent(e.enabledChanged,e.positionTrackingChanged,e.rotationTrackingChanged,e.positionPropertyNameChanged,e.positionChangedPropertyNameChanged,e.rotationPropertyNameChanged,e.rotationChangedPropertyNameChanged,i.sceneObjectChanged));this.disposeVar(new p.ObjResettingWithEvent(o,()=>{const{sceneObject:r}=i;if(!(!e.enabled||!r))return new YP(r,e)}))}}class Ys extends p.Destroyable{constructor(e){super();L(this,"_geoCameraController");this._geoCameraController=this.dv(new li(e)),this.d(p.bind([this._geoCameraController,"enabled"],[this,"enabled"])),this.dv(new p.ObjResettingWithEvent(this.sceneObjectIdChanged,()=>{if(this.sceneObjectId)return new JP(this.sceneObjectId,this)}))}get geoCameraController(){return this._geoCameraController}}(t=>{t.createDefaultProps=()=>({enabled:void 0,sceneObjectId:void 0,positionTracking:void 0,rotationTracking:void 0,positionPropertyName:void 0,positionChangedPropertyName:void 0,rotationPropertyName:void 0,rotationChangedPropertyName:void 0})})(Ys||(Ys={})),p.extendClassProps(Ys.prototype,Ys.createDefaultProps);class jP extends p.Destroyable{constructor(e){super();L(this,"height",1e7);L(this,"cycle",60);L(this,"latitude",6.632251044444445);L(this,"_running",!1);L(this,"_sseh");L(this,"_eventDisposer");L(this,"leftDownCancel",!0);this._viewer=e,this._sseh=this.dv(new C.ScreenSpaceEventHandler(this._viewer.canvas)),this._sseh.setInputAction(()=>{this.leftDownCancel&&this.cancel()},C.ScreenSpaceEventType.LEFT_DOWN),this.d(()=>{this.cancel()})}get viewer(){return this._viewer}get sseh(){return this._sseh}start(){if(this._running)return;const e=this._viewer.camera,i=e.positionCartographic;e.flyTo({destination:C.Cartesian3.fromRadians(i.longitude,this.latitude,this.height),orientation:{heading:0,pitch:-.5*C.Math.PI,roll:0},complete:()=>{this._running=!0;var o=void 0;this._eventDisposer=this.viewer.scene.postUpdate.addEventListener((r,s)=>{if(!o){o=new Date().getTime();return}const a=(new Date().getTime()-o)/1e3,l=e.positionCartographic.longitude+a*C.Math.PI*2/this.cycle;e.setView({destination:C.Cartesian3.fromRadians(l,this.latitude,this.height),orientation:{heading:0,pitch:-.5*C.Math.PI,roll:0}}),o=new Date().getTime()})},duration:.5})}cancel(){this._running&&(this._eventDisposer&&(this._eventDisposer(),this._eventDisposer=void 0),this._running=!1)}}class eT extends p.Destroyable{constructor(e){super();L(this,"_height",this.dv(p.react(1e7)));L(this,"_cycle",this.dv(p.react(60)));L(this,"_latitude",this.dv(p.react(38)));L(this,"_inner");this._czmViewer=e;const i=this._czmViewer.viewer;if(!i)throw new Error("未初始化viewer");this._inner=this.dv(new jP(i)),this._inner.leftDownCancel=!1;{const o=()=>{this._inner.height=this.height,this._inner.cycle=this.cycle,this._inner.latitude=this.latitude*Math.PI/180};o(),this.d(this.heightChanged.don(o)),this.d(this.cycleChanged.don(o)),this.d(this.latitudeChanged.don(o))}}get height(){return this._height.value}set height(e){this._height.value=e}get heightChanged(){return this._height.changed}get cycle(){return this._cycle.value}set cycle(e){this._cycle.value=e}get cycleChanged(){return this._cycle.changed}get latitude(){return this._latitude.value}set latitude(e){this._latitude.value=e}get latitudeChanged(){return this._latitude.changed}get inner(){return this._inner}start(){return this._inner.start()}cancel(){return this._inner.cancel()}}class tT extends p.Destroyable{constructor(e){super();L(this,"_position",this.dv(p.reactArrayWithUndefined(void 0)));L(this,"_distance",this.dv(p.react(5e4)));L(this,"_cycle",this.dv(p.react(60)));L(this,"_heading",this.dv(p.react(0)));L(this,"_pitch",this.dv(p.react(-30)));L(this,"_transform");L(this,"_headingRadius");L(this,"_pitchRadius");L(this,"_running",!1);L(this,"_sseh");L(this,"_eventDisposer");this._viewer=e;const i=this.viewer.scene,o=this.viewer.camera;this._sseh=this.dv(new C.ScreenSpaceEventHandler(this.viewer.canvas)),this.d(()=>{this.cancel()});{const r=()=>{let s;if(this.position==null){var a=o.getPickRay(new C.Cartesian2(i.canvas.width*.5,i.canvas.height*.5));if(!a)return;s=i.globe.pick(a,i)}else s=C.Cartesian3.fromDegrees(...this.position);s&&(this._transform=C.Transforms.eastNorthUpToFixedFrame(s),this.start())};r(),this.d(this.positionChanged.don(r))}{const r=()=>{this._headingRadius=C.Math.toRadians(this.heading)};r(),this.d(this.headingChanged.don(r))}{const r=()=>{this._pitchRadius=C.Math.toRadians(this.pitch)};r(),this.d(this.pitchChanged.don(r))}}get viewer(){return this._viewer}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get distance(){return this._distance.value}set distance(e){this._distance.value=e}get distanceChanged(){return this._distance.changed}get cycle(){return this._cycle.value}set cycle(e){this._cycle.value=e}get cycleChanged(){return this._cycle.changed}get heading(){return this._heading.value}set heading(e){this._heading.value=e}get headingChanged(){return this._heading.changed}get pitch(){return this._pitch.value}set pitch(e){this._pitch.value=e}get pitchChanged(){return this._pitch.changed}get sseh(){return this._sseh}start(){if(this._running)return;const e=this.viewer.camera;e.lookAtTransform(this._transform);var i=this.distance*Math.sin(this._pitchRadius),o=this.distance*Math.cos(this._pitchRadius),r=new C.Cartesian3(0,i,o);e.flyTo({destination:C.Matrix4.multiplyByPoint(this._transform,r,new C.Cartesian3),orientation:{heading:this._headingRadius,pitch:this._pitchRadius,roll:0},endTransform:this._transform,complete:()=>{this._running=!0;let s;this._eventDisposer=this.viewer.scene.postUpdate.addEventListener((a,l)=>{if(!s){s=new Date().getTime();return}const c=(new Date().getTime()-s)/1e3;this._headingRadius+=c*C.Math.PI*2/this.cycle,e.lookAtTransform(this._transform,new C.HeadingPitchRange(this._headingRadius,this._pitchRadius,this.distance)),s=new Date().getTime()})},duration:.5,maximumHeight:e.positionCartographic.height})}cancel(){if(!this._running)return;this.viewer.camera.lookAtTransform(C.Matrix4.IDENTITY),this._eventDisposer&&(this._eventDisposer(),this._eventDisposer=void 0),this._running=!1}}class nT extends p.Destroyable{constructor(e){super();L(this,"_position",this.dv(p.reactArrayWithUndefined(void 0)));L(this,"_distance",this.dv(p.react(5e4)));L(this,"_cycle",this.dv(p.react(60)));L(this,"_heading",this.dv(p.react(0)));L(this,"_pitch",this.dv(p.react(-30)));L(this,"_inner");this._czmViewer=e;const i=this._czmViewer.viewer;if(!i)throw new Error("viewer is undefined");this._inner=this.dv(new tT(i));{const o=()=>{this.inner.distance=this.distance,this.inner.cycle=this.cycle,this.inner.position=this.position,this.inner.heading=this.heading,this.inner.pitch=this.pitch};o(),this.d(this.distanceChanged.don(o)),this.d(this.cycleChanged.don(o)),this.d(this.positionChanged.don(o)),this.d(this.headingChanged.don(o)),this.d(this.pitchChanged.don(o))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get distance(){return this._distance.value}set distance(e){this._distance.value=e}get distanceChanged(){return this._distance.changed}get cycle(){return this._cycle.value}set cycle(e){this._cycle.value=e}get cycleChanged(){return this._cycle.changed}get heading(){return this._heading.value}set heading(e){this._heading.value=e}get headingChanged(){return this._heading.changed}get pitch(){return this._pitch.value}set pitch(e){this._pitch.value=e}get pitchChanged(){return this._pitch.changed}get inner(){return this._inner}start(){return this._inner.start()}cancel(){return this._inner.cancel()}}class iT extends p.Destroyable{constructor(e){super();L(this,"_firstPersonController");L(this,"_rotateGlobe");L(this,"_rotatePoint");L(this,"_followController");L(this,"_pathCameraController");L(this,"_handler");this._viewer=e;{this._firstPersonController=this.dv(new KP(e)),this.d(this._viewer.keyDownEvent.don(i=>this._firstPersonController.keyboardCameraController.keyDown(i))),this.d(this._viewer.keyUpEvent.don(i=>this._firstPersonController.keyboardCameraController.keyUp(i)));{const{subContainer:i}=this._viewer;if(!i)throw new Error("_firstPersonControllerInit error!");const o=()=>this._firstPersonController.keyboardCameraController.abort();i.addEventListener("blur",o,!1),this.d(()=>i.removeEventListener("blur",o,!1))}this._firstPersonController.keyboardEnabled=!1,this._firstPersonController.mouseEnabled=!1,this._firstPersonController.keyboardCameraController.speed=.006,this._firstPersonController.keyboardCameraController.rotateSpeed=.05,this._firstPersonController.keyboardCameraController.alwaysWithCamera=!1,this._firstPersonController.keyboardCameraController.keyStatusMap=ch.defaultKeyStatusMap,this.d(this._firstPersonController.keyboardEnabledChanged.don(()=>{var i;(i=this._viewer.subContainer)==null||i.focus()}))}this._rotateGlobe=this.dv(new eT(e)),this._rotatePoint=this.dv(new nT(e)),this._followController=this.dv(new Ys(e)),this._pathCameraController=this.dv(new $s(e))}get firstPersonController(){return this._firstPersonController}get rotateGlobe(){return this._rotateGlobe}get rotatePoint(){return this._rotatePoint}get followController(){return this._followController}get pathCameraController(){return this._pathCameraController}resetNavigation(){this._firstPersonController.keyboardEnabled=!1,this._rotateGlobe.cancel(),this._rotatePoint.cancel(),this._followController.enabled=!1,this._followController.sceneObjectId=void 0,this._followController.geoCameraController.offsetRotation=[-90,0,0],this._followController.geoCameraController.viewDistance=0,this._pathCameraController.enabled=!1,this._pathCameraController.polylinePath.playing=!1,this._pathCameraController.polylinePath.currentTime=0,this._pathCameraController.polylinePath.loop=!1,this._pathCameraController.geoCameraController.offsetHeight=0,this._pathCameraController.polylinePath.positions=void 0,this._pathCameraController.lineMode=void 0}changeToMap(){this.resetNavigation(),this._changedMouseEvent("Map")}changeToWalk(e,i=4.2){this.resetNavigation(),this._changedMouseEvent("Walk");const o=this._viewer.getCameraInfo(),r=[(o==null?void 0:o.rotation[0])??0,0,0];this._viewer.getHeightByLonLat(e[0],e[1]).then(s=>{this._viewer.flyIn([e[0],e[1],(s??0)+1],r),this.firstPersonController.keyboardEnabled=!0,this.firstPersonController.keyboardCameraController.speed=.006,this.firstPersonController.keyboardCameraController.rotateSpeed=.05,this.firstPersonController.keyboardCameraController.keyStatusMap={ShiftLeft:"WithCamera",ShiftRight:"WithCamera",KeyW:"MoveForward",KeyS:"MoveBackword",KeyA:"MoveLeft",KeyD:"MoveRight",ArrowUp:"MoveForward",ArrowDown:"MoveBackword",ArrowLeft:"RotateLeft",ArrowRight:"RotateRight",KeyR:"SpeedUp",KeyF:"SpeedDown",KeyQ:"SwitchAlwaysWithCamera"}})}changeToRotateGlobe(e=38,i=1e7,o=60){this.resetNavigation(),this._changedMouseEvent("RotateGlobe"),this._rotateGlobe.latitude=e,this._rotateGlobe.height=i,this._rotateGlobe.cycle=o,this._rotateGlobe.start()}changeToRotatePoint(e,i=5e4,o=60,r=0,s=-30){this.resetNavigation(),this._changedMouseEvent("RotatePoint"),this._rotatePoint.position=e,this._rotatePoint.distance=i,this._rotatePoint.cycle=o,this._rotatePoint.heading=r,this._rotatePoint.pitch=s,this._rotatePoint.start()}changeToFollow(e,i=0,o=0,r=-30,s=!0){this.resetNavigation(),this._changedMouseEvent("Follow"),this._followController.sceneObjectId=e,this._followController.geoCameraController.offsetRotation=[o,r,0],this._followController.geoCameraController.relativeRotation=s,i!==0?this._followController.geoCameraController.viewDistance=i:this._followController.geoCameraController.viewDistance=1e3,this._followController.enabled=!0}changeToLine(e,i=10,o=10,r=!0,s=10,a="auto"){this.resetNavigation(),this._changedMouseEvent("Line");const l=a==="auto",c=Q.ESSceneObject.getSceneObjById(e);if(!c)return;const{points:h}=c;if(!h)return;const u=Q.getDistancesFromPositions(h,"NONE"),A=u[u.length-1];this._pathCameraController.viewDistance=0,this._pathCameraController.polylinePath.positions=[...h],this._pathCameraController.polylinePath.duration=A/i*1e3,this._pathCameraController.polylinePath.loop=r,this._pathCameraController.offsetHeight=o;const f=A0(h);this._pathCameraController.polylinePath.rotationRadius=!l||f==!1?[0]:f.map(d=>d/s*i),this._pathCameraController.enabledRotationInput=!l,this._pathCameraController.enabledScaleInput=!1,this._pathCameraController.polylinePath.playing=l,this._pathCameraController.lineMode=a,this._pathCameraController.enabled=!0}_changedMouseEvent(e){const i=this._viewer.viewer;if(!i)return;this._handler||(this._handler=new C.ScreenSpaceEventHandler(i.scene.canvas));const o=this._handler,r=i.scene.screenSpaceCameraController;this.d(()=>{o&&N0(o)}),e=="Walk"||e=="RotateGlobe"?(r.lookEventTypes=void 0,r.rotateEventTypes=void 0,r.tiltEventTypes=void 0,r.zoomEventTypes=void 0,r.translateEventTypes=void 0,o&&e=="Walk"&&(o.setInputAction(s=>{o.setInputAction(a=>{ud(i.scene,a,r)},C.ScreenSpaceEventType.MOUSE_MOVE),o.setInputAction(a=>{o.removeInputAction(C.ScreenSpaceEventType.MOUSE_MOVE),o.removeInputAction(C.ScreenSpaceEventType.LEFT_UP)},C.ScreenSpaceEventType.LEFT_UP)},C.ScreenSpaceEventType.LEFT_DOWN),o.setInputAction(s=>{o.setInputAction(a=>{ud(i.scene,a,r)},C.ScreenSpaceEventType.MOUSE_MOVE),o.setInputAction(a=>{o.removeInputAction(C.ScreenSpaceEventType.MOUSE_MOVE),o.removeInputAction(C.ScreenSpaceEventType.RIGHT_UP)},C.ScreenSpaceEventType.RIGHT_UP)},C.ScreenSpaceEventType.RIGHT_DOWN),o.setInputAction(s=>{o.setInputAction(a=>{ud(i.scene,a,r)},C.ScreenSpaceEventType.MOUSE_MOVE),o.setInputAction(a=>{o.removeInputAction(C.ScreenSpaceEventType.MOUSE_MOVE),o.removeInputAction(C.ScreenSpaceEventType.MIDDLE_UP)},C.ScreenSpaceEventType.MIDDLE_UP)},C.ScreenSpaceEventType.MIDDLE_DOWN))):(o&&N0(o),r.lookEventTypes=C.CameraEventType.RIGHT_DRAG,r.rotateEventTypes=C.CameraEventType.LEFT_DRAG,r.tiltEventTypes=[C.CameraEventType.MIDDLE_DRAG,C.CameraEventType.PINCH,{eventType:C.CameraEventType.LEFT_DRAG,modifier:C.KeyboardEventModifier.CTRL},{eventType:C.CameraEventType.RIGHT_DRAG,modifier:C.KeyboardEventModifier.CTRL}],r.translateEventTypes=C.CameraEventType.LEFT_DRAG,r.zoomEventTypes=[C.CameraEventType.WHEEL,C.CameraEventType.PINCH,{eventType:C.CameraEventType.RIGHT_DRAG,modifier:C.KeyboardEventModifier.SHIFT}])}}const rT=[{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.3558367297943,39.93163726456884,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.30223283037274,39.92688664316035,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.43707387584969,39.922782714050356,3300]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.27929428317248,39.895318074706246,3500]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.36181901056395,39.89720944386167,3553.618347252562]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.40050587550184,39.87565113086582,3500]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.31629153797958,39.88888615917464,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.38662084727662,39.93026695192356,5222.983612030221]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.35985958294472,39.879559968940974,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.30061281533665,39.86521469244785,3500]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.33589491695909,39.85251691437225,3400]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.3978491755026,39.92191230041099,3e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.404556165088,39.901554635269065,3400]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.3371677114933,39.90666589456628,3200]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.30329238580244,39.90598342431921,5e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.25047545555285,39.927295935589235,5e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.33129680063607,39.98205319015022,5500]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.38241622722414,39.864780790627634,5800]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.24126681456984,39.85629130246847,6e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.4476299820832,39.9015287845667,5233.181711832771]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.33116617802452,39.824241891065384,6e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.15206905891218,39.90872966468676,5e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.24197212869294,39.88630968655299,3200]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.43381133281572,39.96058832885812,5700]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[4e4,1e4],position:[116.21635435523064,39.966450178376924,7e3]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.17908072725879,39.87211951629164,3200]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.32516866705241,39.94534681561764,3300]},{slice:-1,brightness:1,maximumSize:[25,9,10],color:[1,1,1,1],scale:[1e4,5e3],position:[116.36086721251684,39.948381883306446,3400]}];class oT extends p.Destroyable{constructor(e){super();L(this,"_show",this.dv(p.react(!1)));L(this,"cloudsPostProcess");const i=e.viewer;if(!i)throw new Error("Cesium Viewer is not initialized");const o=new C.CloudCollection;i.scene.primitives.add(o),this.dispose(()=>i.scene.primitives.remove(o));{const r=()=>{o.show=this.show};r(),this.dispose(this.showChanged.disposableOn(r))}{const r=a=>({slice:a.slice,brightness:a.brightness,scale:Xe(a.scale),maximumSize:Kn(a.maximumSize),color:Ie(a.color),position:dt(a.position)});(()=>{o.removeAll();for(let a of rT)o.add(r(a))})()}}get show(){return this._show.value}set show(e){this._show.value=e}get showChanged(){return this._show.changed}}class Js extends p.Destroyable{constructor(n){super();const e=n.viewer;if(!e){console.warn("viewer is undefined!");return}const i=e.scene.postProcessStages.add(C.PostProcessStageLibrary.createDepthOfFieldStage());this.d(()=>e.scene.postProcessStages.remove(i));{const o=()=>{i.enabled=this.show};o(),this.d(this.showChanged.don(o))}{const o=()=>{i.uniforms.fogByDistance=this.focalDistance};o(),this.d(this.focalDistanceChanged.don(o))}{const o=()=>{i.uniforms.delta=this.delta};o(),this.d(this.deltaChanged.don(o))}{const o=()=>{i.uniforms.sigma=this.sigma};o(),this.d(this.sigmaChanged.don(o))}{const o=()=>{i.uniforms.stepSize=this.stepSize};o(),this.d(this.stepSizeChanged.don(o))}}}(t=>{t.createDefaultProps=()=>({show:!1,focalDistance:87,delta:1,sigma:3.78,stepSize:2.46})})(Js||(Js={})),p.extendClassProps(Js.prototype,Js.createDefaultProps);const aT=`
|
|
171
171
|
float getDistance(sampler2D depthTexture, vec2 texCoords)
|
|
172
172
|
{
|
|
173
173
|
float depth = czm_unpackDepth(texture(depthTexture, texCoords));
|
|
@@ -2924,7 +2924,7 @@ ${tC}
|
|
|
2924
2924
|
// out_FragColor = vec4(texture(u_gradientMap, vec2(a, .5)).rgb, (a + .1)*4.);
|
|
2925
2925
|
out_FragColor = vec4(texture(u_gradientMap, vec2(a, .5)).rgb, a);
|
|
2926
2926
|
}
|
|
2927
|
-
`,r.uniformMap={u_gradientMap:{type:"texture",id:"5d45a4a4-4f5d-4424-aea5-181de75bd13b"},u_stripMinMaxValue:[0,1],u_ratio:0};let a=this.disposeVar(p.react(void 0));{const l=this.disposeVar(p.createProcessingFromAsyncFunc(async h=>{a.value=void 0;const u=e.url??Q.ESDataMesh.defaults.url;if(!u)return;await h.promise(p.sleep(200));const A=(e.maxTime??Q.ESDataMesh.defaults.maxTime)|0;a.value=await h.promise(NU(Q.ESSceneObject.context.getStrFromEnv(typeof u=="string"?u:u.url),A+1))}));l.start();const c=this.disposeVar(p.createNextAnimateFrameEvent(e.urlChanged,e.maxTimeChanged));this.dispose(c.disposableOn(()=>l.restart()))}{class l{constructor(u){this._buffer=u}[Symbol.iterator](){return GU(this._buffer)}}const c=()=>{if(!a.value)return;const{vertexBuffer:h,propBuffers:u,indexBuffer:A}=a.value,{minPos:f,maxPos:d}=Q.getMinMaxCorner(new l(h));r.setLocalAxisedBoundingBox(f,d);const g=(e.maxTime??Q.ESDataMesh.defaults.maxTime)|0;let v=(e.currentTime??Q.ESDataMesh.defaults.currentTime)/g;v=v<0?0:v>1?1:v;const y=v*g;let m=v*g|0,w=y-m;if(m>=g&&(m=g-1,w=1),!Number.isFinite(w)){console.error("!Number.isFinite(rr)");debugger;return}if(r.indexTypedArray=A,!u[m]||!u[m+1]){console.error("!propBuffers[i] || !propBuffers[i + 1]");debugger}r.attributes={a_position:{typedArray:h,componentsPerAttribute:3},a_prop:{typedArray:u[m],componentsPerAttribute:3},a_prop2:{typedArray:u[m+1],componentsPerAttribute:3}},r.uniformMap={u_gradientMap:{type:"texture",id:`${s.id}`},u_stripMinMaxValue:[e.minPropValue??Q.ESDataMesh.defaults.minPropValue,e.maxPropValue??Q.ESDataMesh.defaults.maxPropValue],u_ratio:w}};c(),this.dispose(e.maxTimeChanged.disposableOn(c)),this.dispose(e.currentTimeChanged.disposableOn(c)),this.dispose(e.minPropValueChanged.disposableOn(c)),this.dispose(e.maxPropValueChanged.disposableOn(c)),this.dispose(a.changed.disposableOn(c))}}get czmCustomPrimitive(){return this._czmCustomPrimitive}get czmTexture(){return this._czmTexture}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmCustomPrimitive:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(dn(r,o,i,e,s,!0),!0):!1}};L(Cu,"type",Cu.register("ESCesiumViewer",Q.ESDataMesh.type,Cu));let Im=Cu;const ia=class ia extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_heading",this.disposeVar(p.react(0)));L(this,"_textFunc",this.disposeVar(p.react(void 0)));const o=this;{const a=()=>{if(this.positions&&this.positions.length>=2){let c=0;this.arcType===void 0||this.arcType==="GEODESIC"?c=Q.geoHeading(this.positions[0],this.positions[1]):this.arcType==="RHUMB"?c=Q.geoRhumbHeading(this.positions[0],this.positions[1]):this.arcType==="NONE"?c=Q.geoHeading(this.positions[0],this.positions[1]):console.warn(`未知的arcType: ${this.arcType},导致距离无法计算!`),this._heading.value=this.angleMode==="-180~180"?Q.clampN180_180(c):Q.clamp0_360(c)}};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.angleModeChanged));this.dispose(l.disposableOn(a))}const r=this.disposeVar(new Je(e,i));r.loop=!1,this.dispose(p.track([r,"allowPicking"],[o,"allowPicking"])),this.dispose(p.bind([r,"arcType"],[o,"arcType"])),this.dispose(p.bind([r,"color"],[o,"color"])),this.dispose(p.bind([r,"dashLength"],[o,"dashLength"])),this.dispose(p.bind([r,"dashPattern"],[o,"dashPattern"])),this.dispose(p.bind([r,"gapColor"],[o,"gapColor"])),this.dispose(p.bind([r,"hasArrow"],[o,"hasArrow"])),this.dispose(p.bind([r,"hasDash"],[o,"hasDash"])),this.dispose(p.bind([r,"positions"],[o,"positions"])),this.dispose(p.bind([r,"show"],[o,"show"])),this.dispose(p.bind([r,"width"],[o,"width"])),this.dispose(p.bind([r,"depthTest"],[o,"depthTest"])),this.dispose(p.bind([r,"ground"],[o,"strokeGround"])),this.dispose(o.flyToEvent.disposableOn(a=>{e.actived&&r.flyTo(a)}));const s=this.disposeVar(new wt(e,i));this.dispose(p.bind([s,"shadowDom"],[o,"shadowDom"])),this.dispose(p.bind([s,"cssAllInitial"],[o,"cssAllInitial"])),this.dispose(p.bind([s,"show"],[o,"show"]));{const a=()=>{o.positions&&o.positions.length>=2?s.position=o.positions[1]:s.position=void 0};a(),this.dispose(o.positionsChanged.disposableOn(a))}{const a=()=>{const{heading:c}=o,h=(o.textFunc??ia.defaultTextFunc_度格式)(c);s.innerHTML=_o(`方向: ${h}`,24)};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(o.headingChanged,o.textFuncChanged));this.dispose(l.disposableOn(a))}this.ad(s.pickedEvent.don(a=>{Oi(a)===0&&this.pickedEvent.emit(a)}))}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get heading(){return this._heading.value}get headingChanged(){return this._heading.changed}get textFunc(){return this._textFunc.value}set textFunc(e){this._textFunc.value=e}get textFuncChanged(){return this._textFunc.changed}};L(ia,"defaultTextFunc_度格式",e=>`${e.toFixed(5)}°`),L(ia,"defaultTextFunc_度分格式",e=>`${Ks(e,!0)}`),L(ia,"defaultTextFunc_度分秒格式",e=>`${Ks(e,!1)}`),L(ia,"defaults",{positions:[]});let Wo=ia;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:8,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!0,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1,angleMode:"-180~180",strokeGround:!1})})(Wo||(Wo={})),p.extendClassProps(Wo.prototype,Wo.createDefaultProps);const xu=class xu extends an{constructor(e,i){super(e,i);L(this,"_czmDirectionMeasurement");if(this._czmDirectionMeasurement=this.disposeVar(new Wo(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmDirectionMeasurement;r.angleMode="0~360",this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.bind([r,"strokeGround"],[e,"strokeGround"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):c==="normal"?(r.hasDash=!1,r.hasArrow=!1):(r.hasDash=!1,r.hasArrow=!0);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Oi(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmDirectionMeasurement(){return this._czmDirectionMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmDirectionMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmDirectionMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(xu,"type",xu.register("ESCesiumViewer",Q.ESDirectionMeasurement.type,xu));let km=xu;class As extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_distances",this.disposeVar(p.reactArray([])));const o=async()=>{this.strokeGround&&e.viewer?this._distances.value=await x0(e.viewer,this.positions??[]):this._distances.value=Q.getDistancesFromPositions(this.positions??[],this.arcType)};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.strokeGroundChanged));this.dispose(r.disposableOn(o));const s=this.disposeVar(new Je(e,i));s.loop=!1,this.dispose(p.track([s,"allowPicking"],[this,"allowPicking"])),this.dispose(p.bind([s,"arcType"],[this,"arcType"])),this.dispose(p.bind([s,"color"],[this,"color"])),this.dispose(p.bind([s,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([s,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([s,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([s,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([s,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([s,"positions"],[this,"positions"])),this.dispose(p.bind([s,"show"],[this,"show"])),this.dispose(p.bind([s,"width"],[this,"width"])),this.dispose(p.bind([s,"depthTest"],[this,"depthTest"])),this.dispose(p.bind([s,"ground"],[this,"strokeGround"])),this.dispose(this.flyToEvent.disposableOn(a=>{e.actived&&s.flyTo(a)}));{const a=[],l=()=>{for(let h of a)h.destroy();a.length=0};this.dispose(l);const c=()=>{if(l(),!this.positions)return;if(this.positions.length>0&&this.distances.length>0){const u=Yf("起点",this.positions[0],e,i);u.dispose(p.track([u,"show"],[this,"show"])),u.dispose(p.track([u,"shadowDom"],[this,"shadowDom"])),u.dispose(p.track([u,"cssAllInitial"],[this,"cssAllInitial"])),a.push(u)}const h=this.distances.length;for(let u=0;u<h;++u){const A=this.distances[u],f=this.positions[u+1],d=Yf(`长度: ${oh(A)}`,f,e,i);d.dispose(p.track([d,"show"],[this,"show"])),d.dispose(p.track([d,"shadowDom"],[this,"shadowDom"])),d.dispose(p.track([d,"cssAllInitial"],[this,"cssAllInitial"])),this.ad(d.pickedEvent.don(g=>{Oi(g)===0&&this.pickedEvent.emit(g)})),a.push(d)}};c(),this.dispose(this.distancesChanged.disposableOn(()=>Q.inOrderRunning(c)))}}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get distances(){return this._distances.value}get distancesChanged(){return this._distances.changed}}L(As,"defaults",{positions:[]}),(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1,strokeGround:!1})})(As||(As={})),p.extendClassProps(As.prototype,As.createDefaultProps);const Su=class Su extends an{constructor(e,i){super(e,i);L(this,"_geoPolyline");if(this._geoPolyline=this.disposeVar(new Je(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._geoPolyline;this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"width"],[e,"strokeWidth"])),this.dispose(p.track([r,"color"],[e,"strokeColor"])),this.dispose(p.track([r,"ground"],[e,"strokeGround"]));{const s=()=>{r.show=e.show&&e.stroked};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}}get geoPolyline(){return this._geoPolyline}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoPolyline:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoPolyline:s}=this;return r.actived?o.flyInParam?(super.flyIn(e,i),!0):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Su,"type",Su.register("ESCesiumViewer",Q.ESGeoLineString.type,Su));let fs=Su;const Eu=class Eu extends fs{constructor(e,i){super(e,i);L(this,"_czmDistanceMeasurement");if(this._czmDistanceMeasurement=this.disposeVar(new As(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const{czmDistanceMeasurement:r}=this;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.bind([r,"strokeGround"],[e,"strokeGround"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):(r.hasDash=!1,r.hasArrow=!1);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Oi(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmDistanceMeasurement(){return this._czmDistanceMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmDistanceMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmDistanceMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Eu,"type",Eu.register("ESCesiumViewer",Q.ESDistanceMeasurement.type,Eu));let Fm=Eu;class ds extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_id",this.disposeVar(p.react(p.createGuid())));i&&(this.id=i)}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}}(t=>{t.createDefaultProps=()=>({enabled:!0,showHelper:!0,allowPicking:!1,positions:p.reactPositions(void 0),reverse:!1,edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2})})(ds||(ds={})),p.extendClassProps(ds.prototype,ds.createDefaultProps);class WU extends p.Destroyable{constructor(n,e){super(),this._czmESExcavate=n,this._eS3DTileset=e;for(let i=0;i<this._eS3DTileset.excavateId.length;i++){const o=this._eS3DTileset.excavateId[i];Q.ESSceneObject.getSceneObjById(o)||this._eS3DTileset.excavateId.splice(i,1)}this._eS3DTileset.excavateId=[...this._eS3DTileset.excavateId,this._czmESExcavate.czmPolygonClipping.id],this.dispose(()=>{this._eS3DTileset.excavateId=[...this._eS3DTileset.excavateId.filter(i=>i!==this._czmESExcavate.czmPolygonClipping.id)]})}}class qU extends p.Destroyable{constructor(n){if(super(),this._czmESExcavate=n,!!this._czmESExcavate.viewer){for(let e=0;e<this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.length;e++){const i=this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId[e];Q.ESSceneObject.getSceneObjById(i)||this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.splice(e,1)}this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId=[...this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId,this._czmESExcavate.czmPolygonClipping.id],this.dispose(()=>{this._czmESExcavate.viewer&&(this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId=[...this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.filter(e=>e!==this._czmESExcavate.czmPolygonClipping.id)])})}}}const Pu=class Pu extends Tn{constructor(e,i){super(e,i);L(this,"_czmPolygonClipping");L(this,"_tilesSceneObjectWithId");this._czmPolygonClipping=this.ad(new ds(i,e.id)),this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId);const o=this.ad(p.react(this.sceneObject.targetID));if(this.ad(e.targetIDChanged.don(()=>{const a=Q.ESSceneObject.getSceneObject(e.targetID);o.value=a?a.getMainClass().id:o.value})),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],o)),this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged)),!i.viewer)return;const s=this._czmPolygonClipping;s.showHelper=!1,this.dispose(p.bind([s,"positions"],[e,"points"])),this.dispose(p.track([s,"allowPicking"],[e,"allowPicking"]));{const a=()=>{s.reverse=e.mode!=="in"};a(),this.dispose(e.modeChanged.disposableOn(a))}Q.registerCreatedEventUpdate(this,e,()=>{const a=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged));this.disposeVar(new p.ObjResettingWithEvent(a,()=>{const{sceneObject:l,id:c}=this.tilesSceneObjectWithId;if(this.sceneObject.show)return c===""?new qU(this):!l||!(l instanceof Q.ES3DTileset)?void 0:new WU(this,l)}))})}get czmPolygonClipping(){return this._czmPolygonClipping}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmPolygonClipping:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Pu,"type",Pu.register("ESCesiumViewer",Q.ESExcavate.type,Pu));let Bm=Pu;const Tu=class Tu extends Ge{constructor(e,i){super(e,i);L(this,"_czmFireParticleSystem");if(this._czmFireParticleSystem=this.disposeVar(new hi(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmFireParticleSystem;r.endColor=[1,1,0,.4],r.startColor=[1,0,0,.5],r.particleLife=1,r.emissionRate=30,r.lifetime=1,r.imageSize=[1,1],r.emitter={type:"CircleEmitter",radius:.1},r.sizeInMeters=!0;{const s=()=>{r.startScale=10*(e.scale[0]>0?e.scale[0]:1),r.endScale=5*(e.scale[0]>0?e.scale[0]:1),r.minimumSpeed=10*(e.scale[0]>0?e.scale[0]:1),r.maximumSpeed=15*(e.scale[0]>0?e.scale[0]:1)};s(),this.ad(e.scaleChanged.don(s))}this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.track([r,"translation"],[e,"translation"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"image"],[e,"image"]))}get czmFireParticleSystem(){return this._czmFireParticleSystem}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmFireParticleSystem:s}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);{const a=s.position;return Be(r.viewer,a,100,Mn,e),o.flyOverEvent.emit(i,"over",r),!0}}};L(Tu,"type",Tu.register("ESCesiumViewer",Q.ESFireParticleSystem.type,Tu));let Mm=Tu;class ps extends p.Destroyable{constructor(e,i){super();L(this,"_geoPath");L(this,"_geoPolyline");L(this,"_geoCanvasPointPoi");L(this,"_player");L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_currentDistance",this.disposeVar(p.react(0)));L(this,"_ratio",this.disposeVar(Q.PlayerProperty.createPlayingRatio([this,"currentTime"],[this,"duration"])));this._geoPath=this.disposeVar(new Q.ESPathImpl),this._geoPolyline=this.disposeVar(new Je(e,i)),this._geoCanvasPointPoi=this.disposeVar(new br(e,i)),this._player=this.disposeVar(new Q.Player),this.dispose(p.bind([this._geoPolyline,"positions"],[this,"positions"])),this.dispose(p.track([this._geoPolyline,"width"],[this,"width"])),this.dispose(p.track([this._geoPolyline,"ground"],[this,"ground"])),this.dispose(p.track([this._geoPolyline,"color"],[this,"color"])),this.dispose(p.track([this._geoPolyline,"hasDash"],[this,"hasDash"])),this.dispose(p.track([this._geoPolyline,"gapColor"],[this,"gapColor"])),this.dispose(p.track([this._geoPolyline,"dashLength"],[this,"dashLength"])),this.dispose(p.track([this._geoPolyline,"dashPattern"],[this,"dashPattern"])),this.dispose(p.track([this._geoPolyline,"hasArrow"],[this,"hasArrow"])),this.dispose(p.track([this._geoPolyline,"depthTest"],[this,"depthTest"])),this.dispose(p.track([this._geoPolyline,"arcType"],[this,"arcType"])),this.dispose(p.track([this._geoPolyline,"show"],[this,"show"])),this.dispose(p.track([this._geoPolyline,"show"],[this,"polylineShow"])),this.dispose(p.track([this._geoPolyline,"allowPicking"],[this,"allowPicking"])),this.dispose(p.track([this._geoPath,"currentTime"],[this,"currentDistance"])),this.dispose(p.track([this._geoPath,"leadTime"],[this,"leadTime"])),this.dispose(p.track([this._geoPath,"trailTime"],[this,"trailTime"])),this.dispose(p.track([this._geoPath,"show"],[this,"show"])),this.dispose(p.track([this._geoPath,"currentPoiShow"],[this,"currentPoiShow"]));{const o=()=>{this._geoCanvasPointPoi.show=(this.show??!0)&&(this.currentPoiShow??!0)};o(),this.dispose(this.showChanged.disposableOn(o)),this.dispose(this.currentPoiShowChanged.disposableOn(o))}this.dispose(p.track([this._geoCanvasPointPoi,"position"],[this,"currentPosition"]));{const o=()=>{if(this.positions){const s=this.granularity*Math.PI/180,a=Lf(this.positions,this.arcType??"GEODESIC",s);if(a){this._geoPath.timePosRots=a.timePosRots,this.rotationRadius.some(l=>l>0)?(this._geoPath.addAroundPoints(this.rotationRadius,!0),this._geoPath.computeRotIfUndefinedUsingLerp(!0),this._geoPath.rotLerpMode="Lerp"):(this._geoPath.computeRotIfUndefinedUsingPrevLine(!0),this._geoPath.rotLerpMode=this.rotLerpMode);return}}this._geoPath.timePosRots=[]};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.granularityChanged,this.rotationRadiusChanged,this.rotLerpModeChanged));this.dispose(r.disposableOn(o))}{const o=()=>{if((this._player.duration??3e3)<=0){this.currentDistance=0;return}const r=this.totalDistance*((this._player.currentTime??0)/(this._player.duration??3e3));Math.abs(r-this.currentDistance)>.01&&(this.currentDistance=r)};o(),this.dispose(this._player.currentTimeChanged.disposableOn(o))}{const o=()=>{if(this.totalDistance<=0){this._player.currentTime=0;return}const r=this.currentDistance/this.totalDistance*(this.duration??3e3);Math.abs(r-(this._player.currentTime??0))>.01&&(this._player.currentTime=r)};o(),this.dispose(this.currentDistanceChanged.disposableOn(o))}this.dispose(p.bind([this._player,"loop"],[this,"loop"])),this.dispose(p.bind([this._player,"currentTime"],[this,"currentTime"])),this.dispose(p.bind([this._player,"duration"],[this,"duration"])),this.dispose(p.bind([this._player,"playing"],[this,"playing"])),this.dispose(p.bind([this._player,"speed"],[this,"speed"])),this.dispose(this._flyToEvent.disposableOn(o=>{this._geoPolyline.flyTo(o)}))}get geoPath(){return this._geoPath}get geoPolyline(){return this._geoPolyline}get geoCanvasPointPoi(){return this._geoCanvasPointPoi}get player(){return this._player}get currentInfo(){return this._geoPath.currentInfo}get currentInfoChanged(){return this._geoPath.currentInfoChanged}get currentIndex(){return this._geoPath.currentIndex}get currentIndexChanged(){return this._geoPath.currentIndexChanged}get currentPosition(){return this._geoPath.currentPosition}get currentPositionChanged(){return this._geoPath.currentPositionChanged}get currentRotation(){return this._geoPath.currentRotation}get currentRotationChanged(){return this._geoPath.currentRotationChanged}get accumDistances(){return this._geoPath.accumDistances}get accumDistancesChanged(){return this._geoPath.accumDistancesChanged}get totalDistance(){return this._geoPath.totalDistance}get totalDistanceChanged(){return this._geoPath.totalDistanceChanged}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}subPath(e,i){const o=this._geoPath.subPath(e,i);if(o)return o.map(r=>r[1])}get currentDistance(){return this._currentDistance.value}set currentDistance(e){this._currentDistance.value=e}get currentDistanceChanged(){return this._currentDistance.changed}get ratio(){return this._ratio.value}set ratio(e){this._ratio.value=e}get ratioChanged(){return this._ratio.changed}get timePosRots(){return this.geoPath.timePosRots}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,currentPoiShow:!0,polylineShow:!0,positions:p.reactPositions(void 0),width:1,ground:!1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",granularity:1,loop:!1,currentTime:0,duration:3e3,speed:1,playing:!1,depthTest:!1,leadTime:0,trailTime:0,rotationRadius:[0],rotLerpMode:"Next"})})(ps||(ps={})),p.extendClassProps(ps.prototype,ps.createDefaultProps);class Ql extends p.Destroyable{constructor(e,i){super();L(this,"_geoPolylinePath");L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_currentDistance",this.disposeVar(p.react(0)));this._geoPolylinePath=this.disposeVar(new ps(e,i)),this._geoPolylinePath.rotLerpMode="Lerp",this.dispose(p.bind([this._geoPolylinePath,"show"],[this,"show"])),this.dispose(p.bind([this._geoPolylinePath,"currentPoiShow"],[this,"currentPoiShow"])),this.dispose(p.bind([this._geoPolylinePath,"polylineShow"],[this,"polylineShow"])),this.dispose(p.bind([this._geoPolylinePath,"width"],[this,"width"])),this.dispose(p.bind([this._geoPolylinePath,"ground"],[this,"ground"])),this.dispose(p.bind([this._geoPolylinePath,"color"],[this,"color"])),this.dispose(p.bind([this._geoPolylinePath,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([this._geoPolylinePath,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([this._geoPolylinePath,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([this._geoPolylinePath,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([this._geoPolylinePath,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([this._geoPolylinePath,"arcType"],[this,"arcType"])),this.dispose(p.bind([this._geoPolylinePath,"currentDistance"],[this,"currentDistance"])),this.dispose(p.bind([this._geoPolylinePath,"loop"],[this,"loop"])),this.dispose(p.bind([this._geoPolylinePath,"currentTime"],[this,"currentTime"])),this.dispose(p.bind([this._geoPolylinePath,"duration"],[this,"duration"])),this.dispose(p.bind([this._geoPolylinePath,"playing"],[this,"playing"])),this.dispose(p.bind([this._geoPolylinePath,"speed"],[this,"speed"])),this.dispose(p.bind([this._geoPolylinePath,"depthTest"],[this,"depthTest"])),this.dispose(p.track([this._geoPolylinePath,"leadTime"],[this,"leadTime"])),this.dispose(p.track([this._geoPolylinePath,"trailTime"],[this,"trailTime"])),this.dispose(p.track([this._geoPolylinePath,"allowPicking"],[this,"allowPicking"]));const o=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.resolutionChanged,this.sharpnessChanged)),r=()=>{try{if(this.positions&&this.positions.length>=2){const s=Jf(this.positions,this.resolution,this.sharpness);this._geoPolylinePath.positions=s}else this._geoPolylinePath.positions=void 0}catch(s){console.error(s),this._geoPolylinePath.positions=void 0}};r(),this.dispose(o.disposableOn(r)),this.dispose(this._flyToEvent.disposableOn(s=>{this._geoPolylinePath.flyTo(s)}))}get geoPolylinePath(){return this._geoPolylinePath}get geoPath(){return this._geoPolylinePath.geoPath}get ratio(){return this._geoPolylinePath.ratio}set ratio(e){this._geoPolylinePath.ratio=e}get ratioChanged(){return this._geoPolylinePath.ratioChanged}get player(){return this._geoPolylinePath.player}get currentInfo(){return this._geoPolylinePath.currentInfo}get currentInfoChanged(){return this._geoPolylinePath.currentInfoChanged}get currentIndex(){return this._geoPolylinePath.currentIndex}get currentIndexChanged(){return this._geoPolylinePath.currentIndexChanged}get currentPosition(){return this._geoPolylinePath.currentPosition}get currentPositionChanged(){return this._geoPolylinePath.currentPositionChanged}get currentRotation(){return this._geoPolylinePath.currentRotation}get currentRotationChanged(){return this._geoPolylinePath.currentRotationChanged}get accumDistances(){return this._geoPolylinePath.accumDistances}get accumDistancesChanged(){return this._geoPolylinePath.accumDistances}get totalDistance(){return this._geoPolylinePath.totalDistance}get totalDistanceChanged(){return this._geoPolylinePath.totalDistanceChanged}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get currentDistance(){return this._currentDistance.value}set currentDistance(e){this._currentDistance.value=e}get currentDistanceChanged(){return this._currentDistance.changed}get timePosRots(){return this.geoPath.timePosRots}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,currentPoiShow:!0,polylineShow:!0,positions:p.reactPositions(void 0),width:1,ground:!1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",loop:!1,currentTime:0,duration:3e3,speed:1,playing:!1,resolution:1e3,sharpness:.85,depthTest:!1,leadTime:0,trailTime:0})})(Ql||(Ql={})),p.extendClassProps(Ql.prototype,Ql.createDefaultProps);const ct=class ct extends Q.ESVisualObject{constructor(e){super(e);L(this,"_pickFeaturesEvent",this.dv(new p.Event));this.ad(p.bind([this,"splitDirection"],[this,"czmSplitDirection"]))}get typeName(){return"ESMVTLayer"}get defaultProps(){return ct.createDefaultProps()}get pickFeaturesEvent(){return this._pickFeaturesEvent}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Q.StringProperty("令牌","影像服务访问令牌",!1,!1,[this,"accessToken"],ct.defaults.accessToken),new Q.Number4Property("矩形范围","西南东北",!0,!1,[this,"rectangle"],ct.defaults.rectangle),new Q.JsonProperty("服务地址","mapbox样式对象或url资源",!1,!1,[this,"url"],ct.defaults.url),new Q.JsonProperty("样式配置","样式配置,用于自定义或替换样式",!1,!1,[this,"style"],ct.defaults.style),new Q.NumberProperty("层级序号","层级序号",!1,!1,[this,"zIndex"],ct.defaults.zIndex),new Q.EnumProperty("瓦片大小","瓦片大小",!1,!1,[this,"tileSize"],ct.defaults.tileSizes),new Q.NumberSliderProperty("最大层级","最大层级",!1,!1,[this,"maximumLevel"],1,[1,24],ct.defaults.maximumLevel),new Q.NumberSliderProperty("最小层级","最小层级",!1,!1,[this,"minimumLevel"],1,[0,24],ct.defaults.minimumLevel),new Q.EnumProperty("影像类型","影像类型",!1,!1,[this,"scheme"],[["tms","tms"],["xyz","xyz"]],ct.defaults.scheme)]}}getProperties(e){return[...super.getProperties(e),new Q.GroupProperty("通用","通用",[new Q.Number4Property("矩形范围","西南东北",!0,!1,[this,"rectangle"],ct.defaults.rectangle),new Q.JsonProperty("服务地址","mapbox样式对象或url资源",!1,!1,[this,"url"],ct.defaults.url),new Q.JsonProperty("样式配置","样式配置,用于自定义或替换样式",!1,!1,[this,"style"],ct.defaults.style),new Q.NumberProperty("层级","影像显示层级",!1,!1,[this,"zIndex"],ct.defaults.zIndex),new Q.StringProperty("令牌","影像服务访问令牌",!1,!1,[this,"accessToken"],ct.defaults.accessToken),new Q.EnumProperty("瓦片大小","瓦片大小",!1,!1,[this,"tileSize"],ct.defaults.tileSizes),new Q.NumberSliderProperty("最大层级","最大层级",!1,!1,[this,"maximumLevel"],1,[1,24],ct.defaults.maximumLevel),new Q.NumberSliderProperty("最小层级","最小层级",!1,!1,[this,"minimumLevel"],1,[0,24],ct.defaults.minimumLevel),new Q.EnumProperty("影像类型","影像类型",!1,!1,[this,"scheme"],[["tms","tms"],["xyz","xyz"]],ct.defaults.scheme),new Q.EnumProperty("splitDirection","The ImagerySplitDirection split to apply to this layer.",!1,!1,[this,"splitDirection"],ct.defaults.splitDirectionEnum)]),new Q.GroupProperty("czm","czm",[new Q.NumberProperty("透明度","透明度,The alpha blending value of this layer, from 0.0 to 1.0.",!1,!1,[this,"czmAlpha"]),new Q.NumberProperty("亮度","亮度,The brightness of this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmBrightness"]),new Q.NumberProperty("对比度","对比度,The contrast of this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmContrast"]),new Q.NumberProperty("色相","色相,The hue of this layer. 0.0 uses the unmodified imagery color. ",!1,!1,[this,"czmHue"]),new Q.NumberProperty("饱和度","饱和度,The saturation of this layer. 1.0 uses the unmodified imagery color. ",!1,!1,[this,"czmSaturation"]),new Q.NumberProperty("伽马值","伽马,The gamma correction to apply to this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmGamma"])])]}};L(ct,"type",ct.register("ESMVTLayer",ct,{chsName:"矢量瓦片图层",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于加载矢量瓦片图层。"})),L(ct,"defaults",{...Q.ESVisualObject.defaults,url:"",zIndex:0,accessToken:"",tileSizes:[["256",256],["512",512],["1024",1024]],tileSize:256,maximumLevel:18,minimumLevel:0,rectangle:[-180,-90,180,90],style:[],scheme:"tms",splitDirectionEnum:[["LEFT","LEFT"],["NONE","NONE"],["RIGHT","RIGHT"]]});let Kr=ct;(t=>{t.createDefaultProps=()=>({...Q.ESVisualObject.createDefaultProps(),rectangle:p.reactJsonWithUndefined(void 0),url:p.reactJson(""),zIndex:0,accessToken:"",tileSize:256,maximumLevel:18,minimumLevel:0,style:p.reactArrayWithUndefined(void 0),scheme:p.react(void 0),opacity:1,splitDirection:"NONE",czmSplitDirection:"NONE",czmAlpha:1,czmBrightness:1,czmContrast:1,czmHue:0,czmSaturation:1,czmGamma:1})})(Kr||(Kr={})),p.extendClassProps(Kr.prototype,Kr.createDefaultProps);const KU=t=>{const n=[{maxAlt:25e7,level:0},{maxAlt:25e6,level:1},{maxAlt:9e6,level:2},{maxAlt:7e6,level:3},{maxAlt:44e5,level:4},{maxAlt:2e6,level:5},{maxAlt:1e6,level:6},{maxAlt:493977,level:7},{maxAlt:218047,level:8},{maxAlt:124961,level:9},{maxAlt:56110,level:10},{maxAlt:4e4,level:11},{maxAlt:13222,level:12},{maxAlt:7e3,level:13},{maxAlt:4e3,level:14},{maxAlt:2500,level:15},{maxAlt:1500,level:16},{maxAlt:600,level:17},{maxAlt:250,level:18},{maxAlt:150,level:19},{maxAlt:50,level:20}];for(const{maxAlt:e,level:i}of n)if(t>=e)return i;return 20},ZU=async(t,n,e)=>(await fetch(`https://tileser.giiiis.com/xyzinfo/${e}/${t}/${n}`)).json(),XU=async t=>{var c;const n=(c=t.getCurrentCameraInfo())==null?void 0:c.position;if(!n)return;const e=n[0],i=n[1],o=n[2],r=KU(o);let s=Math.floor((e+180)/360*Math.pow(2,r+1)),a=Math.floor((90-i)/180*Math.pow(2,r));return await ZU(s,a,r)};class $U extends p.Destroyable{constructor(n,e,i){super();const o=async()=>{const s=await XU(n);e.datesEvent.emit(s,n)};o();let r;r=setInterval(()=>{o()},3e3),this.d(()=>r&&clearInterval(r));{const s=()=>{const a=e.currentDate?e.currentDate:0;i.url=`https://tileser.giiiis.com/timetile/tms/${a}/tilemapresource.xml`};s(),this.d(e.currentDateChanged.don(s))}}}const ra=class ra extends Q.ESVisualObject{constructor(e){super(e);L(this,"_esImageryLayer",this.dv(new Q.ESImageryLayer));L(this,"_datesEvent",this.dv(new p.Event));const i=this._esImageryLayer;this.d(this.components.disposableAdd(i)),i.zIndex=1,i.minimumLevel=1,i.maximumLevel=18,this.d(p.track([i,"show"],[this,"show"])),this.d(p.track([i,"zIndex"],[this,"zIndex"])),this.d(p.track([i,"rectangle"],[this,"rectangle"])),this.d(p.bind([i,"flyInParam"],[this,"flyInParam"])),this.d(p.bind([i,"flyToParam"],[this,"flyToParam"])),this.registerAttachedObjectForContainer(o=>new $U(o,this,i)),this.d(this.flyInEvent.don(o=>{i.flyIn(o)})),this.d(this.flyToEvent.don(o=>{i.flyTo(o)})),this.d(this.calcFlyToParamEvent.don(()=>{i.calcFlyToParam()})),this.d(this.calcFlyInParamEvent.don(()=>{i.calcFlyInParam()}))}get typeName(){return"ESGeHistoryImagery"}get defaultProps(){return ra.createDefaultProps()}get esImageryLayer(){return this._esImageryLayer}get datesEvent(){return this._datesEvent}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Q.StringProperty("时间","currentDate",!1,!1,[this,"currentDate"],"0"),new Q.NumberProperty("层级","层级",!1,!1,[this,"zIndex"],0),new Q.Number4Property("矩形范围","西南东北",!1,!1,[this,"rectangle"],[-180,-90,180,90])]}}getProperties(e){return[...super.getProperties(e),new Q.GroupProperty("通用","通用",[new Q.StringProperty("currentDate","currentDate",!1,!1,[this,"currentDate"]),new Q.NumberProperty("zIndex","层级",!1,!1,[this,"zIndex"]),new Q.Number4Property("矩形范围","西南东北",!1,!1,[this,"rectangle"])])]}};L(ra,"type",ra.register("ESGeHistoryImagery",ra,{chsName:"谷歌历史影像",tags:["ESObjects","_ES_Impl_UE"],description:"ESGeHistoryImagery"})),L(ra,"defaults",{...Q.ESVisualObject.defaults});let Zr=ra;(t=>{t.createDefaultProps=()=>({...Q.ESVisualObject.createDefaultProps(),currentDate:"",zIndex:0,rectangle:p.reactArray([-180,-90,180,90])})})(Zr||(Zr={})),p.extendClassProps(Zr.prototype,Zr.createDefaultProps);const YU=`<?xml version="1.0" encoding="utf-8" ?>
|
|
2927
|
+
`,r.uniformMap={u_gradientMap:{type:"texture",id:"5d45a4a4-4f5d-4424-aea5-181de75bd13b"},u_stripMinMaxValue:[0,1],u_ratio:0};let a=this.disposeVar(p.react(void 0));{const l=this.disposeVar(p.createProcessingFromAsyncFunc(async h=>{a.value=void 0;const u=e.url??Q.ESDataMesh.defaults.url;if(!u)return;await h.promise(p.sleep(200));const A=(e.maxTime??Q.ESDataMesh.defaults.maxTime)|0;a.value=await h.promise(NU(Q.ESSceneObject.context.getStrFromEnv(typeof u=="string"?u:u.url),A+1))}));l.start();const c=this.disposeVar(p.createNextAnimateFrameEvent(e.urlChanged,e.maxTimeChanged));this.dispose(c.disposableOn(()=>l.restart()))}{class l{constructor(u){this._buffer=u}[Symbol.iterator](){return GU(this._buffer)}}const c=()=>{if(!a.value)return;const{vertexBuffer:h,propBuffers:u,indexBuffer:A}=a.value,{minPos:f,maxPos:d}=Q.getMinMaxCorner(new l(h));r.setLocalAxisedBoundingBox(f,d);const g=(e.maxTime??Q.ESDataMesh.defaults.maxTime)|0;let v=(e.currentTime??Q.ESDataMesh.defaults.currentTime)/g;v=v<0?0:v>1?1:v;const y=v*g;let m=v*g|0,w=y-m;if(m>=g&&(m=g-1,w=1),!Number.isFinite(w)){console.error("!Number.isFinite(rr)");debugger;return}if(r.indexTypedArray=A,!u[m]||!u[m+1]){console.error("!propBuffers[i] || !propBuffers[i + 1]");debugger}r.attributes={a_position:{typedArray:h,componentsPerAttribute:3},a_prop:{typedArray:u[m],componentsPerAttribute:3},a_prop2:{typedArray:u[m+1],componentsPerAttribute:3}},r.uniformMap={u_gradientMap:{type:"texture",id:`${s.id}`},u_stripMinMaxValue:[e.minPropValue??Q.ESDataMesh.defaults.minPropValue,e.maxPropValue??Q.ESDataMesh.defaults.maxPropValue],u_ratio:w}};c(),this.dispose(e.maxTimeChanged.disposableOn(c)),this.dispose(e.currentTimeChanged.disposableOn(c)),this.dispose(e.minPropValueChanged.disposableOn(c)),this.dispose(e.maxPropValueChanged.disposableOn(c)),this.dispose(a.changed.disposableOn(c))}}get czmCustomPrimitive(){return this._czmCustomPrimitive}get czmTexture(){return this._czmTexture}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmCustomPrimitive:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(dn(r,o,i,e,s,!0),!0):!1}};L(Cu,"type",Cu.register("ESCesiumViewer",Q.ESDataMesh.type,Cu));let Im=Cu;const ia=class ia extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_heading",this.disposeVar(p.react(0)));L(this,"_textFunc",this.disposeVar(p.react(void 0)));const o=this;{const a=()=>{if(this.positions&&this.positions.length>=2){let c=0;this.arcType===void 0||this.arcType==="GEODESIC"?c=Q.geoHeading(this.positions[0],this.positions[1]):this.arcType==="RHUMB"?c=Q.geoRhumbHeading(this.positions[0],this.positions[1]):this.arcType==="NONE"?c=Q.geoHeading(this.positions[0],this.positions[1]):console.warn(`未知的arcType: ${this.arcType},导致距离无法计算!`),this._heading.value=this.angleMode==="-180~180"?Q.clampN180_180(c):Q.clamp0_360(c)}};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.angleModeChanged));this.dispose(l.disposableOn(a))}const r=this.disposeVar(new Je(e,i));r.loop=!1,this.dispose(p.track([r,"allowPicking"],[o,"allowPicking"])),this.dispose(p.bind([r,"arcType"],[o,"arcType"])),this.dispose(p.bind([r,"color"],[o,"color"])),this.dispose(p.bind([r,"dashLength"],[o,"dashLength"])),this.dispose(p.bind([r,"dashPattern"],[o,"dashPattern"])),this.dispose(p.bind([r,"gapColor"],[o,"gapColor"])),this.dispose(p.bind([r,"hasArrow"],[o,"hasArrow"])),this.dispose(p.bind([r,"hasDash"],[o,"hasDash"])),this.dispose(p.bind([r,"positions"],[o,"positions"])),this.dispose(p.bind([r,"show"],[o,"show"])),this.dispose(p.bind([r,"width"],[o,"width"])),this.dispose(p.bind([r,"depthTest"],[o,"depthTest"])),this.dispose(p.bind([r,"ground"],[o,"strokeGround"])),this.dispose(o.flyToEvent.disposableOn(a=>{e.actived&&r.flyTo(a)}));const s=this.disposeVar(new wt(e,i));this.dispose(p.bind([s,"shadowDom"],[o,"shadowDom"])),this.dispose(p.bind([s,"cssAllInitial"],[o,"cssAllInitial"])),this.dispose(p.bind([s,"show"],[o,"show"]));{const a=()=>{o.positions&&o.positions.length>=2?s.position=o.positions[1]:s.position=void 0};a(),this.dispose(o.positionsChanged.disposableOn(a))}{const a=()=>{const{heading:c}=o,h=(o.textFunc??ia.defaultTextFunc_度格式)(c);s.innerHTML=_o(`方向: ${h}`,24)};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(o.headingChanged,o.textFuncChanged));this.dispose(l.disposableOn(a))}this.ad(s.pickedEvent.don(a=>{Oi(a)===0&&this.pickedEvent.emit(a)}))}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get heading(){return this._heading.value}get headingChanged(){return this._heading.changed}get textFunc(){return this._textFunc.value}set textFunc(e){this._textFunc.value=e}get textFuncChanged(){return this._textFunc.changed}};L(ia,"defaultTextFunc_度格式",e=>`${e.toFixed(5)}°`),L(ia,"defaultTextFunc_度分格式",e=>`${Ks(e,!0)}`),L(ia,"defaultTextFunc_度分秒格式",e=>`${Ks(e,!1)}`),L(ia,"defaults",{positions:[]});let Wo=ia;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:8,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!0,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1,angleMode:"-180~180",strokeGround:!1})})(Wo||(Wo={})),p.extendClassProps(Wo.prototype,Wo.createDefaultProps);const xu=class xu extends an{constructor(e,i){super(e,i);L(this,"_czmDirectionMeasurement");if(this._czmDirectionMeasurement=this.disposeVar(new Wo(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmDirectionMeasurement;r.angleMode="0~360",this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.bind([r,"strokeGround"],[e,"strokeGround"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):c==="normal"?(r.hasDash=!1,r.hasArrow=!1):(r.hasDash=!1,r.hasArrow=!0);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Oi(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmDirectionMeasurement(){return this._czmDirectionMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmDirectionMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmDirectionMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(xu,"type",xu.register("ESCesiumViewer",Q.ESDirectionMeasurement.type,xu));let km=xu;class As extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_distances",this.disposeVar(p.reactArray([])));const o=async()=>{this.strokeGround&&e.viewer?this._distances.value=await x0(e.viewer,this.positions??[]):this._distances.value=Q.getDistancesFromPositions(this.positions??[],this.arcType)};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.strokeGroundChanged));this.dispose(r.disposableOn(o));const s=this.disposeVar(new Je(e,i));s.loop=!1,this.dispose(p.track([s,"allowPicking"],[this,"allowPicking"])),this.dispose(p.bind([s,"arcType"],[this,"arcType"])),this.dispose(p.bind([s,"color"],[this,"color"])),this.dispose(p.bind([s,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([s,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([s,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([s,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([s,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([s,"positions"],[this,"positions"])),this.dispose(p.bind([s,"show"],[this,"show"])),this.dispose(p.bind([s,"width"],[this,"width"])),this.dispose(p.bind([s,"depthTest"],[this,"depthTest"])),this.dispose(p.bind([s,"ground"],[this,"strokeGround"])),this.dispose(this.flyToEvent.disposableOn(a=>{e.actived&&s.flyTo(a)}));{const a=[],l=()=>{for(let h of a)h.destroy();a.length=0};this.dispose(l);const c=()=>{if(l(),!this.positions)return;if(this.positions.length>0&&this.distances.length>0){const u=Yf("起点",this.positions[0],e,i);u.dispose(p.track([u,"show"],[this,"show"])),u.dispose(p.track([u,"shadowDom"],[this,"shadowDom"])),u.dispose(p.track([u,"cssAllInitial"],[this,"cssAllInitial"])),a.push(u)}const h=this.distances.length;for(let u=0;u<h;++u){const A=this.distances[u],f=this.positions[u+1],d=Yf(`长度: ${oh(A)}`,f,e,i);d.dispose(p.track([d,"show"],[this,"show"])),d.dispose(p.track([d,"shadowDom"],[this,"shadowDom"])),d.dispose(p.track([d,"cssAllInitial"],[this,"cssAllInitial"])),this.ad(d.pickedEvent.don(g=>{Oi(g)===0&&this.pickedEvent.emit(g)})),a.push(d)}};c(),this.dispose(this.distancesChanged.disposableOn(()=>Q.inOrderRunning(c)))}}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get distances(){return this._distances.value}get distancesChanged(){return this._distances.changed}}L(As,"defaults",{positions:[]}),(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1,strokeGround:!1})})(As||(As={})),p.extendClassProps(As.prototype,As.createDefaultProps);const Su=class Su extends an{constructor(e,i){super(e,i);L(this,"_geoPolyline");if(this._geoPolyline=this.disposeVar(new Je(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._geoPolyline;this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"width"],[e,"strokeWidth"])),this.dispose(p.track([r,"color"],[e,"strokeColor"])),this.dispose(p.track([r,"ground"],[e,"strokeGround"]));{const s=()=>{r.show=e.show&&e.stroked};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}}get geoPolyline(){return this._geoPolyline}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoPolyline:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoPolyline:s}=this;return r.actived?o.flyInParam?(super.flyIn(e,i),!0):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Su,"type",Su.register("ESCesiumViewer",Q.ESGeoLineString.type,Su));let fs=Su;const Eu=class Eu extends fs{constructor(e,i){super(e,i);L(this,"_czmDistanceMeasurement");if(this._czmDistanceMeasurement=this.disposeVar(new As(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const{czmDistanceMeasurement:r}=this;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.bind([r,"strokeGround"],[e,"strokeGround"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):(r.hasDash=!1,r.hasArrow=!1);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Oi(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmDistanceMeasurement(){return this._czmDistanceMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmDistanceMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmDistanceMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Eu,"type",Eu.register("ESCesiumViewer",Q.ESDistanceMeasurement.type,Eu));let Fm=Eu;class ds extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_id",this.disposeVar(p.react(p.createGuid())));i&&(this.id=i)}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}}(t=>{t.createDefaultProps=()=>({enabled:!0,showHelper:!0,allowPicking:!1,positions:p.reactPositions(void 0),reverse:!1,edgeColor:p.reactArray([1,1,1,1]),edgeWidth:2})})(ds||(ds={})),p.extendClassProps(ds.prototype,ds.createDefaultProps);class WU extends p.Destroyable{constructor(n,e){super(),this._czmESExcavate=n,this._eS3DTileset=e;for(let i=0;i<this._eS3DTileset.excavateId.length;i++){const o=this._eS3DTileset.excavateId[i];Q.ESSceneObject.getSceneObjById(o)||this._eS3DTileset.excavateId.splice(i,1)}this._eS3DTileset.excavateId=[...this._eS3DTileset.excavateId,this._czmESExcavate.czmPolygonClipping.id],this.dispose(()=>{this._eS3DTileset.excavateId=[...this._eS3DTileset.excavateId.filter(i=>i!==this._czmESExcavate.czmPolygonClipping.id)]})}}class qU extends p.Destroyable{constructor(n){if(super(),this._czmESExcavate=n,!!this._czmESExcavate.viewer){for(let e=0;e<this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.length;e++){const i=this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId[e];Q.ESSceneObject.getSceneObjById(i)||this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.splice(e,1)}this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId=[...this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId,this._czmESExcavate.czmPolygonClipping.id],this.dispose(()=>{this._czmESExcavate.viewer&&(this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId=[...this._czmESExcavate.viewer.sceneGlobeClippingPolygonsId.filter(e=>e!==this._czmESExcavate.czmPolygonClipping.id)])})}}}const Pu=class Pu extends Tn{constructor(e,i){super(e,i);L(this,"_czmPolygonClipping");L(this,"_tilesSceneObjectWithId");this._czmPolygonClipping=this.ad(new ds(i,e.id)),this._tilesSceneObjectWithId=this.disposeVar(new Q.ESSceneObjectWithId);const o=this.ad(p.react(this.sceneObject.targetID));if(this.ad(e.targetIDChanged.don(()=>{const a=Q.ESSceneObject.getSceneObject(e.targetID);o.value=a?a.getMainClass().id:o.value})),this.dispose(p.track([this._tilesSceneObjectWithId,"id"],o)),this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged)),!i.viewer)return;const s=this._czmPolygonClipping;s.showHelper=!1,this.dispose(p.bind([s,"positions"],[e,"points"])),this.dispose(p.track([s,"allowPicking"],[e,"allowPicking"]));{const a=()=>{s.reverse=e.mode!=="in"};a(),this.dispose(e.modeChanged.disposableOn(a))}Q.registerCreatedEventUpdate(this,e,()=>{const a=this.disposeVar(p.createNextAnimateFrameEvent(this.tilesSceneObjectWithId.sceneObjectChanged,this.sceneObject.showChanged));this.disposeVar(new p.ObjResettingWithEvent(a,()=>{const{sceneObject:l,id:c}=this.tilesSceneObjectWithId;if(this.sceneObject.show)return c===""?new qU(this):!l||!(l instanceof Q.ES3DTileset)?void 0:new WU(this,l)}))})}get czmPolygonClipping(){return this._czmPolygonClipping}get tilesSceneObjectWithId(){return this._tilesSceneObjectWithId}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmPolygonClipping:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Pu,"type",Pu.register("ESCesiumViewer",Q.ESExcavate.type,Pu));let Bm=Pu;const Tu=class Tu extends Ge{constructor(e,i){super(e,i);L(this,"_czmFireParticleSystem");if(this._czmFireParticleSystem=this.disposeVar(new hi(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmFireParticleSystem;r.endColor=[1,1,0,.4],r.startColor=[1,0,0,.5],r.particleLife=1,r.emissionRate=30,r.lifetime=1,r.imageSize=[1,1],r.emitter={type:"CircleEmitter",radius:.1},r.sizeInMeters=!0;{const s=()=>{r.startScale=10*(e.scale[0]>0?e.scale[0]:1),r.endScale=5*(e.scale[0]>0?e.scale[0]:1),r.minimumSpeed=10*(e.scale[0]>0?e.scale[0]:1),r.maximumSpeed=15*(e.scale[0]>0?e.scale[0]:1)};s(),this.ad(e.scaleChanged.don(s))}this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.track([r,"translation"],[e,"translation"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"image"],[e,"image"]))}get czmFireParticleSystem(){return this._czmFireParticleSystem}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmFireParticleSystem:s}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);{const a=s.position;return Be(r.viewer,a,100,Mn,e),o.flyOverEvent.emit(i,"over",r),!0}}};L(Tu,"type",Tu.register("ESCesiumViewer",Q.ESFireParticleSystem.type,Tu));let Mm=Tu;class ps extends p.Destroyable{constructor(e,i){super();L(this,"_geoPath");L(this,"_geoPolyline");L(this,"_geoCanvasPointPoi");L(this,"_player");L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_currentDistance",this.disposeVar(p.react(0)));L(this,"_ratio",this.disposeVar(Q.PlayerProperty.createPlayingRatio([this,"currentTime"],[this,"duration"])));this._geoPath=this.disposeVar(new Q.ESPathImpl),this._geoPolyline=this.disposeVar(new Je(e,i)),this._geoCanvasPointPoi=this.disposeVar(new br(e,i)),this._player=this.disposeVar(new Q.Player),this.dispose(p.bind([this._geoPolyline,"positions"],[this,"positions"])),this.dispose(p.track([this._geoPolyline,"width"],[this,"width"])),this.dispose(p.track([this._geoPolyline,"ground"],[this,"ground"])),this.dispose(p.track([this._geoPolyline,"color"],[this,"color"])),this.dispose(p.track([this._geoPolyline,"hasDash"],[this,"hasDash"])),this.dispose(p.track([this._geoPolyline,"gapColor"],[this,"gapColor"])),this.dispose(p.track([this._geoPolyline,"dashLength"],[this,"dashLength"])),this.dispose(p.track([this._geoPolyline,"dashPattern"],[this,"dashPattern"])),this.dispose(p.track([this._geoPolyline,"hasArrow"],[this,"hasArrow"])),this.dispose(p.track([this._geoPolyline,"depthTest"],[this,"depthTest"])),this.dispose(p.track([this._geoPolyline,"arcType"],[this,"arcType"])),this.dispose(p.track([this._geoPolyline,"show"],[this,"show"])),this.dispose(p.track([this._geoPolyline,"show"],[this,"polylineShow"])),this.dispose(p.track([this._geoPolyline,"allowPicking"],[this,"allowPicking"])),this.dispose(p.track([this._geoPath,"currentTime"],[this,"currentDistance"])),this.dispose(p.track([this._geoPath,"leadTime"],[this,"leadTime"])),this.dispose(p.track([this._geoPath,"trailTime"],[this,"trailTime"])),this.dispose(p.track([this._geoPath,"show"],[this,"show"])),this.dispose(p.track([this._geoPath,"currentPoiShow"],[this,"currentPoiShow"]));{const o=()=>{this._geoCanvasPointPoi.show=(this.show??!0)&&(this.currentPoiShow??!0)};o(),this.dispose(this.showChanged.disposableOn(o)),this.dispose(this.currentPoiShowChanged.disposableOn(o))}this.dispose(p.track([this._geoCanvasPointPoi,"position"],[this,"currentPosition"]));{const o=()=>{if(this.positions){const s=this.granularity*Math.PI/180,a=Lf(this.positions,this.arcType??"GEODESIC",s);if(a){this._geoPath.timePosRots=a.timePosRots,this.rotationRadius.some(l=>l>0)?(this._geoPath.addAroundPoints(this.rotationRadius,!0),this._geoPath.computeRotIfUndefinedUsingLerp(!0),this._geoPath.rotLerpMode="Lerp"):(this._geoPath.computeRotIfUndefinedUsingPrevLine(!0),this._geoPath.rotLerpMode=this.rotLerpMode);return}}this._geoPath.timePosRots=[]};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged,this.granularityChanged,this.rotationRadiusChanged,this.rotLerpModeChanged));this.dispose(r.disposableOn(o))}{const o=()=>{if((this._player.duration??3e3)<=0){this.currentDistance=0;return}const r=this.totalDistance*((this._player.currentTime??0)/(this._player.duration??3e3));Math.abs(r-this.currentDistance)>.01&&(this.currentDistance=r)};o(),this.dispose(this._player.currentTimeChanged.disposableOn(o))}{const o=()=>{if(this.totalDistance<=0){this._player.currentTime=0;return}const r=this.currentDistance/this.totalDistance*(this.duration??3e3);Math.abs(r-(this._player.currentTime??0))>.01&&(this._player.currentTime=r)};o(),this.dispose(this.currentDistanceChanged.disposableOn(o))}this.dispose(p.bind([this._player,"loop"],[this,"loop"])),this.dispose(p.bind([this._player,"currentTime"],[this,"currentTime"])),this.dispose(p.bind([this._player,"duration"],[this,"duration"])),this.dispose(p.bind([this._player,"playing"],[this,"playing"])),this.dispose(p.bind([this._player,"speed"],[this,"speed"])),this.dispose(this._flyToEvent.disposableOn(o=>{this._geoPolyline.flyTo(o)}))}get geoPath(){return this._geoPath}get geoPolyline(){return this._geoPolyline}get geoCanvasPointPoi(){return this._geoCanvasPointPoi}get player(){return this._player}get currentInfo(){return this._geoPath.currentInfo}get currentInfoChanged(){return this._geoPath.currentInfoChanged}get currentIndex(){return this._geoPath.currentIndex}get currentIndexChanged(){return this._geoPath.currentIndexChanged}get currentPosition(){return this._geoPath.currentPosition}get currentPositionChanged(){return this._geoPath.currentPositionChanged}get currentRotation(){return this._geoPath.currentRotation}get currentRotationChanged(){return this._geoPath.currentRotationChanged}get accumDistances(){return this._geoPath.accumDistances}get accumDistancesChanged(){return this._geoPath.accumDistancesChanged}get totalDistance(){return this._geoPath.totalDistance}get totalDistanceChanged(){return this._geoPath.totalDistanceChanged}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}subPath(e,i){const o=this._geoPath.subPath(e,i);if(o)return o.map(r=>r[1])}get currentDistance(){return this._currentDistance.value}set currentDistance(e){this._currentDistance.value=e}get currentDistanceChanged(){return this._currentDistance.changed}get ratio(){return this._ratio.value}set ratio(e){this._ratio.value=e}get ratioChanged(){return this._ratio.changed}get timePosRots(){return this.geoPath.timePosRots}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,currentPoiShow:!0,polylineShow:!0,positions:p.reactPositions(void 0),width:1,ground:!1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",granularity:1,loop:!1,currentTime:0,duration:3e3,speed:1,playing:!1,depthTest:!1,leadTime:0,trailTime:0,rotationRadius:[0],rotLerpMode:"Next"})})(ps||(ps={})),p.extendClassProps(ps.prototype,ps.createDefaultProps);class Ql extends p.Destroyable{constructor(e,i){super();L(this,"_geoPolylinePath");L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_currentDistance",this.disposeVar(p.react(0)));this._geoPolylinePath=this.disposeVar(new ps(e,i)),this._geoPolylinePath.rotLerpMode="Lerp",this.dispose(p.bind([this._geoPolylinePath,"show"],[this,"show"])),this.dispose(p.bind([this._geoPolylinePath,"currentPoiShow"],[this,"currentPoiShow"])),this.dispose(p.bind([this._geoPolylinePath,"polylineShow"],[this,"polylineShow"])),this.dispose(p.bind([this._geoPolylinePath,"width"],[this,"width"])),this.dispose(p.bind([this._geoPolylinePath,"ground"],[this,"ground"])),this.dispose(p.bind([this._geoPolylinePath,"color"],[this,"color"])),this.dispose(p.bind([this._geoPolylinePath,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([this._geoPolylinePath,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([this._geoPolylinePath,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([this._geoPolylinePath,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([this._geoPolylinePath,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([this._geoPolylinePath,"arcType"],[this,"arcType"])),this.dispose(p.bind([this._geoPolylinePath,"currentDistance"],[this,"currentDistance"])),this.dispose(p.bind([this._geoPolylinePath,"loop"],[this,"loop"])),this.dispose(p.bind([this._geoPolylinePath,"currentTime"],[this,"currentTime"])),this.dispose(p.bind([this._geoPolylinePath,"duration"],[this,"duration"])),this.dispose(p.bind([this._geoPolylinePath,"playing"],[this,"playing"])),this.dispose(p.bind([this._geoPolylinePath,"speed"],[this,"speed"])),this.dispose(p.bind([this._geoPolylinePath,"depthTest"],[this,"depthTest"])),this.dispose(p.track([this._geoPolylinePath,"leadTime"],[this,"leadTime"])),this.dispose(p.track([this._geoPolylinePath,"trailTime"],[this,"trailTime"])),this.dispose(p.track([this._geoPolylinePath,"allowPicking"],[this,"allowPicking"]));const o=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.resolutionChanged,this.sharpnessChanged)),r=()=>{try{if(this.positions&&this.positions.length>=2){const s=Jf(this.positions,this.resolution,this.sharpness);this._geoPolylinePath.positions=s}else this._geoPolylinePath.positions=void 0}catch(s){console.error(s),this._geoPolylinePath.positions=void 0}};r(),this.dispose(o.disposableOn(r)),this.dispose(this._flyToEvent.disposableOn(s=>{this._geoPolylinePath.flyTo(s)}))}get geoPolylinePath(){return this._geoPolylinePath}get geoPath(){return this._geoPolylinePath.geoPath}get ratio(){return this._geoPolylinePath.ratio}set ratio(e){this._geoPolylinePath.ratio=e}get ratioChanged(){return this._geoPolylinePath.ratioChanged}get player(){return this._geoPolylinePath.player}get currentInfo(){return this._geoPolylinePath.currentInfo}get currentInfoChanged(){return this._geoPolylinePath.currentInfoChanged}get currentIndex(){return this._geoPolylinePath.currentIndex}get currentIndexChanged(){return this._geoPolylinePath.currentIndexChanged}get currentPosition(){return this._geoPolylinePath.currentPosition}get currentPositionChanged(){return this._geoPolylinePath.currentPositionChanged}get currentRotation(){return this._geoPolylinePath.currentRotation}get currentRotationChanged(){return this._geoPolylinePath.currentRotationChanged}get accumDistances(){return this._geoPolylinePath.accumDistances}get accumDistancesChanged(){return this._geoPolylinePath.accumDistances}get totalDistance(){return this._geoPolylinePath.totalDistance}get totalDistanceChanged(){return this._geoPolylinePath.totalDistanceChanged}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get currentDistance(){return this._currentDistance.value}set currentDistance(e){this._currentDistance.value=e}get currentDistanceChanged(){return this._currentDistance.changed}get timePosRots(){return this.geoPath.timePosRots}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,currentPoiShow:!0,polylineShow:!0,positions:p.reactPositions(void 0),width:1,ground:!1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArray([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",loop:!1,currentTime:0,duration:3e3,speed:1,playing:!1,resolution:1e3,sharpness:.85,depthTest:!1,leadTime:0,trailTime:0})})(Ql||(Ql={})),p.extendClassProps(Ql.prototype,Ql.createDefaultProps);const ct=class ct extends Q.ESVisualObject{constructor(e){super(e);L(this,"_pickFeaturesEvent",this.dv(new p.Event));this.ad(p.bind([this,"czmSplitDirection"],[this,"splitDirection"])),this.ad(p.bind([this,"czmAlpha"],[this,"opacity"]))}get typeName(){return"ESMVTLayer"}get defaultProps(){return ct.createDefaultProps()}get pickFeaturesEvent(){return this._pickFeaturesEvent}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Q.StringProperty("令牌","影像服务访问令牌",!1,!1,[this,"accessToken"],ct.defaults.accessToken),new Q.Number4Property("矩形范围","西南东北",!0,!1,[this,"rectangle"],ct.defaults.rectangle),new Q.JsonProperty("服务地址","mapbox样式对象或url资源",!1,!1,[this,"url"],ct.defaults.url),new Q.JsonProperty("样式配置","样式配置,用于自定义或替换样式",!1,!1,[this,"style"],ct.defaults.style),new Q.NumberProperty("层级序号","层级序号",!1,!1,[this,"zIndex"],ct.defaults.zIndex),new Q.EnumProperty("瓦片大小","瓦片大小",!1,!1,[this,"tileSize"],ct.defaults.tileSizes),new Q.NumberSliderProperty("最大层级","最大层级",!1,!1,[this,"maximumLevel"],1,[1,24],ct.defaults.maximumLevel),new Q.NumberSliderProperty("最小层级","最小层级",!1,!1,[this,"minimumLevel"],1,[0,24],ct.defaults.minimumLevel),new Q.EnumProperty("影像类型","影像类型",!1,!1,[this,"scheme"],[["tms","tms"],["xyz","xyz"]],ct.defaults.scheme)]}}getProperties(e){return[...super.getProperties(e),new Q.GroupProperty("通用","通用",[new Q.Number4Property("矩形范围","西南东北",!0,!1,[this,"rectangle"],ct.defaults.rectangle),new Q.JsonProperty("服务地址","mapbox样式对象或url资源",!1,!1,[this,"url"],ct.defaults.url),new Q.JsonProperty("样式配置","样式配置,用于自定义或替换样式",!1,!1,[this,"style"],ct.defaults.style),new Q.NumberProperty("层级","影像显示层级",!1,!1,[this,"zIndex"],ct.defaults.zIndex),new Q.StringProperty("令牌","影像服务访问令牌",!1,!1,[this,"accessToken"],ct.defaults.accessToken),new Q.EnumProperty("瓦片大小","瓦片大小",!1,!1,[this,"tileSize"],ct.defaults.tileSizes),new Q.NumberSliderProperty("最大层级","最大层级",!1,!1,[this,"maximumLevel"],1,[1,24],ct.defaults.maximumLevel),new Q.NumberSliderProperty("最小层级","最小层级",!1,!1,[this,"minimumLevel"],1,[0,24],ct.defaults.minimumLevel),new Q.EnumProperty("影像类型","影像类型",!1,!1,[this,"scheme"],[["tms","tms"],["xyz","xyz"]],ct.defaults.scheme),new Q.EnumProperty("splitDirection","The ImagerySplitDirection split to apply to this layer.",!1,!1,[this,"splitDirection"],ct.defaults.splitDirectionEnum)]),new Q.GroupProperty("czm","czm",[new Q.NumberProperty("透明度","透明度,The alpha blending value of this layer, from 0.0 to 1.0.",!1,!1,[this,"czmAlpha"]),new Q.NumberProperty("亮度","亮度,The brightness of this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmBrightness"]),new Q.NumberProperty("对比度","对比度,The contrast of this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmContrast"]),new Q.NumberProperty("色相","色相,The hue of this layer. 0.0 uses the unmodified imagery color. ",!1,!1,[this,"czmHue"]),new Q.NumberProperty("饱和度","饱和度,The saturation of this layer. 1.0 uses the unmodified imagery color. ",!1,!1,[this,"czmSaturation"]),new Q.NumberProperty("伽马值","伽马,The gamma correction to apply to this layer. 1.0 uses the unmodified imagery color.",!1,!1,[this,"czmGamma"])])]}};L(ct,"type",ct.register("ESMVTLayer",ct,{chsName:"矢量瓦片图层",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于加载矢量瓦片图层。"})),L(ct,"defaults",{...Q.ESVisualObject.defaults,url:"",zIndex:0,accessToken:"",tileSizes:[["256",256],["512",512],["1024",1024]],tileSize:256,maximumLevel:18,minimumLevel:0,rectangle:[-180,-90,180,90],style:[],scheme:"tms",splitDirectionEnum:[["LEFT","LEFT"],["NONE","NONE"],["RIGHT","RIGHT"]]});let Kr=ct;(t=>{t.createDefaultProps=()=>({...Q.ESVisualObject.createDefaultProps(),rectangle:p.reactJsonWithUndefined(void 0),url:p.reactJson(""),zIndex:0,accessToken:"",tileSize:256,maximumLevel:18,minimumLevel:0,style:p.reactArrayWithUndefined(void 0),scheme:p.react(void 0),czmSplitDirection:"NONE",czmAlpha:1,opacity:1,splitDirection:"NONE",czmBrightness:1,czmContrast:1,czmHue:0,czmSaturation:1,czmGamma:1})})(Kr||(Kr={})),p.extendClassProps(Kr.prototype,Kr.createDefaultProps);const KU=t=>{const n=[{maxAlt:25e7,level:0},{maxAlt:25e6,level:1},{maxAlt:9e6,level:2},{maxAlt:7e6,level:3},{maxAlt:44e5,level:4},{maxAlt:2e6,level:5},{maxAlt:1e6,level:6},{maxAlt:493977,level:7},{maxAlt:218047,level:8},{maxAlt:124961,level:9},{maxAlt:56110,level:10},{maxAlt:4e4,level:11},{maxAlt:13222,level:12},{maxAlt:7e3,level:13},{maxAlt:4e3,level:14},{maxAlt:2500,level:15},{maxAlt:1500,level:16},{maxAlt:600,level:17},{maxAlt:250,level:18},{maxAlt:150,level:19},{maxAlt:50,level:20}];for(const{maxAlt:e,level:i}of n)if(t>=e)return i;return 20},ZU=async(t,n,e)=>(await fetch(`https://tileser.giiiis.com/xyzinfo/${e}/${t}/${n}`)).json(),XU=async t=>{var c;const n=(c=t.getCurrentCameraInfo())==null?void 0:c.position;if(!n)return;const e=n[0],i=n[1],o=n[2],r=KU(o);let s=Math.floor((e+180)/360*Math.pow(2,r+1)),a=Math.floor((90-i)/180*Math.pow(2,r));return await ZU(s,a,r)};class $U extends p.Destroyable{constructor(n,e,i){super();const o=async()=>{const s=await XU(n);e.datesEvent.emit(s,n)};o();let r;r=setInterval(()=>{o()},3e3),this.d(()=>r&&clearInterval(r));{const s=()=>{const a=e.currentDate?e.currentDate:0;i.url=`https://tileser.giiiis.com/timetile/tms/${a}/tilemapresource.xml`};s(),this.d(e.currentDateChanged.don(s))}}}const ra=class ra extends Q.ESVisualObject{constructor(e){super(e);L(this,"_esImageryLayer",this.dv(new Q.ESImageryLayer));L(this,"_datesEvent",this.dv(new p.Event));const i=this._esImageryLayer;this.d(this.components.disposableAdd(i)),i.zIndex=1,i.minimumLevel=1,i.maximumLevel=18,this.d(p.track([i,"show"],[this,"show"])),this.d(p.track([i,"zIndex"],[this,"zIndex"])),this.d(p.track([i,"rectangle"],[this,"rectangle"])),this.d(p.bind([i,"flyInParam"],[this,"flyInParam"])),this.d(p.bind([i,"flyToParam"],[this,"flyToParam"])),this.registerAttachedObjectForContainer(o=>new $U(o,this,i)),this.d(this.flyInEvent.don(o=>{i.flyIn(o)})),this.d(this.flyToEvent.don(o=>{i.flyTo(o)})),this.d(this.calcFlyToParamEvent.don(()=>{i.calcFlyToParam()})),this.d(this.calcFlyInParamEvent.don(()=>{i.calcFlyInParam()}))}get typeName(){return"ESGeHistoryImagery"}get defaultProps(){return ra.createDefaultProps()}get esImageryLayer(){return this._esImageryLayer}get datesEvent(){return this._datesEvent}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Q.StringProperty("时间","currentDate",!1,!1,[this,"currentDate"],"0"),new Q.NumberProperty("层级","层级",!1,!1,[this,"zIndex"],0),new Q.Number4Property("矩形范围","西南东北",!1,!1,[this,"rectangle"],[-180,-90,180,90])]}}getProperties(e){return[...super.getProperties(e),new Q.GroupProperty("通用","通用",[new Q.StringProperty("currentDate","currentDate",!1,!1,[this,"currentDate"]),new Q.NumberProperty("zIndex","层级",!1,!1,[this,"zIndex"]),new Q.Number4Property("矩形范围","西南东北",!1,!1,[this,"rectangle"])])]}};L(ra,"type",ra.register("ESGeHistoryImagery",ra,{chsName:"谷歌历史影像",tags:["ESObjects","_ES_Impl_UE"],description:"ESGeHistoryImagery"})),L(ra,"defaults",{...Q.ESVisualObject.defaults});let Zr=ra;(t=>{t.createDefaultProps=()=>({...Q.ESVisualObject.createDefaultProps(),currentDate:"",zIndex:0,rectangle:p.reactArray([-180,-90,180,90])})})(Zr||(Zr={})),p.extendClassProps(Zr.prototype,Zr.createDefaultProps);const YU=`<?xml version="1.0" encoding="utf-8" ?>
|
|
2928
2928
|
<kml xmlns="http://www.opengis.net/kml/2.2">
|
|
2929
2929
|
<Document id="root_doc">
|
|
2930
2930
|
<Folder><name>高速公路</name>
|
|
@@ -3980,7 +3980,7 @@ ${SC}
|
|
|
3980
3980
|
vec4 imageColor = texture(u_image, fract(v_st * u_stScale - addst));
|
|
3981
3981
|
out_FragColor = imageColor * u_color;
|
|
3982
3982
|
}
|
|
3983
|
-
`};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(this.heightChanged,this.positionsChanged));this.dispose(a.disposableOn(s))}this.dispose(this.flyToEvent.disposableOn(s=>{this.czmCustomPrimitive.flyTo(s)}));{const s=()=>{const l=r.value?r.value:1,c=this.height??lr.defaults.height,{textureSizeInMeters:h=lr.defaults.textureSizeInMeters}=this,{textureUri:u=lr.defaults.textureUri}=this;o.uniformMap={u_image:{type:"image",uri:u},u_stScale:[l/h[0],c/h[1]],u_speed:this.textureMoveSpeed??lr.defaults.textureMoveSpeed,u_color:this.textureColor??lr.defaults.textureColor}};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(this.textureColorChanged,this.textureMoveSpeedChanged,this.textureSizeInMetersChanged,this.heightChanged,this.textureSizeInMetersChanged,this.textureUriChanged,r.changed));this.dispose(a.disposableOn(s))}}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get czmCustomPrimitive(){return this._czmCustomPrimitive}get geoBoundingSphere(){return this._geoBoundingSphere.value}get geoBoundingSphereChanged(){return this._geoBoundingSphere.changed}};L(lr,"defaults",{show:!0,allowPicking:!1,positions:[],height:1e3,textureSizeInMeters:[500,500],textureUri:"${earthsdk3-assets-script-dir}/assets/img/location.png",textureMoveSpeed:[0,.3],textureColor:[1,1,1,1]});let Zo=lr;(t=>{t.createDefaultProps=()=>({show:void 0,allowPicking:void 0,positions:p.reactPositions(void 0),height:void 0,textureSizeInMeters:p.reactArrayWithUndefined(void 0),textureUri:void 0,textureMoveSpeed:p.reactArrayWithUndefined(void 0),textureColor:p.reactArrayWithUndefined(void 0)})})(Zo||(Zo={})),p.extendClassProps(Zo.prototype,Zo.createDefaultProps);const oc=class oc extends an{constructor(e,i){super(e,i);L(this,"_czmPolygonFence");L(this,"_czmPolygon");if(this._czmPolygonFence=this.disposeVar(new Zo(i,e.id)),this._czmPolygon=this.dv(new Q.ESGeoPolygon),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmPolygonFence,s=this._czmPolygon;i.add(s),this.dispose(()=>i.delete(s)),s.filled=!1,this.d(p.track([s,"points"],[e,"points"])),this.d(p.track([s,"stroked"],[e,"stroked"])),this.d(p.track([s,"strokeColor"],[e,"strokeColor"])),this.d(p.track([s,"strokeWidth"],[e,"strokeWidth"])),this.d(p.track([s,"strokeGround"],[e,"strokeGround"]));{const a={danger:{color:[.99,.98,.57,1],image:"01.png"},checkerboard:{color:[.88,.98,.99,1],image:"02.png"},warning:{color:[1,.93,.58,1],image:"03.png"},cord:{color:[.91,.87,.56,1],image:"04.png"},scanline:{color:[.43,.78,.8,1],image:"05.png"},honeycomb:{color:[.28,.84,.86,1],image:"06.png"},gradientColor:{color:[1,1,1,1],image:"07.png"}},l=(A,f)=>{switch(A){case"danger":return{textureMoveSpeed:[.05,0],textureSizeInMeters:[2,2]};case"checkerboard":return{textureMoveSpeed:[0,0],textureSizeInMeters:[2,2]};case"warning":return{textureMoveSpeed:[-.05,0],textureSizeInMeters:[2,2]};case"cord":return{textureMoveSpeed:[-.05,0],textureSizeInMeters:[2,2]};case"scanline":return{textureMoveSpeed:[0,0],textureSizeInMeters:[f,f]};case"honeycomb":return{textureMoveSpeed:[0,0],textureSizeInMeters:[f,f]};case"gradientColor":return{textureMoveSpeed:[0,0],textureSizeInMeters:[f,f]};default:return{textureMoveSpeed:[0,0],textureSizeInMeters:[f*.5,2]}}},c="${earthsdk3-assets-script-dir}/assets/img/fence/",h=()=>{const A=e.materialMode,f=a[A];if(!f)return;r.textureUri=c+f.image,r.textureColor=A!=="gradientColor"?f.color:e.fillColor;const{textureMoveSpeed:d,textureSizeInMeters:g}=l(A,e.height);r.textureMoveSpeed=d,r.textureSizeInMeters=g};h();const u=this.disposeVar(p.createNextAnimateFrameEvent(e.materialModeChanged,e.heightChanged,e.fillColorChanged));this.dispose(u.disposableOn(h))}{this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"height"],[e,"height"]));{const a=()=>{r.show=e.show&&e.filled};a();const l=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.filledChanged));this.dispose(l.don(a))}}}get czmPolygonFence(){return this._czmPolygonFence}get czmPolygon(){return this._czmPolygon}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmPolygonFence:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(dn(r,o,i,e,s.czmCustomPrimitive),!0):!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmPolygonFence:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):(dn(r,o,i,e,s.czmCustomPrimitive),!0):!1}};L(oc,"type",oc.register("ESCesiumViewer",Q.ESPolygonFence.type,oc));let fg=oc;const ac=class ac extends an{constructor(e,i){super(e,i);L(this,"_czmESRectangle");if(this._czmESRectangle=this.disposeVar(new pi(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmESRectangle;this.dispose(p.bind([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.track([r,"ground"],[e,"fillGround"])),this.dispose(p.track([r,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([r,"outlineTranslucent"],[e,"outlineTranslucent"])),this.dispose(p.bind([r,"height"],[e,"height"])),this.dispose(p.bind([r,"extrudedHeight"],[e,"extrudedHeight"])),this.dispose(p.bind([r,"rectangle"],[e,"rectangle"])),this.dispose(p.bind([r,"stRotation"],[e,"stRotation"])),this.dispose(p.bind([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"outline"],[e,"stroked"])),this.dispose(p.track([r,"outlineColor"],[e,"strokeColor"]));{const s=()=>{const a=e.points;if(a&&a.length>=2){const{minPos:l,maxPos:c}=Q.getMinMaxCorner(a);r.rectangle=[l[0],l[1],c[0],c[1]],r.height=a[1][2],r.extrudedHeight=a[0][2]}else r.rectangle=void 0,r.height=0,r.extrudedHeight=0};s(),this.dispose(e.pointsChanged.disposableOn(()=>s()))}{const s=()=>{e.filled?r.material={type:"Color",color:e.fillColor}:r.material={type:"Color",color:[1,1,1,0]}};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.fillStyleChanged,e.filledChanged));this.dispose(a.disposableOn(s))}}get czmESRectangle(){return this._czmESRectangle}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmESRectangle:s}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);if(s.rectangle){const a=[[s.rectangle[0],s.rectangle[1],s.height],[s.rectangle[2],s.rectangle[3],s.height],[s.rectangle[0],s.rectangle[1],s.extrudedHeight],[s.rectangle[2],s.rectangle[3],s.extrudedHeight]];return Me(r,o,i,a,e),!0}return!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmESRectangle:s}=this;if(!r.actived)return!1;if(o.flyInParam)return super.flyIn(e,i);if(s.rectangle){const a=[[s.rectangle[0],s.rectangle[1],s.height],[s.rectangle[2],s.rectangle[3],s.height],[s.rectangle[0],s.rectangle[1],s.extrudedHeight],[s.rectangle[2],s.rectangle[3],s.extrudedHeight]];return Me(r,o,i,a,e),!0}return!1}};L(ac,"type",ac.register("ESCesiumViewer",Q.ESRectangle.type,ac));let dg=ac;const uo=class uo extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));const o=e.viewer;if(!o){console.warn("viewer is undefined!");return}const r=Q.ESSceneObject.context.createEnvStrReact([this,"imageUrl"],uo.defaults.imageUrl),s=this.disposeVar(p.react(void 0)),a=()=>{const m=C.Material.fromType(C.Material.ImageType);m.uniforms.image=r.value,m.uniforms.repeat=Xe(this.repeat??uo.defaults.repeat),s.value=m};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(r.changed,this.repeatChanged));this.dispose(l.disposableOn(a));const c=(m,w)=>{const _=new C.PolylineMaterialAppearance({material:w,renderState:{depthTest:{enabled:!1}}});_.renderState.depthMask=!1;const E=[];if(m.length<2)return;E.push(new C.GeometryInstance({geometry:new C.GroundPolylineGeometry({positions:m,width:this.width??uo.defaults.width,vertexFormat:C.PolylineMaterialAppearance.VERTEX_FORMAT,arcType:C.ArcType[this.arcType??uo.defaults.arcType]}),id:this}));const T=new bi({geometryInstances:E,appearance:_,asynchronous:!1,allowPicking:this.allowPicking??uo.defaults.allowPicking,compressVertices:!1});return T.ESSceneObjectID=i,T};let h;const u=new C.BoundingSphere,A=()=>{h&&(o.scene.primitives.remove(h),h=void 0)};this.dispose(A);const f=()=>{if(A(),!this.positions)return;const m=Zt(this.positions);if(m.length<2||!s.value){u.radius=-1;return}C.BoundingSphere.fromPoints(m,u),h=c(m,s.value),h&&o.scene.primitives.add(h)},d=()=>{h&&(h.show=this.show??!0)};this.dispose(this.flyToEvent.disposableOn(m=>{if(e.actived&&u.radius>0){const w=Ue(u.center);w&&Be(o,w,u.radius*4,void 0,m)}})),f(),d();const g=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.widthChanged,s.changed,this.arcTypeChanged,this.allowPickingChanged));this.dispose(g.disposableOn(()=>{f(),d()}));const v=this.disposeVar(p.createNextAnimateFrameEvent(this.showChanged));this.dispose(v.disposableOn(()=>{d()}));const{extensions:y}=e;if(!y){console.warn("!extensions");return}}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}};L(uo,"defaults",{show:!0,positions:[],width:50,arcType:"GEODESIC",imageUrl:"${earthsdk3-assets-script-dir}/assets/img/roads/4.jpg",repeat:[100,1],allowPicking:!1});let Xo=uo;(t=>{t.createDefaultProps=()=>({show:void 0,positions:p.reactPositions(void 0),width:void 0,arcType:void 0,imageUrl:void 0,repeat:void 0,allowPicking:void 0})})(Xo||(Xo={})),p.extendClassProps(Xo.prototype,Xo.createDefaultProps);const sc=class sc extends an{constructor(e,i){super(e,i);L(this,"_czmESRoad");if(this._czmESRoad=this.disposeVar(new Xo(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmESRoad;{const s=()=>{r.show=e.show&&e.stroked};s();const a=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.dispose(a.don(s))}this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"width"],[e,"width"])),this.dispose(p.track([r,"arcType"],[e,"arcType"])),this.dispose(p.track([r,"imageUrl"],[e,"imageUrl"])),this.dispose(p.track([r,"repeat"],[e,"repeat"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"]))}get czmESRoad(){return this._czmESRoad}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmESRoad:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmESRoad:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(sc,"type",sc.register("ESCesiumViewer",jr.type,sc));let pg=sc;const lc=class lc extends Q.EngineObject{constructor(e,i){super(e,i);L(this,"_customDiv");if(this._customDiv=this.disposeVar(new Q.ESCustomDiv(e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._customDiv;i.add(r),this.dispose(()=>i.delete(r)),r.instanceClass=class extends p.Destroyable{constructor(a,l,c){super(),this._subContainer=a;const h=document.createElement("div");this._subContainer.appendChild(h),this.dispose(()=>this._subContainer.removeChild(h));{const g=()=>{h.style.display=e.show??Q.ESScale.defaults.show?"block":"none"};g(),e.dispose(e.showChanged.disposableOn(g))}h.style.position="fixed",h.style.width="125px",h.style.height="30px",h.style.border="1px solid rgba(49,50,56,.8)",h.style.padding="0 5px",h.style.backgroundColor="rgba(37,38,42,.8)",h.style.borderRadius="15px",h.style.pointerEvents="auto",h.style.transition=" right 0.4s linear";{const g=()=>{h.style.bottom=`${e.cssPosition?e.cssPosition[0]:Q.ESScale.defaults.cssPosition[0]}px`,e.screenPosition==="left"?(h.style.right="auto",h.style.left=`${e.cssPosition?e.cssPosition[1]:Q.ESScale.defaults.cssPosition[1]}px`):(h.style.left="auto",h.style.right=`${e.cssPosition?e.cssPosition[1]:Q.ESScale.defaults.cssPosition[1]}px`)},v=this.disposeVar(p.createNextAnimateFrameEvent(e.cssPositionChanged,e.screenPositionChanged));g(),this.dispose(v.disposableOn(()=>g()))}const u=document.createElement("div");h.appendChild(u),this.dispose(()=>h.removeChild(u)),u.style.width="125px",u.style.display="inline-block",u.style.textAlign="center",u.style.fontSize="14px",u.style.fontWeight="lighter",u.style.lineHeight="30px",u.style.color="#fff",u.innerHTML="1000km";const A=document.createElement("div");h.appendChild(A),this.dispose(()=>h.removeChild(A)),A.style.borderRight="1px solid #fff",A.style.borderLeft="1px solid #fff",A.style.borderBottom="1px solid #fff",A.style.position="absolute",A.style.height="10px",A.style.top="15px",A.style.width="75px",A.style.left="30px";const f=()=>{const g=i.viewerLegend.legend.computedLengthInMeters;if(e.show===!1||g&&g>1e6)h.style.display="none";else{h.style.display="block";const v=i.viewerLegend.legend.computedLengthInStr;v&&(u.innerHTML=v);const y=i.viewerLegend.legend.computedLengthInPixels;if(y){A.style.width=`${y}px`;const m=(135-y)/2;A.style.left=`${m}px`}}};f();const d=setInterval(()=>{f()},200);this.dispose(()=>clearInterval(d))}}}get customDiv(){return this._customDiv}};L(lc,"type",lc.register("ESCesiumViewer",Q.ESScale.type,lc));let mg=lc;const uc=class uc extends Ge{constructor(e,i){super(e,i);L(this,"_czmCustomPrimitive");if(this._czmCustomPrimitive=this.disposeVar(new st(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmCustomPrimitive;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"position"],[e,"position"])),this.dispose(p.track([r,"scale"],[e,"scale"])),this.dispose(p.track([r,"viewDistanceRange"],[e,"viewDistanceRange"])),this.dispose(p.track([r,"viewDistanceDebug"],[e,"viewDistanceDebug"])),this.dispose(p.track([r,"maximumScale"],[e,"maximumScale"])),this.dispose(p.track([r,"minimumScale"],[e,"minimumScale"])),this.dispose(p.track([r,"pixelSize"],[e,"pixelSize"])),this.dispose(p.track([r,"showSceneScale"],[e,"showSceneScale"])),this.dispose(p.track([r,"modelMatrix"],[e,"modelMatrix"])),this.dispose(p.track([r,"cull"],[e,"cull"])),this.dispose(p.track([r,"boundingVolume"],[e,"boundingVolume"])),this.dispose(p.track([r,"pass"],[e,"pass"])),this.dispose(p.track([r,"primitiveType"],[e,"primitiveType"])),this.dispose(p.track([r,"renderState"],[e,"renderState"])),this.dispose(p.track([r,"vertexShaderSource"],[e,"vertexShaderSource"])),this.dispose(p.track([r,"fragmentShaderSource"],[e,"fragmentShaderSource"])),this.dispose(p.track([r,"uniformMap"],[e,"uniformMap"])),this.dispose(p.track([r,"attributes"],[e,"attributes"])),this.dispose(p.track([r,"indexTypedArray"],[e,"indexTypedArray"])),this.dispose(p.track([r,"attributesJson"],[e,"attributesJson"])),this.dispose(p.track([r,"indexTypedArrayJson"],[e,"indexTypedArrayJson"])),this.dispose(p.track([r,"count"],[e,"count"])),this.dispose(p.track([r,"offset"],[e,"offset"])),this.dispose(p.track([r,"instanceCount"],[e,"instanceCount"])),this.dispose(p.track([r,"localPosition"],[e,"localPosition"])),this.dispose(p.track([r,"localScale"],[e,"localScale"])),this.dispose(p.track([r,"localModelMatrix"],[e,"localModelMatrix"])),this.dispose(p.track([r,"debugShowBoundingVolume"],[e,"debugShowBoundingVolume"])),this.dispose(p.track([r,"debugOverlappingFrustums"],[e,"debugOverlappingFrustums"])),this.dispose(p.track([r,"occlude"],[e,"occlude"])),this.dispose(p.track([r,"castShadows"],[e,"castShadows"])),this.dispose(p.track([r,"receiveShadows"],[e,"receiveShadows"])),this.dispose(p.track([r,"executeInClosestFrustum"],[e,"executeInClosestFrustum"])),this.dispose(p.track([r,"pickOnly"],[e,"pickOnly"])),this.dispose(p.track([r,"depthForTranslucentClassification"],[e,"depthForTranslucentClassification"]));{const s=()=>{if(e.localRotation){const a=[...e.localRotation];a[0]-=90,r.localRotation=a}else r.localRotation=[-90,0,0]};s(),this.dispose(e.localRotationChanged.disposableOn(s))}}get czmCustomPrimitive(){return this._czmCustomPrimitive}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmCustomPrimitive:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(dn(r,o,i,e,s,!0),!0):!1}};L(uc,"type",uc.register("ESCesiumViewer",Yr.type,uc));let gg=uc;const cc=class cc extends XA{constructor(e,i){super(e,i);L(this,"czmGeoPolyline");L(this,"czmWater");if(!i.viewer){console.warn("viewer is undefined!");return}if(!Sn(i.viewer))return;this.czmGeoPolyline=this.dv(new Je(i,e.id)),this.czmWater=this.dv(new Do(i,e.id));const{czmGeoPolyline:s,czmWater:a}=this;this.d(p.track([a,"allowPicking"],[e,"allowPicking"])),this.d(p.track([a,"ground"],[e,"fillGround"])),this.d(p.track([s,"allowPicking"],[e,"allowPicking"])),this.d(p.track([s,"color"],[e,"strokeColor"])),this.d(p.track([s,"width"],[e,"strokeWidth"])),this.d(p.track([s,"ground"],[e,"strokeGround"]));{const l=this.dv(p.createNextAnimateFrameEvent(e.waterColorChanged,e.frequencyChanged,e.waveVelocityChanged,e.amplitudeChanged,e.specularIntensityChanged,e.waterTypeChanged,e.flowDirectionChanged,e.flowSpeedChanged)),c=()=>{if(e.waterType==="custom")this.updateWater({waterColor:e.waterColor??Q.ESDynamicWater.defaults.waterColor,frequency:(e.frequency??Q.ESDynamicWater.defaults.frequency)/10,waveVelocity:(e.waveVelocity??Q.ESDynamicWater.defaults.waveVelocity)/100,amplitude:(e.amplitude??Q.ESDynamicWater.defaults.amplitude)*100,specularIntensity:e.specularIntensity??Q.ESDynamicWater.defaults.specularIntensity,flowDirection:e.flowDirection??Q.ESDynamicWater.defaults.flowDirection,flowSpeed:e.flowSpeed??Q.ESDynamicWater.defaults.flowSpeed});else{const h=Object.assign({},td[e.waterType]);h.frequency&&(h.frequency/=10),h.waveVelocity&&(h.waveVelocity/=100),h.amplitude&&(h.amplitude*=100),this.updateWater(h)}};c(),this.d(l.don(c))}{const l=()=>{s.show=e.show&&e.stroked},c=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.d(c.don(l)),l()}{const l=()=>{a.show=!!(e.show&&e.filled)},c=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.filledChanged));this.d(c.don(l)),l()}{const l=()=>{if(!e.points||e.points&&e.points.length<=2){s.positions=[],a.points=[];return}if(e.scale&&e.scale.some(A=>A===0)){console.warn("缩放属性(scale)不能设置值为0");return}const h=e.points.map(A=>[A[0],A[1],0]),[u]=mr({originPosition:e.position,originRotation:e.rotation,originScale:e.scale,initialRotationMode:"XForwardZUp"},h);s.positions=[...u,u[0]],a.points=[...u]};l();const c=this.dv(p.createNextAnimateFrameEvent(e.pointsChanged,e.positionChanged,e.rotationChanged,e.scaleChanged));this.d(c.don(l))}}visibleDistance(e,i){var o;if((o=i.viewer)!=null&&o.camera&&e.show){const r=Q.getDistancesFromPositions([e.position,_n(i.viewer.camera)],"NONE")[0];let s=!1;e.minVisibleDistance<e.maxVisibleDistance?s=e.minVisibleDistance<r&&r<e.maxVisibleDistance:e.maxVisibleDistance==0&&(s=r>e.minVisibleDistance),this.czmGeoPolyline&&(this.czmGeoPolyline.show=e.show&&e.stroked&&s),this.czmWater&&(this.czmWater.show=e.show&&e.filled&&s)}}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmWater:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s!=null&&s.points?(Me(r,o,i,s.points,e,!0),!0):!1:!1}updateWater(e){const{czmWater:i}=this;i&&(e.waterColor&&i.waterColor!=e.waterColor&&(i.waterColor=e.waterColor),e.specularIntensity!=null&&i.specularIntensity!=e.specularIntensity&&(i.specularIntensity=e.specularIntensity),e.frequency!=null&&i.frequency!=e.frequency&&(i.frequency=e.frequency),e.waveVelocity!=null&&i.animationSpeed!=e.waveVelocity&&(i.animationSpeed=e.waveVelocity),e.amplitude!=null&&i.amplitude!=e.amplitude&&(i.amplitude=e.amplitude),e.flowSpeed!=null&&i.flowSpeed!=e.flowSpeed&&(i.flowSpeed=e.flowSpeed),i.baseWaterImage=e.waterImage,i.stRotation=e.flowDirection)}};L(cc,"type",cc.register("ESCesiumViewer",Q.ESDynamicWater.type,cc));let yg=cc;const hc=class hc extends Bn{constructor(e,i){super(e,i);L(this,"_scaleFactor",.6);L(this,"_urlData",this.dv(p.react(void 0)));L(this,"_dataSource",new C.CustomDataSource);L(this,"_clusterImages",{});L(this,"_clusterImageAttribute",{});L(this,"_clusterImageUrl","");if(!i.viewer){console.warn("viewer is undefined!");return}this._clusterImageUrl=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/ESPoi2D/clusterSpirit.png"),(async()=>{var a;const r=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/ESPoi2D/clusterJson.json");await fetch(r).then(l=>l.json()).then(l=>{this._clusterImageAttribute=l}).catch(l=>{console.error(l)});for(const l in this._clusterImageAttribute)if(Object.prototype.hasOwnProperty.call(this._clusterImageAttribute,l)){const c=this._clusterImageAttribute[l];this._clusterImages[l]=new C.BillboardGraphics({image:this._clusterImageUrl,verticalOrigin:C.VerticalOrigin.BOTTOM,horizontalOrigin:C.HorizontalOrigin.CENTER,scale:1*this._scaleFactor,width:c.imageSize[0],height:c.imageSize[1],pixelOffset:new C.Cartesian2(-c.anchorPixelOffset[0]*this._scaleFactor,-c.anchorPixelOffset[1]*this._scaleFactor),imageSubRegion:new C.BoundingRectangle(...c.imagePixelOffset,...c.imageSize)})}const s=this._dataSource;(a=i.viewer)==null||a.dataSources.add(s),this.d(()=>{var l;(l=i.viewer)==null||l.dataSources.remove(s)}),s.clustering.enabled=s.clustering.clusterBillboards=s.clustering.clusterLabels=s.clustering.clusterPoints=!0,this.d(p.track([s.clustering,"pixelRange"],[e,"pixelRange"])),this.d(p.track([s.clustering,"minimumClusterSize"],[e,"minimumClusterSize"])),this.d(p.track([s.clustering,"show"],[e,"show"]));{const l=()=>{if(e.url)do{if(typeof e.url=="object"&&e.url.url){fetch(Q.ESSceneObject.context.getStrFromEnv(e.url.url)).then(c=>c.json()).then(c=>{this.urlData=c}).catch(c=>{console.warn("ESEntityCluster数据加载失败",c)});break}if(typeof e.url=="object"){this.urlData=e.url;break}if(Q.isJSONString(e.url)){this.urlData=JSON.parse(e.url);break}fetch(Q.ESSceneObject.getStrFromEnv(e.url)).then(c=>c.json()).then(c=>{this.urlData=c}).catch(c=>{console.warn("ESEntityCluster数据加载失败",c)})}while(!1)};l(),this.d(e.urlChanged.don(l))}{const l=this.dv(p.createNextAnimateFrameEvent(this.urlDataChanged,e.heightReferenceChanged)),c=this;this.d(l.don(()=>{this.updateEntityCluster(c)}))}{const l=(c,h)=>{c!=null&&((c==null?void 0:c.nonCluster.mode)!=(h==null?void 0:h.nonCluster.mode)||(c==null?void 0:c.nonCluster.style)!=(h==null?void 0:h.nonCluster.style))?this.updateEntityCluster(this):this.updateStyle()};this.d(e.styleChanged.don((c,h)=>l(c,h)))}})()}get urlData(){return this._urlData.value}set urlData(e){this._urlData.value=e}get urlDataChanged(){return this._urlData.changed}async updateEntityCluster(e){var f,d,g,v,y,m,w,_,E,T,P,k;const{czmViewer:i,_dataSource:o,sceneObject:r}=e;if(!((f=i.viewer)==null?void 0:f.scene))return;const a=o.entities,l=new C.NearFarScalar(100,1,1e3,1),c=r.heightReference=="None"?C.HeightReference.NONE:r.heightReference=="CLAMP_TO_GROUND"?C.HeightReference.CLAMP_TO_GROUND:C.HeightReference.CLAMP_TO_TERRAIN;a.removeAll();const h=(d=this.czmViewer.viewer)==null?void 0:d.scene.postUpdate.addEventListener(()=>{o._entityCluster._billboardCollection&&(o._entityCluster._billboardCollection._billboards.forEach(D=>{D.id.billboard.imageSubRegion=void 0}),h&&h())}),u=r.style??Q.ESEntityCluster.defaults.style;this._clusterImages[((g=u.nonCluster)==null?void 0:g.mode)??"SquareH01"].heightReference=c,this._clusterImages[((v=u.nonCluster)==null?void 0:v.mode)??"SquareH01"].scaleByDistance=l;const A=[-this._clusterImageAttribute[((y=u.nonCluster)==null?void 0:y.mode)??"SquareH01"].anchorPixelOffset[0]+this._clusterImageAttribute[((m=u.nonCluster)==null?void 0:m.mode)??"SquareH01"].textPixelOffset[0],-this._clusterImageAttribute[((w=u.nonCluster)==null?void 0:w.mode)??"SquareH01"].anchorPixelOffset[1]-this._clusterImageAttribute[((_=u.nonCluster)==null?void 0:_.mode)??"SquareH01"].textPixelOffset[1]];if(this.urlData.type==="FeatureCollection")for(let D=0;D<this.urlData.features.length;D++){const B=this.urlData.features[D];if(B.geometry.type=="Point")this._addEntities(a,B.properties.name??(D+1).toString(),B.geometry.coordinates,A,c,l,(E=u.nonCluster)==null?void 0:E.mode,B.properties);else if(B.geometry.type=="MultiPoint")for(let S=0;S<B.geometry.coordinates.length;S++)this._addEntities(a,B.properties.name??(D+1).toString(),B.geometry.coordinates[S],A,c,l,(T=u.nonCluster)==null?void 0:T.mode,B.properties);else console.log("POI聚合只能加载Point和MultiPoint类型的数据,未加载数据类型为:",B.geometry.type)}else if(this.urlData.type=="GeometryCollection")for(let D=0;D<this.urlData.geometries.length;D++){const B=this.urlData.geometries[D];if(B.type=="Point")this._addEntities(a,B.name??(D+1).toString(),B.coordinates,A,c,l,(P=u.nonCluster)==null?void 0:P.mode,B.properties);else if(B.type=="MultiPoint")for(let S=0;S<B.coordinates.length;S++)this._addEntities(a,B.name??(D+1).toString(),B.coordinates[S],A,c,l,(k=u.nonCluster)==null?void 0:k.mode,B.properties);else console.log("POI聚合只能加载Point和MultiPoint类型的数据,未加载数据类型为:",B.type)}this.updateStyle(c,l)}async updateStyle(e,i){var l,c;const o=this,{_dataSource:r,sceneObject:s}=this,a=((l=s.style)==null?void 0:l.cluster)??Q.ESEntityCluster.defaults.style.cluster;r.entities.values.forEach(h=>{C.Entity.prototype&&(h.ESSceneObjectID=s.id)}),r.clustering.clusterEvent.addEventListener(async function(h,u){if(u.label.ESSceneObjectID=u.billboard.ESSceneObjectID=u.point.ESSceneObjectID=s.id,u.label.show=!0,u.label.font="16px sans-serif",u.label.scale=1*o._scaleFactor,u.label.verticalOrigin=C.VerticalOrigin.BOTTOM,u.label.horizontalOrigin=C.HorizontalOrigin.CENTER,u.label.eyeOffset=new C.Cartesian3(0,0,-10),e&&(u.label.heightReference=e),i&&(u.label.scaleByDistance=i),u.billboard.id=u.label.id,u.billboard.show=!0,u.billboard.scale=1*o._scaleFactor,u.billboard.verticalOrigin=C.VerticalOrigin.BOTTOM,u.billboard.horizontalOrigin=C.HorizontalOrigin.CENTER,e&&(u.billboard.heightReference=e),i&&(u.billboard.scaleByDistance=i),a){const A=o.getClusterStyle(a,h.length).mode,f=[-o._clusterImageAttribute[A].anchorPixelOffset[0]+o._clusterImageAttribute[A].textPixelOffset[0],-o._clusterImageAttribute[A].anchorPixelOffset[1]-o._clusterImageAttribute[A].textPixelOffset[1]];u.label.pixelOffset=new C.Cartesian2(f[0]*o._scaleFactor,f[1]*o._scaleFactor),u.billboard.width=o._clusterImageAttribute[A].imageSize[0],u.billboard.height=o._clusterImageAttribute[A].imageSize[1],u.billboard.pixelOffset=new C.Cartesian2(-o._clusterImageAttribute[A].anchorPixelOffset[0]*o._scaleFactor,-o._clusterImageAttribute[A].anchorPixelOffset[1]*o._scaleFactor),u.billboard.setImage(A,o._clusterImageUrl),u.billboard.setImageSubRegion(A,new C.BoundingRectangle(...o._clusterImageAttribute[A].imagePixelOffset,...o._clusterImageAttribute[A].imageSize))}});{const h=()=>{const A=r.clustering.pixelRange;r.clustering.pixelRange=0,r.clustering.pixelRange=A};h();let u=(c=this.czmViewer.viewer)==null?void 0:c.camera.moveEnd.addEventListener(()=>{h()});this.d(()=>{var A;u&&((A=this.czmViewer.viewer)==null||A.camera.moveEnd.removeEventListener(u))})}}getClusterStyle(e,i){return e.find(o=>{if(o.value!==void 0)return o.value===i;const r=o.minValue!==void 0?o.minValue<=i:!0,s=o.maxValue!==void 0?o.maxValue>=i:!0;return r&&s})}_addEntities(e,i,o,r,s,a,l,c){const h=C.Cartesian3.fromDegrees(o[0],o[1],o[2]??0);e.add({position:h,label:{text:i,scale:1*this._scaleFactor,font:"16px sans-serif",verticalOrigin:C.VerticalOrigin.BOTTOM,horizontalOrigin:C.HorizontalOrigin.CENTER,pixelOffset:new C.Cartesian2(r[0]*this._scaleFactor,r[1]*this._scaleFactor),heightReference:s,scaleByDistance:a,eyeOffset:new C.Cartesian3(0,0,-10)},billboard:this._clusterImages[l??"SquareH01"].clone(new C.BillboardGraphics),properties:c})}_getPositionLLH(e){const i=C.Cartographic.fromCartesian(e);return[C.Math.toDegrees(i.longitude),C.Math.toDegrees(i.latitude),i.height]}};L(hc,"type",hc.register("ESCesiumViewer",Q.ESEntityCluster.type,hc));let vg=hc;const Ac=class Ac extends Bn{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}}flyTo(n,e){const{sceneObject:i,czmViewer:o}=this;return o.actived?i.flyToParam||i.flyInParam?super.flyTo(n,e):(i.esImageryLayer.flyTo(n&&n),i.flyOverEvent.emit(e,"over",o),!0):!1}flyIn(n,e){const{sceneObject:i,czmViewer:o}=this;return o.actived?i.flyInParam?super.flyIn(n,e):(i.esImageryLayer.flyTo(n&&n),i.flyOverEvent.emit(e,"over",o),!0):!1}};L(Ac,"type",Ac.register("ESCesiumViewer",Zr.type,Ac));let wg=Ac;const fc=class fc extends Tn{constructor(e,i){super(e,i);L(this,"geoPolyline");L(this,"czmWater");if(!i.viewer){console.warn("viewer is undefined!");return}if(!Sn(i.viewer))return;this.geoPolyline=this.dv(new Je(i,e.id)),this.czmWater=this.dv(new Do(i,e.id));const{geoPolyline:s,czmWater:a}=this;this.d(p.track([a,"allowPicking"],[e,"allowPicking"])),this.d(p.track([a,"ground"],[e,"fillGround"])),this.d(p.track([s,"allowPicking"],[e,"allowPicking"])),this.d(p.track([s,"color"],[e,"strokeColor"])),this.d(p.track([s,"width"],[e,"strokeWidth"])),this.d(p.track([s,"ground"],[e,"strokeGround"]));{const l=this.dv(p.createNextAnimateFrameEvent(e.waterColorChanged,e.waterImageChanged,e.frequencyChanged,e.waveVelocityChanged,e.amplitudeChanged,e.specularIntensityChanged,e.waterTypeChanged,e.flowDirectionChanged,e.flowSpeedChanged)),c=()=>{if(e.waterType==="custom")this.updateWater({waterColor:e.waterColor??Q.ESGeoWater.defaults.waterColor,frequency:(e.frequency??Q.ESGeoWater.defaults.frequency)/10,waveVelocity:(e.waveVelocity??Q.ESGeoWater.defaults.waveVelocity)/100,amplitude:(e.amplitude??Q.ESGeoWater.defaults.amplitude)*100,specularIntensity:e.specularIntensity??Q.ESGeoWater.defaults.specularIntensity,flowDirection:e.flowDirection??Q.ESGeoWater.defaults.flowDirection,flowSpeed:e.flowSpeed??Q.ESGeoWater.defaults.flowSpeed,waterImage:e.waterImage??Q.ESGeoWater.defaults.waterImage});else{const h=Object.assign({},td[e.waterType]);h.frequency&&(h.frequency/=10),h.waveVelocity&&(h.waveVelocity/=100),h.amplitude&&(h.amplitude*=100),this.updateWater(h)}};c(),this.d(l.don(c))}{const l=()=>{s.show=!!(e.show&&e.stroked)},c=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.d(c.don(l)),l()}{const l=()=>{a.show=e.show&&e.filled},c=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.filledChanged));this.d(c.don(l)),l()}{const l=()=>{e.points&&e.points.length>=3?(s.positions=[...e.points,e.points[0]],a.points=[...e.points]):(s.positions=e.points&&e.points.length>=2?[...e.points,e.points[0]]:[],a.points=[])};l();const c=this.dv(p.createNextAnimateFrameEvent(e.pointsChanged));this.d(c.don(l))}this.ad(e.editingChanged.don(l=>{a.updateBoundingSphere(l)}))}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):o.points?(Me(r,o,i,o.points,e),!0):!1:!1}updateWater(e){const{czmWater:i}=this;e.waterColor&&i.waterColor!=e.waterColor&&(i.waterColor=e.waterColor),e.specularIntensity!=null&&i.specularIntensity!=e.specularIntensity&&(i.specularIntensity=e.specularIntensity),e.frequency!=null&&i.frequency!=e.frequency&&(i.frequency=e.frequency),e.waveVelocity!=null&&i.animationSpeed!=e.waveVelocity&&(i.animationSpeed=e.waveVelocity),e.amplitude!=null&&i.amplitude!=e.amplitude&&(i.amplitude=e.amplitude),e.flowSpeed!=null&&i.flowSpeed!=e.flowSpeed&&(i.flowSpeed=e.flowSpeed),i.baseWaterImage=e.waterImage,i.stRotation=e.flowDirection}};L(fc,"type",fc.register("ESCesiumViewer",Q.ESGeoWater.type,fc));let bg=fc;const dc=class dc extends Bn{constructor(e,i){super(e,i);L(this,"_czmImagery");if(this._czmImagery=this.dv(new Gr(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmImagery;this.d(p.track([r,"show"],[e,"show"])),this.d(p.track([r,"zIndex"],[e,"zIndex"])),this.d(p.track([r,"rectangle"],[e,"rectangle"])),this.d(p.bind([r,"alpha"],[e,"opacity"])),this.d(p.bind([r,"alpha"],[e,"czmAlpha"])),this.d(p.track([r,"splitDirection"],[e,"splitDirection"])),this.d(p.track([r,"brightness"],[e,"czmBrightness"])),this.d(p.track([r,"contrast"],[e,"czmContrast"])),this.d(p.track([r,"hue"],[e,"czmHue"])),this.d(p.track([r,"saturation"],[e,"czmSaturation"])),this.d(p.track([r,"gamma"],[e,"czmGamma"]));{const s=this.dv(p.createNextAnimateFrameEvent(e.urlChanged,e.accessTokenChanged,e.maximumLevelChanged,e.minimumLevelChanged,e.tileSizeChanged,e.allowPickingChanged,e.rectangleChanged,e.styleChanged,e.schemeChanged)),a=()=>{r.imageryProvider={type:"MVTImageryProvider",url:e.url,accessToken:e.accessToken,maximumLevel:e.maximumLevel,minimumLevel:e.minimumLevel,tileSize:e.tileSize,enablePickFeatures:e.allowPicking,rectangle:e.rectangle,style:e.style,scheme:e.scheme}};a(),this.d(s.don(a))}}get czmImagery(){return this._czmImagery}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmImagery:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s.flyTo(e&&e),o.flyOverEvent.emit(i,"over",r),!0):!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmImagery:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):(s.flyTo(e&&e),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(dc,"type",dc.register("ESCesiumViewer",Kr.type,dc));let _g=dc;class oL extends p.Destroyable{constructor(n,e){super(),this._czmESPipeFence=n,this._sceneObject=e;const i=this._sceneObject,o=this._czmESPipeFence,r=o.czmCustomPrimitive;if(!i.points||i.points.length<2){this.clear(r);return}const s=i.points.length;let a=[],l=[],c=[],h=[],u=[];for(let y=0;y<s-1;y++){const{outlinePionts:m,customPrimitivePoints:w}=this.divideFourPoints(i.points[y],i.points[y+1]);h.push(...w),u.push(...m),c.push(...this.setIndexs(y))}const[A,f,d]=fn({originPosition:h[0]},h),g=this.setFaces(A);a.push(...g.flat());const v=this.setTextureCoordinates(i,o);l.push(...v.flat()),o.computeBoundingBox(),this.updateCustomPrimitive(r,f,a,c,l)}divideFourPoints(n,e){const i=Q.geoHeading(n,e),o=Q.geoDestination(n,this._sceneObject.width/2,90+i),r=Q.geoDestination(n,this._sceneObject.width/2,i-90),s=Q.geoDestination(e,this._sceneObject.width/2,i-90),a=Q.geoDestination(e,this._sceneObject.width/2,90+i),l=[o[0],o[1],o[2]+this._sceneObject.height/2],c=[o[0],o[1],o[2]-this._sceneObject.height/2],h=[r[0],r[1],r[2]+this._sceneObject.height/2],u=[r[0],r[1],r[2]-this._sceneObject.height/2],A=[a[0],a[1],a[2]+this._sceneObject.height/2],f=[a[0],a[1],a[2]-this._sceneObject.height/2],d=[s[0],s[1],s[2]+this._sceneObject.height/2],g=[s[0],s[1],s[2]-this._sceneObject.height/2],v=[[l,h],[l,A],[l,c],[c,f]],y=[[c,u],[h,d],[h,u],[u,g]],m=[[A,f],[A,d],[f,g],[d,g]];return{outlinePionts:[...v,...y,...m],customPrimitivePoints:[c,l,h,u,f,A,d,g]}}setIndexs(n){const e=n*16;return[e+1,e+0,e+3,e+1,e+3,e+2,e+5,e+4,e+7,e+6,e+5,e+7,e+9,e+8,e+11,e+9,e+11,e+10,e+13,e+12,e+15,e+13,e+15,e+14]}setFaces(n){const e=[],i=n.length/8;for(let r=0;r<i;r++){const s=n.slice(8*r,8*(r+1));e.push(s)}return[...e.map(r=>[r[4],r[5],r[1],r[0],r[5],r[6],r[2],r[1],r[6],r[7],r[3],r[2],r[7],r[4],r[0],r[3]]).flat()]}getDistances(n,e){const[i]=fn({originPosition:n[0]},n),o=i.length,r=i.reduce((l,c,h,u)=>{if(h===0)return l.push(0),l;const A=h-1,f=u[A],d=Math.sqrt((f[0]-c[0])*(f[0]-c[0])+(f[1]-c[1])*(f[1]-c[1]));return l.push(l[A]+d),l},[]),s=r[o-1];return e.distances=s,r.map(l=>l/s)}setTextureCoordinates(n,e){if(!n.points||n.points.length<2)return;const i=this.getDistances(n.points,e),o=[];for(let r=1;r<i.length;r++){let s=[];if(r===i.length-1){const a=[1,0,1,1,i[r-1],1,i[r-1],0];s=[...a,...a,...a,...a]}else{const a=[i[r],0,i[r],1,i[r-1],1,i[r-1],0];s=[...a,...a,...a,...a]}o.push(s)}return o}updateCustomPrimitive(n,e,i,o,r){n.modelMatrix=e,n.indexTypedArray=new Uint16Array(o),n.attributes={position:{typedArray:new Float32Array(i),componentsPerAttribute:3},a_st:{typedArray:new Float32Array(r),componentsPerAttribute:2}}}clear(n){n.indexTypedArray=void 0,n.modelMatrix=void 0,n.attributes=void 0}}const pc=class pc extends an{constructor(e,i){super(e,i);L(this,"_line",this.dv(new Je(this.czmViewer,this.sceneObject.id)));L(this,"_czmTexture",this.ad(new At(this.czmViewer,this.sceneObject.id)));L(this,"_czmCustomPrimitive",this.dv(new st(this.czmViewer,this.sceneObject.id)));L(this,"_distances",this.dv(p.react(0)));if(!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmTexture,s=this._line;this.d(p.bind([s,"positions"],[e,"points"])),this.d(p.track([this.line,"allowPicking"],[e,"allowPicking"])),this.d(p.track([this.line,"color"],[e,"strokeColor"])),this.d(p.track([this.line,"width"],[e,"strokeWidth"])),this.d(p.track([this.line,"ground"],[e,"strokeGround"]));{const h=this.dv(p.createNextAnimateFrameEvent(this.sceneObject.pointsChanged,this.sceneObject.strokeWidthChanged,this.sceneObject.strokeColorChanged,this.sceneObject.heightChanged,this.sceneObject.widthChanged,this.sceneObject.fillColorChanged));this.dv(new p.ObjResettingWithEvent(h,()=>new oL(this,this.sceneObject)))}{const h=()=>{s.show=e.show&&e.stroked};h();const u=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.d(u.don(h))}this.bindCustomPrimitive(e);let a="";const l=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/path/singleArrow.png"),c=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/path/multipleArrows.png");{const h=()=>{e.materialMode==="multipleArrows"||e.materialMode==="blue"?a=c:a=l,r.uri=a,this._czmCustomPrimitive.uniformMap={u_image:{type:"texture",id:r.id},u_stScale:[this.distances/50,1],u_speed:[.02,0],u_color:e.fillColor}};h(),this.dispose(this.sceneObject.fillColorChanged.disposableOn(h)),this.d(this.sceneObject.materialModeChanged.don(h)),this.d(this.distancesChanged.don(h))}}get line(){return this._line}czmTexture(){return this._czmTexture}get czmCustomPrimitive(){return this._czmCustomPrimitive}get distances(){return this._distances.value}set distances(e){this._distances.value=e}get distancesChanged(){return this._distances.changed}computeBoundingBox(){const e=this._czmCustomPrimitive.computeLocalAxisedBoundingBoxFromAttribute("position");if(!e)return;const{min:i,max:o}=e;this._czmCustomPrimitive.setLocalAxisedBoundingBox(i,o)}bindCustomPrimitive(e){const i=this._czmCustomPrimitive;this.d(p.track([i,"allowPicking"],[e,"allowPicking"])),i.renderState={depthTest:{enabled:!0},cull:{enabled:!1,face:1029},depthMask:!1,blending:{enabled:!0,equationRgb:32774,equationAlpha:32774,functionSourceRgb:770,functionSourceAlpha:1,functionDestinationRgb:771,functionDestinationAlpha:771}},i.vertexShaderSource=` in vec3 position;
|
|
3983
|
+
`};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(this.heightChanged,this.positionsChanged));this.dispose(a.disposableOn(s))}this.dispose(this.flyToEvent.disposableOn(s=>{this.czmCustomPrimitive.flyTo(s)}));{const s=()=>{const l=r.value?r.value:1,c=this.height??lr.defaults.height,{textureSizeInMeters:h=lr.defaults.textureSizeInMeters}=this,{textureUri:u=lr.defaults.textureUri}=this;o.uniformMap={u_image:{type:"image",uri:u},u_stScale:[l/h[0],c/h[1]],u_speed:this.textureMoveSpeed??lr.defaults.textureMoveSpeed,u_color:this.textureColor??lr.defaults.textureColor}};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(this.textureColorChanged,this.textureMoveSpeedChanged,this.textureSizeInMetersChanged,this.heightChanged,this.textureSizeInMetersChanged,this.textureUriChanged,r.changed));this.dispose(a.disposableOn(s))}}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get czmCustomPrimitive(){return this._czmCustomPrimitive}get geoBoundingSphere(){return this._geoBoundingSphere.value}get geoBoundingSphereChanged(){return this._geoBoundingSphere.changed}};L(lr,"defaults",{show:!0,allowPicking:!1,positions:[],height:1e3,textureSizeInMeters:[500,500],textureUri:"${earthsdk3-assets-script-dir}/assets/img/location.png",textureMoveSpeed:[0,.3],textureColor:[1,1,1,1]});let Zo=lr;(t=>{t.createDefaultProps=()=>({show:void 0,allowPicking:void 0,positions:p.reactPositions(void 0),height:void 0,textureSizeInMeters:p.reactArrayWithUndefined(void 0),textureUri:void 0,textureMoveSpeed:p.reactArrayWithUndefined(void 0),textureColor:p.reactArrayWithUndefined(void 0)})})(Zo||(Zo={})),p.extendClassProps(Zo.prototype,Zo.createDefaultProps);const oc=class oc extends an{constructor(e,i){super(e,i);L(this,"_czmPolygonFence");L(this,"_czmPolygon");if(this._czmPolygonFence=this.disposeVar(new Zo(i,e.id)),this._czmPolygon=this.dv(new Q.ESGeoPolygon),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmPolygonFence,s=this._czmPolygon;i.add(s),this.dispose(()=>i.delete(s)),s.filled=!1,this.d(p.track([s,"points"],[e,"points"])),this.d(p.track([s,"stroked"],[e,"stroked"])),this.d(p.track([s,"strokeColor"],[e,"strokeColor"])),this.d(p.track([s,"strokeWidth"],[e,"strokeWidth"])),this.d(p.track([s,"strokeGround"],[e,"strokeGround"]));{const a={danger:{color:[.99,.98,.57,1],image:"01.png"},checkerboard:{color:[.88,.98,.99,1],image:"02.png"},warning:{color:[1,.93,.58,1],image:"03.png"},cord:{color:[.91,.87,.56,1],image:"04.png"},scanline:{color:[.43,.78,.8,1],image:"05.png"},honeycomb:{color:[.28,.84,.86,1],image:"06.png"},gradientColor:{color:[1,1,1,1],image:"07.png"}},l=(A,f)=>{switch(A){case"danger":return{textureMoveSpeed:[.05,0],textureSizeInMeters:[2,2]};case"checkerboard":return{textureMoveSpeed:[0,0],textureSizeInMeters:[2,2]};case"warning":return{textureMoveSpeed:[-.05,0],textureSizeInMeters:[2,2]};case"cord":return{textureMoveSpeed:[-.05,0],textureSizeInMeters:[2,2]};case"scanline":return{textureMoveSpeed:[0,0],textureSizeInMeters:[f,f]};case"honeycomb":return{textureMoveSpeed:[0,0],textureSizeInMeters:[f,f]};case"gradientColor":return{textureMoveSpeed:[0,0],textureSizeInMeters:[f,f]};default:return{textureMoveSpeed:[0,0],textureSizeInMeters:[f*.5,2]}}},c="${earthsdk3-assets-script-dir}/assets/img/fence/",h=()=>{const A=e.materialMode,f=a[A];if(!f)return;r.textureUri=c+f.image,r.textureColor=A!=="gradientColor"?f.color:e.fillColor;const{textureMoveSpeed:d,textureSizeInMeters:g}=l(A,e.height);r.textureMoveSpeed=d,r.textureSizeInMeters=g};h();const u=this.disposeVar(p.createNextAnimateFrameEvent(e.materialModeChanged,e.heightChanged,e.fillColorChanged));this.dispose(u.disposableOn(h))}{this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"height"],[e,"height"]));{const a=()=>{r.show=e.show&&e.filled};a();const l=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.filledChanged));this.dispose(l.don(a))}}}get czmPolygonFence(){return this._czmPolygonFence}get czmPolygon(){return this._czmPolygon}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmPolygonFence:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(dn(r,o,i,e,s.czmCustomPrimitive),!0):!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmPolygonFence:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):(dn(r,o,i,e,s.czmCustomPrimitive),!0):!1}};L(oc,"type",oc.register("ESCesiumViewer",Q.ESPolygonFence.type,oc));let fg=oc;const ac=class ac extends an{constructor(e,i){super(e,i);L(this,"_czmESRectangle");if(this._czmESRectangle=this.disposeVar(new pi(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmESRectangle;this.dispose(p.bind([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.track([r,"ground"],[e,"fillGround"])),this.dispose(p.track([r,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([r,"outlineTranslucent"],[e,"outlineTranslucent"])),this.dispose(p.bind([r,"height"],[e,"height"])),this.dispose(p.bind([r,"extrudedHeight"],[e,"extrudedHeight"])),this.dispose(p.bind([r,"rectangle"],[e,"rectangle"])),this.dispose(p.bind([r,"stRotation"],[e,"stRotation"])),this.dispose(p.bind([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"outline"],[e,"stroked"])),this.dispose(p.track([r,"outlineColor"],[e,"strokeColor"]));{const s=()=>{const a=e.points;if(a&&a.length>=2){const{minPos:l,maxPos:c}=Q.getMinMaxCorner(a);r.rectangle=[l[0],l[1],c[0],c[1]],r.height=a[1][2],r.extrudedHeight=a[0][2]}else r.rectangle=void 0,r.height=0,r.extrudedHeight=0};s(),this.dispose(e.pointsChanged.disposableOn(()=>s()))}{const s=()=>{e.filled?r.material={type:"Color",color:e.fillColor}:r.material={type:"Color",color:[1,1,1,0]}};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.fillStyleChanged,e.filledChanged));this.dispose(a.disposableOn(s))}}get czmESRectangle(){return this._czmESRectangle}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmESRectangle:s}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);if(s.rectangle){const a=[[s.rectangle[0],s.rectangle[1],s.height],[s.rectangle[2],s.rectangle[3],s.height],[s.rectangle[0],s.rectangle[1],s.extrudedHeight],[s.rectangle[2],s.rectangle[3],s.extrudedHeight]];return Me(r,o,i,a,e),!0}return!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmESRectangle:s}=this;if(!r.actived)return!1;if(o.flyInParam)return super.flyIn(e,i);if(s.rectangle){const a=[[s.rectangle[0],s.rectangle[1],s.height],[s.rectangle[2],s.rectangle[3],s.height],[s.rectangle[0],s.rectangle[1],s.extrudedHeight],[s.rectangle[2],s.rectangle[3],s.extrudedHeight]];return Me(r,o,i,a,e),!0}return!1}};L(ac,"type",ac.register("ESCesiumViewer",Q.ESRectangle.type,ac));let dg=ac;const uo=class uo extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));const o=e.viewer;if(!o){console.warn("viewer is undefined!");return}const r=Q.ESSceneObject.context.createEnvStrReact([this,"imageUrl"],uo.defaults.imageUrl),s=this.disposeVar(p.react(void 0)),a=()=>{const m=C.Material.fromType(C.Material.ImageType);m.uniforms.image=r.value,m.uniforms.repeat=Xe(this.repeat??uo.defaults.repeat),s.value=m};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(r.changed,this.repeatChanged));this.dispose(l.disposableOn(a));const c=(m,w)=>{const _=new C.PolylineMaterialAppearance({material:w,renderState:{depthTest:{enabled:!1}}});_.renderState.depthMask=!1;const E=[];if(m.length<2)return;E.push(new C.GeometryInstance({geometry:new C.GroundPolylineGeometry({positions:m,width:this.width??uo.defaults.width,vertexFormat:C.PolylineMaterialAppearance.VERTEX_FORMAT,arcType:C.ArcType[this.arcType??uo.defaults.arcType]}),id:this}));const T=new bi({geometryInstances:E,appearance:_,asynchronous:!1,allowPicking:this.allowPicking??uo.defaults.allowPicking,compressVertices:!1});return T.ESSceneObjectID=i,T};let h;const u=new C.BoundingSphere,A=()=>{h&&(o.scene.primitives.remove(h),h=void 0)};this.dispose(A);const f=()=>{if(A(),!this.positions)return;const m=Zt(this.positions);if(m.length<2||!s.value){u.radius=-1;return}C.BoundingSphere.fromPoints(m,u),h=c(m,s.value),h&&o.scene.primitives.add(h)},d=()=>{h&&(h.show=this.show??!0)};this.dispose(this.flyToEvent.disposableOn(m=>{if(e.actived&&u.radius>0){const w=Ue(u.center);w&&Be(o,w,u.radius*4,void 0,m)}})),f(),d();const g=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.widthChanged,s.changed,this.arcTypeChanged,this.allowPickingChanged));this.dispose(g.disposableOn(()=>{f(),d()}));const v=this.disposeVar(p.createNextAnimateFrameEvent(this.showChanged));this.dispose(v.disposableOn(()=>{d()}));const{extensions:y}=e;if(!y){console.warn("!extensions");return}}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}};L(uo,"defaults",{show:!0,positions:[],width:50,arcType:"GEODESIC",imageUrl:"${earthsdk3-assets-script-dir}/assets/img/roads/4.jpg",repeat:[100,1],allowPicking:!1});let Xo=uo;(t=>{t.createDefaultProps=()=>({show:void 0,positions:p.reactPositions(void 0),width:void 0,arcType:void 0,imageUrl:void 0,repeat:void 0,allowPicking:void 0})})(Xo||(Xo={})),p.extendClassProps(Xo.prototype,Xo.createDefaultProps);const sc=class sc extends an{constructor(e,i){super(e,i);L(this,"_czmESRoad");if(this._czmESRoad=this.disposeVar(new Xo(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmESRoad;{const s=()=>{r.show=e.show&&e.stroked};s();const a=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.dispose(a.don(s))}this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"width"],[e,"width"])),this.dispose(p.track([r,"arcType"],[e,"arcType"])),this.dispose(p.track([r,"imageUrl"],[e,"imageUrl"])),this.dispose(p.track([r,"repeat"],[e,"repeat"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"]))}get czmESRoad(){return this._czmESRoad}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmESRoad:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmESRoad:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(sc,"type",sc.register("ESCesiumViewer",jr.type,sc));let pg=sc;const lc=class lc extends Q.EngineObject{constructor(e,i){super(e,i);L(this,"_customDiv");if(this._customDiv=this.disposeVar(new Q.ESCustomDiv(e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._customDiv;i.add(r),this.dispose(()=>i.delete(r)),r.instanceClass=class extends p.Destroyable{constructor(a,l,c){super(),this._subContainer=a;const h=document.createElement("div");this._subContainer.appendChild(h),this.dispose(()=>this._subContainer.removeChild(h));{const g=()=>{h.style.display=e.show??Q.ESScale.defaults.show?"block":"none"};g(),e.dispose(e.showChanged.disposableOn(g))}h.style.position="fixed",h.style.width="125px",h.style.height="30px",h.style.border="1px solid rgba(49,50,56,.8)",h.style.padding="0 5px",h.style.backgroundColor="rgba(37,38,42,.8)",h.style.borderRadius="15px",h.style.pointerEvents="auto",h.style.transition=" right 0.4s linear";{const g=()=>{h.style.bottom=`${e.cssPosition?e.cssPosition[0]:Q.ESScale.defaults.cssPosition[0]}px`,e.screenPosition==="left"?(h.style.right="auto",h.style.left=`${e.cssPosition?e.cssPosition[1]:Q.ESScale.defaults.cssPosition[1]}px`):(h.style.left="auto",h.style.right=`${e.cssPosition?e.cssPosition[1]:Q.ESScale.defaults.cssPosition[1]}px`)},v=this.disposeVar(p.createNextAnimateFrameEvent(e.cssPositionChanged,e.screenPositionChanged));g(),this.dispose(v.disposableOn(()=>g()))}const u=document.createElement("div");h.appendChild(u),this.dispose(()=>h.removeChild(u)),u.style.width="125px",u.style.display="inline-block",u.style.textAlign="center",u.style.fontSize="14px",u.style.fontWeight="lighter",u.style.lineHeight="30px",u.style.color="#fff",u.innerHTML="1000km";const A=document.createElement("div");h.appendChild(A),this.dispose(()=>h.removeChild(A)),A.style.borderRight="1px solid #fff",A.style.borderLeft="1px solid #fff",A.style.borderBottom="1px solid #fff",A.style.position="absolute",A.style.height="10px",A.style.top="15px",A.style.width="75px",A.style.left="30px";const f=()=>{const g=i.viewerLegend.legend.computedLengthInMeters;if(e.show===!1||g&&g>1e6)h.style.display="none";else{h.style.display="block";const v=i.viewerLegend.legend.computedLengthInStr;v&&(u.innerHTML=v);const y=i.viewerLegend.legend.computedLengthInPixels;if(y){A.style.width=`${y}px`;const m=(135-y)/2;A.style.left=`${m}px`}}};f();const d=setInterval(()=>{f()},200);this.dispose(()=>clearInterval(d))}}}get customDiv(){return this._customDiv}};L(lc,"type",lc.register("ESCesiumViewer",Q.ESScale.type,lc));let mg=lc;const uc=class uc extends Ge{constructor(e,i){super(e,i);L(this,"_czmCustomPrimitive");if(this._czmCustomPrimitive=this.disposeVar(new st(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmCustomPrimitive;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.track([r,"position"],[e,"position"])),this.dispose(p.track([r,"scale"],[e,"scale"])),this.dispose(p.track([r,"viewDistanceRange"],[e,"viewDistanceRange"])),this.dispose(p.track([r,"viewDistanceDebug"],[e,"viewDistanceDebug"])),this.dispose(p.track([r,"maximumScale"],[e,"maximumScale"])),this.dispose(p.track([r,"minimumScale"],[e,"minimumScale"])),this.dispose(p.track([r,"pixelSize"],[e,"pixelSize"])),this.dispose(p.track([r,"showSceneScale"],[e,"showSceneScale"])),this.dispose(p.track([r,"modelMatrix"],[e,"modelMatrix"])),this.dispose(p.track([r,"cull"],[e,"cull"])),this.dispose(p.track([r,"boundingVolume"],[e,"boundingVolume"])),this.dispose(p.track([r,"pass"],[e,"pass"])),this.dispose(p.track([r,"primitiveType"],[e,"primitiveType"])),this.dispose(p.track([r,"renderState"],[e,"renderState"])),this.dispose(p.track([r,"vertexShaderSource"],[e,"vertexShaderSource"])),this.dispose(p.track([r,"fragmentShaderSource"],[e,"fragmentShaderSource"])),this.dispose(p.track([r,"uniformMap"],[e,"uniformMap"])),this.dispose(p.track([r,"attributes"],[e,"attributes"])),this.dispose(p.track([r,"indexTypedArray"],[e,"indexTypedArray"])),this.dispose(p.track([r,"attributesJson"],[e,"attributesJson"])),this.dispose(p.track([r,"indexTypedArrayJson"],[e,"indexTypedArrayJson"])),this.dispose(p.track([r,"count"],[e,"count"])),this.dispose(p.track([r,"offset"],[e,"offset"])),this.dispose(p.track([r,"instanceCount"],[e,"instanceCount"])),this.dispose(p.track([r,"localPosition"],[e,"localPosition"])),this.dispose(p.track([r,"localScale"],[e,"localScale"])),this.dispose(p.track([r,"localModelMatrix"],[e,"localModelMatrix"])),this.dispose(p.track([r,"debugShowBoundingVolume"],[e,"debugShowBoundingVolume"])),this.dispose(p.track([r,"debugOverlappingFrustums"],[e,"debugOverlappingFrustums"])),this.dispose(p.track([r,"occlude"],[e,"occlude"])),this.dispose(p.track([r,"castShadows"],[e,"castShadows"])),this.dispose(p.track([r,"receiveShadows"],[e,"receiveShadows"])),this.dispose(p.track([r,"executeInClosestFrustum"],[e,"executeInClosestFrustum"])),this.dispose(p.track([r,"pickOnly"],[e,"pickOnly"])),this.dispose(p.track([r,"depthForTranslucentClassification"],[e,"depthForTranslucentClassification"]));{const s=()=>{if(e.localRotation){const a=[...e.localRotation];a[0]-=90,r.localRotation=a}else r.localRotation=[-90,0,0]};s(),this.dispose(e.localRotationChanged.disposableOn(s))}}get czmCustomPrimitive(){return this._czmCustomPrimitive}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmCustomPrimitive:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(dn(r,o,i,e,s,!0),!0):!1}};L(uc,"type",uc.register("ESCesiumViewer",Yr.type,uc));let gg=uc;const cc=class cc extends XA{constructor(e,i){super(e,i);L(this,"czmGeoPolyline");L(this,"czmWater");if(!i.viewer){console.warn("viewer is undefined!");return}if(!Sn(i.viewer))return;this.czmGeoPolyline=this.dv(new Je(i,e.id)),this.czmWater=this.dv(new Do(i,e.id));const{czmGeoPolyline:s,czmWater:a}=this;this.d(p.track([a,"allowPicking"],[e,"allowPicking"])),this.d(p.track([a,"ground"],[e,"fillGround"])),this.d(p.track([s,"allowPicking"],[e,"allowPicking"])),this.d(p.track([s,"color"],[e,"strokeColor"])),this.d(p.track([s,"width"],[e,"strokeWidth"])),this.d(p.track([s,"ground"],[e,"strokeGround"]));{const l=this.dv(p.createNextAnimateFrameEvent(e.waterColorChanged,e.frequencyChanged,e.waveVelocityChanged,e.amplitudeChanged,e.specularIntensityChanged,e.waterTypeChanged,e.flowDirectionChanged,e.flowSpeedChanged)),c=()=>{if(e.waterType==="custom")this.updateWater({waterColor:e.waterColor??Q.ESDynamicWater.defaults.waterColor,frequency:(e.frequency??Q.ESDynamicWater.defaults.frequency)/10,waveVelocity:(e.waveVelocity??Q.ESDynamicWater.defaults.waveVelocity)/100,amplitude:(e.amplitude??Q.ESDynamicWater.defaults.amplitude)*100,specularIntensity:e.specularIntensity??Q.ESDynamicWater.defaults.specularIntensity,flowDirection:e.flowDirection??Q.ESDynamicWater.defaults.flowDirection,flowSpeed:e.flowSpeed??Q.ESDynamicWater.defaults.flowSpeed});else{const h=Object.assign({},td[e.waterType]);h.frequency&&(h.frequency/=10),h.waveVelocity&&(h.waveVelocity/=100),h.amplitude&&(h.amplitude*=100),this.updateWater(h)}};c(),this.d(l.don(c))}{const l=()=>{s.show=e.show&&e.stroked},c=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.d(c.don(l)),l()}{const l=()=>{a.show=!!(e.show&&e.filled)},c=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.filledChanged));this.d(c.don(l)),l()}{const l=()=>{if(!e.points||e.points&&e.points.length<=2){s.positions=[],a.points=[];return}if(e.scale&&e.scale.some(A=>A===0)){console.warn("缩放属性(scale)不能设置值为0");return}const h=e.points.map(A=>[A[0],A[1],0]),[u]=mr({originPosition:e.position,originRotation:e.rotation,originScale:e.scale,initialRotationMode:"XForwardZUp"},h);s.positions=[...u,u[0]],a.points=[...u]};l();const c=this.dv(p.createNextAnimateFrameEvent(e.pointsChanged,e.positionChanged,e.rotationChanged,e.scaleChanged));this.d(c.don(l))}}visibleDistance(e,i){var o;if((o=i.viewer)!=null&&o.camera&&e.show){const r=Q.getDistancesFromPositions([e.position,_n(i.viewer.camera)],"NONE")[0];let s=!1;e.minVisibleDistance<e.maxVisibleDistance?s=e.minVisibleDistance<r&&r<e.maxVisibleDistance:e.maxVisibleDistance==0&&(s=r>e.minVisibleDistance),this.czmGeoPolyline&&(this.czmGeoPolyline.show=e.show&&e.stroked&&s),this.czmWater&&(this.czmWater.show=e.show&&e.filled&&s)}}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmWater:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s!=null&&s.points?(Me(r,o,i,s.points,e,!0),!0):!1:!1}updateWater(e){const{czmWater:i}=this;i&&(e.waterColor&&i.waterColor!=e.waterColor&&(i.waterColor=e.waterColor),e.specularIntensity!=null&&i.specularIntensity!=e.specularIntensity&&(i.specularIntensity=e.specularIntensity),e.frequency!=null&&i.frequency!=e.frequency&&(i.frequency=e.frequency),e.waveVelocity!=null&&i.animationSpeed!=e.waveVelocity&&(i.animationSpeed=e.waveVelocity),e.amplitude!=null&&i.amplitude!=e.amplitude&&(i.amplitude=e.amplitude),e.flowSpeed!=null&&i.flowSpeed!=e.flowSpeed&&(i.flowSpeed=e.flowSpeed),i.baseWaterImage=e.waterImage,i.stRotation=e.flowDirection)}};L(cc,"type",cc.register("ESCesiumViewer",Q.ESDynamicWater.type,cc));let yg=cc;const hc=class hc extends Bn{constructor(e,i){super(e,i);L(this,"_scaleFactor",.6);L(this,"_urlData",this.dv(p.react(void 0)));L(this,"_dataSource",new C.CustomDataSource);L(this,"_clusterImages",{});L(this,"_clusterImageAttribute",{});L(this,"_clusterImageUrl","");if(!i.viewer){console.warn("viewer is undefined!");return}this._clusterImageUrl=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/ESPoi2D/clusterSpirit.png"),(async()=>{var a;const r=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/ESPoi2D/clusterJson.json");await fetch(r).then(l=>l.json()).then(l=>{this._clusterImageAttribute=l}).catch(l=>{console.error(l)});for(const l in this._clusterImageAttribute)if(Object.prototype.hasOwnProperty.call(this._clusterImageAttribute,l)){const c=this._clusterImageAttribute[l];this._clusterImages[l]=new C.BillboardGraphics({image:this._clusterImageUrl,verticalOrigin:C.VerticalOrigin.BOTTOM,horizontalOrigin:C.HorizontalOrigin.CENTER,scale:1*this._scaleFactor,width:c.imageSize[0],height:c.imageSize[1],pixelOffset:new C.Cartesian2(-c.anchorPixelOffset[0]*this._scaleFactor,-c.anchorPixelOffset[1]*this._scaleFactor),imageSubRegion:new C.BoundingRectangle(...c.imagePixelOffset,...c.imageSize)})}const s=this._dataSource;(a=i.viewer)==null||a.dataSources.add(s),this.d(()=>{var l;(l=i.viewer)==null||l.dataSources.remove(s)}),s.clustering.enabled=s.clustering.clusterBillboards=s.clustering.clusterLabels=s.clustering.clusterPoints=!0,this.d(p.track([s.clustering,"pixelRange"],[e,"pixelRange"])),this.d(p.track([s.clustering,"minimumClusterSize"],[e,"minimumClusterSize"])),this.d(p.track([s.clustering,"show"],[e,"show"]));{const l=()=>{if(e.url)do{if(typeof e.url=="object"&&e.url.url){fetch(Q.ESSceneObject.context.getStrFromEnv(e.url.url)).then(c=>c.json()).then(c=>{this.urlData=c}).catch(c=>{console.warn("ESEntityCluster数据加载失败",c)});break}if(typeof e.url=="object"){this.urlData=e.url;break}if(Q.isJSONString(e.url)){this.urlData=JSON.parse(e.url);break}fetch(Q.ESSceneObject.getStrFromEnv(e.url)).then(c=>c.json()).then(c=>{this.urlData=c}).catch(c=>{console.warn("ESEntityCluster数据加载失败",c)})}while(!1)};l(),this.d(e.urlChanged.don(l))}{const l=this.dv(p.createNextAnimateFrameEvent(this.urlDataChanged,e.heightReferenceChanged)),c=this;this.updateEntityCluster(c),this.d(l.don(()=>{this.updateEntityCluster(c)}))}{const l=(c,h)=>{c!=null&&((c==null?void 0:c.nonCluster.mode)!=(h==null?void 0:h.nonCluster.mode)||(c==null?void 0:c.nonCluster.style)!=(h==null?void 0:h.nonCluster.style))?this.updateEntityCluster(this):this.updateStyle()};this.d(e.styleChanged.don((c,h)=>l(c,h)))}})()}get urlData(){return this._urlData.value}set urlData(e){this._urlData.value=e}get urlDataChanged(){return this._urlData.changed}async updateEntityCluster(e){var f,d,g,v,y,m,w,_,E,T,P,k;const{czmViewer:i,_dataSource:o,sceneObject:r}=e;if(!((f=i.viewer)==null?void 0:f.scene))return;const a=o.entities,l=new C.NearFarScalar(100,1,1e3,1),c=r.heightReference=="None"?C.HeightReference.NONE:r.heightReference=="CLAMP_TO_GROUND"?C.HeightReference.CLAMP_TO_GROUND:C.HeightReference.CLAMP_TO_TERRAIN;a.removeAll();const h=(d=this.czmViewer.viewer)==null?void 0:d.scene.postUpdate.addEventListener(()=>{o._entityCluster._billboardCollection&&(o._entityCluster._billboardCollection._billboards.forEach(D=>{D.id.billboard.imageSubRegion=void 0}),h&&h())}),u=r.style??Q.ESEntityCluster.defaults.style;this._clusterImages[((g=u.nonCluster)==null?void 0:g.mode)??"SquareH01"].heightReference=c,this._clusterImages[((v=u.nonCluster)==null?void 0:v.mode)??"SquareH01"].scaleByDistance=l;const A=[-this._clusterImageAttribute[((y=u.nonCluster)==null?void 0:y.mode)??"SquareH01"].anchorPixelOffset[0]+this._clusterImageAttribute[((m=u.nonCluster)==null?void 0:m.mode)??"SquareH01"].textPixelOffset[0],-this._clusterImageAttribute[((w=u.nonCluster)==null?void 0:w.mode)??"SquareH01"].anchorPixelOffset[1]-this._clusterImageAttribute[((_=u.nonCluster)==null?void 0:_.mode)??"SquareH01"].textPixelOffset[1]];if(this.urlData.type==="FeatureCollection")for(let D=0;D<this.urlData.features.length;D++){const B=this.urlData.features[D];if(B.geometry.type=="Point")this._addEntities(a,B.properties.name??(D+1).toString(),B.geometry.coordinates,A,c,l,(E=u.nonCluster)==null?void 0:E.mode,B.properties);else if(B.geometry.type=="MultiPoint")for(let S=0;S<B.geometry.coordinates.length;S++)this._addEntities(a,B.properties.name??(D+1).toString(),B.geometry.coordinates[S],A,c,l,(T=u.nonCluster)==null?void 0:T.mode,B.properties);else console.log("POI聚合只能加载Point和MultiPoint类型的数据,未加载数据类型为:",B.geometry.type)}else if(this.urlData.type=="GeometryCollection")for(let D=0;D<this.urlData.geometries.length;D++){const B=this.urlData.geometries[D];if(B.type=="Point")this._addEntities(a,B.name??(D+1).toString(),B.coordinates,A,c,l,(P=u.nonCluster)==null?void 0:P.mode,B.properties);else if(B.type=="MultiPoint")for(let S=0;S<B.coordinates.length;S++)this._addEntities(a,B.name??(D+1).toString(),B.coordinates[S],A,c,l,(k=u.nonCluster)==null?void 0:k.mode,B.properties);else console.log("POI聚合只能加载Point和MultiPoint类型的数据,未加载数据类型为:",B.type)}this.updateStyle(c,l)}async updateStyle(e,i){var l,c;const o=this,{_dataSource:r,sceneObject:s}=this,a=((l=s.style)==null?void 0:l.cluster)??Q.ESEntityCluster.defaults.style.cluster;r.entities.values.forEach(h=>{C.Entity.prototype&&(h.ESSceneObjectID=s.id)}),r.clustering.clusterEvent.addEventListener(async function(h,u){if(u.label.ESSceneObjectID=u.billboard.ESSceneObjectID=u.point.ESSceneObjectID=s.id,u.label.show=!0,u.label.font="16px sans-serif",u.label.scale=1*o._scaleFactor,u.label.verticalOrigin=C.VerticalOrigin.BOTTOM,u.label.horizontalOrigin=C.HorizontalOrigin.CENTER,u.label.eyeOffset=new C.Cartesian3(0,0,-10),e&&(u.label.heightReference=e),i&&(u.label.scaleByDistance=i),u.billboard.id=u.label.id,u.billboard.show=!0,u.billboard.scale=1*o._scaleFactor,u.billboard.verticalOrigin=C.VerticalOrigin.BOTTOM,u.billboard.horizontalOrigin=C.HorizontalOrigin.CENTER,e&&(u.billboard.heightReference=e),i&&(u.billboard.scaleByDistance=i),a){const A=o.getClusterStyle(a,h.length).mode,f=[-o._clusterImageAttribute[A].anchorPixelOffset[0]+o._clusterImageAttribute[A].textPixelOffset[0],-o._clusterImageAttribute[A].anchorPixelOffset[1]-o._clusterImageAttribute[A].textPixelOffset[1]];u.label.pixelOffset=new C.Cartesian2(f[0]*o._scaleFactor,f[1]*o._scaleFactor),u.billboard.width=o._clusterImageAttribute[A].imageSize[0],u.billboard.height=o._clusterImageAttribute[A].imageSize[1],u.billboard.pixelOffset=new C.Cartesian2(-o._clusterImageAttribute[A].anchorPixelOffset[0]*o._scaleFactor,-o._clusterImageAttribute[A].anchorPixelOffset[1]*o._scaleFactor),u.billboard.setImage(A,o._clusterImageUrl),u.billboard.setImageSubRegion(A,new C.BoundingRectangle(...o._clusterImageAttribute[A].imagePixelOffset,...o._clusterImageAttribute[A].imageSize))}});{const h=()=>{const A=r.clustering.pixelRange;r.clustering.pixelRange=0,r.clustering.pixelRange=A};h();let u=(c=this.czmViewer.viewer)==null?void 0:c.camera.moveEnd.addEventListener(()=>{h()});this.d(()=>{var A;u&&((A=this.czmViewer.viewer)==null||A.camera.moveEnd.removeEventListener(u))})}}getClusterStyle(e,i){return e.find(o=>{if(o.value!==void 0)return o.value===i;const r=o.minValue!==void 0?o.minValue<=i:!0,s=o.maxValue!==void 0?o.maxValue>=i:!0;return r&&s})}_addEntities(e,i,o,r,s,a,l,c){const h=C.Cartesian3.fromDegrees(o[0],o[1],o[2]??0);e.add({position:h,label:{text:i,scale:1*this._scaleFactor,font:"16px sans-serif",verticalOrigin:C.VerticalOrigin.BOTTOM,horizontalOrigin:C.HorizontalOrigin.CENTER,pixelOffset:new C.Cartesian2(r[0]*this._scaleFactor,r[1]*this._scaleFactor),heightReference:s,scaleByDistance:a,eyeOffset:new C.Cartesian3(0,0,-10)},billboard:this._clusterImages[l??"SquareH01"].clone(new C.BillboardGraphics),properties:c})}_getPositionLLH(e){const i=C.Cartographic.fromCartesian(e);return[C.Math.toDegrees(i.longitude),C.Math.toDegrees(i.latitude),i.height]}};L(hc,"type",hc.register("ESCesiumViewer",Q.ESEntityCluster.type,hc));let vg=hc;const Ac=class Ac extends Bn{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}}flyTo(n,e){const{sceneObject:i,czmViewer:o}=this;return o.actived?i.flyToParam||i.flyInParam?super.flyTo(n,e):(i.esImageryLayer.flyTo(n&&n),i.flyOverEvent.emit(e,"over",o),!0):!1}flyIn(n,e){const{sceneObject:i,czmViewer:o}=this;return o.actived?i.flyInParam?super.flyIn(n,e):(i.esImageryLayer.flyTo(n&&n),i.flyOverEvent.emit(e,"over",o),!0):!1}};L(Ac,"type",Ac.register("ESCesiumViewer",Zr.type,Ac));let wg=Ac;const fc=class fc extends Tn{constructor(e,i){super(e,i);L(this,"geoPolyline");L(this,"czmWater");if(!i.viewer){console.warn("viewer is undefined!");return}if(!Sn(i.viewer))return;this.geoPolyline=this.dv(new Je(i,e.id)),this.czmWater=this.dv(new Do(i,e.id));const{geoPolyline:s,czmWater:a}=this;this.d(p.track([a,"allowPicking"],[e,"allowPicking"])),this.d(p.track([a,"ground"],[e,"fillGround"])),this.d(p.track([s,"allowPicking"],[e,"allowPicking"])),this.d(p.track([s,"color"],[e,"strokeColor"])),this.d(p.track([s,"width"],[e,"strokeWidth"])),this.d(p.track([s,"ground"],[e,"strokeGround"]));{const l=this.dv(p.createNextAnimateFrameEvent(e.waterColorChanged,e.waterImageChanged,e.frequencyChanged,e.waveVelocityChanged,e.amplitudeChanged,e.specularIntensityChanged,e.waterTypeChanged,e.flowDirectionChanged,e.flowSpeedChanged)),c=()=>{if(e.waterType==="custom")this.updateWater({waterColor:e.waterColor??Q.ESGeoWater.defaults.waterColor,frequency:(e.frequency??Q.ESGeoWater.defaults.frequency)/10,waveVelocity:(e.waveVelocity??Q.ESGeoWater.defaults.waveVelocity)/100,amplitude:(e.amplitude??Q.ESGeoWater.defaults.amplitude)*100,specularIntensity:e.specularIntensity??Q.ESGeoWater.defaults.specularIntensity,flowDirection:e.flowDirection??Q.ESGeoWater.defaults.flowDirection,flowSpeed:e.flowSpeed??Q.ESGeoWater.defaults.flowSpeed,waterImage:e.waterImage??Q.ESGeoWater.defaults.waterImage});else{const h=Object.assign({},td[e.waterType]);h.frequency&&(h.frequency/=10),h.waveVelocity&&(h.waveVelocity/=100),h.amplitude&&(h.amplitude*=100),this.updateWater(h)}};c(),this.d(l.don(c))}{const l=()=>{s.show=!!(e.show&&e.stroked)},c=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.d(c.don(l)),l()}{const l=()=>{a.show=e.show&&e.filled},c=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.filledChanged));this.d(c.don(l)),l()}{const l=()=>{e.points&&e.points.length>=3?(s.positions=[...e.points,e.points[0]],a.points=[...e.points]):(s.positions=e.points&&e.points.length>=2?[...e.points,e.points[0]]:[],a.points=[])};l();const c=this.dv(p.createNextAnimateFrameEvent(e.pointsChanged));this.d(c.don(l))}this.ad(e.editingChanged.don(l=>{a.updateBoundingSphere(l)}))}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):o.points?(Me(r,o,i,o.points,e),!0):!1:!1}updateWater(e){const{czmWater:i}=this;e.waterColor&&i.waterColor!=e.waterColor&&(i.waterColor=e.waterColor),e.specularIntensity!=null&&i.specularIntensity!=e.specularIntensity&&(i.specularIntensity=e.specularIntensity),e.frequency!=null&&i.frequency!=e.frequency&&(i.frequency=e.frequency),e.waveVelocity!=null&&i.animationSpeed!=e.waveVelocity&&(i.animationSpeed=e.waveVelocity),e.amplitude!=null&&i.amplitude!=e.amplitude&&(i.amplitude=e.amplitude),e.flowSpeed!=null&&i.flowSpeed!=e.flowSpeed&&(i.flowSpeed=e.flowSpeed),i.baseWaterImage=e.waterImage,i.stRotation=e.flowDirection}};L(fc,"type",fc.register("ESCesiumViewer",Q.ESGeoWater.type,fc));let bg=fc;const dc=class dc extends Bn{constructor(e,i){super(e,i);L(this,"_czmImagery");if(this._czmImagery=this.dv(new Gr(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmImagery;this.d(p.track([r,"show"],[e,"show"])),this.d(p.track([r,"zIndex"],[e,"zIndex"])),this.d(p.track([r,"rectangle"],[e,"rectangle"])),this.d(p.track([r,"alpha"],[e,"opacity"])),this.d(p.track([r,"splitDirection"],[e,"splitDirection"])),this.d(p.track([r,"brightness"],[e,"czmBrightness"])),this.d(p.track([r,"contrast"],[e,"czmContrast"])),this.d(p.track([r,"hue"],[e,"czmHue"])),this.d(p.track([r,"saturation"],[e,"czmSaturation"])),this.d(p.track([r,"gamma"],[e,"czmGamma"]));{const s=this.dv(p.createNextAnimateFrameEvent(e.urlChanged,e.accessTokenChanged,e.maximumLevelChanged,e.minimumLevelChanged,e.tileSizeChanged,e.allowPickingChanged,e.rectangleChanged,e.styleChanged,e.schemeChanged)),a=()=>{r.imageryProvider={type:"MVTImageryProvider",url:e.url,accessToken:e.accessToken,maximumLevel:e.maximumLevel,minimumLevel:e.minimumLevel,tileSize:e.tileSize,enablePickFeatures:e.allowPicking,rectangle:e.rectangle,style:e.style,scheme:e.scheme}};a(),this.d(s.don(a))}}get czmImagery(){return this._czmImagery}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmImagery:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s.flyTo(e&&e),o.flyOverEvent.emit(i,"over",r),!0):!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmImagery:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):(s.flyTo(e&&e),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(dc,"type",dc.register("ESCesiumViewer",Kr.type,dc));let _g=dc;class oL extends p.Destroyable{constructor(n,e){super(),this._czmESPipeFence=n,this._sceneObject=e;const i=this._sceneObject,o=this._czmESPipeFence,r=o.czmCustomPrimitive;if(!i.points||i.points.length<2){this.clear(r);return}const s=i.points.length;let a=[],l=[],c=[],h=[],u=[];for(let y=0;y<s-1;y++){const{outlinePionts:m,customPrimitivePoints:w}=this.divideFourPoints(i.points[y],i.points[y+1]);h.push(...w),u.push(...m),c.push(...this.setIndexs(y))}const[A,f,d]=fn({originPosition:h[0]},h),g=this.setFaces(A);a.push(...g.flat());const v=this.setTextureCoordinates(i,o);l.push(...v.flat()),o.computeBoundingBox(),this.updateCustomPrimitive(r,f,a,c,l)}divideFourPoints(n,e){const i=Q.geoHeading(n,e),o=Q.geoDestination(n,this._sceneObject.width/2,90+i),r=Q.geoDestination(n,this._sceneObject.width/2,i-90),s=Q.geoDestination(e,this._sceneObject.width/2,i-90),a=Q.geoDestination(e,this._sceneObject.width/2,90+i),l=[o[0],o[1],o[2]+this._sceneObject.height/2],c=[o[0],o[1],o[2]-this._sceneObject.height/2],h=[r[0],r[1],r[2]+this._sceneObject.height/2],u=[r[0],r[1],r[2]-this._sceneObject.height/2],A=[a[0],a[1],a[2]+this._sceneObject.height/2],f=[a[0],a[1],a[2]-this._sceneObject.height/2],d=[s[0],s[1],s[2]+this._sceneObject.height/2],g=[s[0],s[1],s[2]-this._sceneObject.height/2],v=[[l,h],[l,A],[l,c],[c,f]],y=[[c,u],[h,d],[h,u],[u,g]],m=[[A,f],[A,d],[f,g],[d,g]];return{outlinePionts:[...v,...y,...m],customPrimitivePoints:[c,l,h,u,f,A,d,g]}}setIndexs(n){const e=n*16;return[e+1,e+0,e+3,e+1,e+3,e+2,e+5,e+4,e+7,e+6,e+5,e+7,e+9,e+8,e+11,e+9,e+11,e+10,e+13,e+12,e+15,e+13,e+15,e+14]}setFaces(n){const e=[],i=n.length/8;for(let r=0;r<i;r++){const s=n.slice(8*r,8*(r+1));e.push(s)}return[...e.map(r=>[r[4],r[5],r[1],r[0],r[5],r[6],r[2],r[1],r[6],r[7],r[3],r[2],r[7],r[4],r[0],r[3]]).flat()]}getDistances(n,e){const[i]=fn({originPosition:n[0]},n),o=i.length,r=i.reduce((l,c,h,u)=>{if(h===0)return l.push(0),l;const A=h-1,f=u[A],d=Math.sqrt((f[0]-c[0])*(f[0]-c[0])+(f[1]-c[1])*(f[1]-c[1]));return l.push(l[A]+d),l},[]),s=r[o-1];return e.distances=s,r.map(l=>l/s)}setTextureCoordinates(n,e){if(!n.points||n.points.length<2)return;const i=this.getDistances(n.points,e),o=[];for(let r=1;r<i.length;r++){let s=[];if(r===i.length-1){const a=[1,0,1,1,i[r-1],1,i[r-1],0];s=[...a,...a,...a,...a]}else{const a=[i[r],0,i[r],1,i[r-1],1,i[r-1],0];s=[...a,...a,...a,...a]}o.push(s)}return o}updateCustomPrimitive(n,e,i,o,r){n.modelMatrix=e,n.indexTypedArray=new Uint16Array(o),n.attributes={position:{typedArray:new Float32Array(i),componentsPerAttribute:3},a_st:{typedArray:new Float32Array(r),componentsPerAttribute:2}}}clear(n){n.indexTypedArray=void 0,n.modelMatrix=void 0,n.attributes=void 0}}const pc=class pc extends an{constructor(e,i){super(e,i);L(this,"_line",this.dv(new Je(this.czmViewer,this.sceneObject.id)));L(this,"_czmTexture",this.ad(new At(this.czmViewer,this.sceneObject.id)));L(this,"_czmCustomPrimitive",this.dv(new st(this.czmViewer,this.sceneObject.id)));L(this,"_distances",this.dv(p.react(0)));if(!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmTexture,s=this._line;this.d(p.bind([s,"positions"],[e,"points"])),this.d(p.track([this.line,"allowPicking"],[e,"allowPicking"])),this.d(p.track([this.line,"color"],[e,"strokeColor"])),this.d(p.track([this.line,"width"],[e,"strokeWidth"])),this.d(p.track([this.line,"ground"],[e,"strokeGround"]));{const h=this.dv(p.createNextAnimateFrameEvent(this.sceneObject.pointsChanged,this.sceneObject.strokeWidthChanged,this.sceneObject.strokeColorChanged,this.sceneObject.heightChanged,this.sceneObject.widthChanged,this.sceneObject.fillColorChanged));this.dv(new p.ObjResettingWithEvent(h,()=>new oL(this,this.sceneObject)))}{const h=()=>{s.show=e.show&&e.stroked};h();const u=this.dv(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged));this.d(u.don(h))}this.bindCustomPrimitive(e);let a="";const l=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/path/singleArrow.png"),c=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/path/multipleArrows.png");{const h=()=>{e.materialMode==="multipleArrows"||e.materialMode==="blue"?a=c:a=l,r.uri=a,this._czmCustomPrimitive.uniformMap={u_image:{type:"texture",id:r.id},u_stScale:[this.distances/50,1],u_speed:[.02,0],u_color:e.fillColor}};h(),this.dispose(this.sceneObject.fillColorChanged.disposableOn(h)),this.d(this.sceneObject.materialModeChanged.don(h)),this.d(this.distancesChanged.don(h))}}get line(){return this._line}czmTexture(){return this._czmTexture}get czmCustomPrimitive(){return this._czmCustomPrimitive}get distances(){return this._distances.value}set distances(e){this._distances.value=e}get distancesChanged(){return this._distances.changed}computeBoundingBox(){const e=this._czmCustomPrimitive.computeLocalAxisedBoundingBoxFromAttribute("position");if(!e)return;const{min:i,max:o}=e;this._czmCustomPrimitive.setLocalAxisedBoundingBox(i,o)}bindCustomPrimitive(e){const i=this._czmCustomPrimitive;this.d(p.track([i,"allowPicking"],[e,"allowPicking"])),i.renderState={depthTest:{enabled:!0},cull:{enabled:!1,face:1029},depthMask:!1,blending:{enabled:!0,equationRgb:32774,equationAlpha:32774,functionSourceRgb:770,functionSourceAlpha:1,functionDestinationRgb:771,functionDestinationAlpha:771}},i.vertexShaderSource=` in vec3 position;
|
|
3984
3984
|
in vec2 a_st;
|
|
3985
3985
|
out vec2 v_st;
|
|
3986
3986
|
void main()
|
|
@@ -4142,10 +4142,10 @@ void main()
|
|
|
4142
4142
|
{
|
|
4143
4143
|
out_FragColor = u_color;
|
|
4144
4144
|
}
|
|
4145
|
-
`,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},st,t)}class pQ extends p.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const s=i=this._getStartInfo(r.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(o.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const s=this._getStartInfo(r.pointerEvent);if(!s||s.currentPlaneType==="none")break;const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[ri.rotationNum[a]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(p.createProcessingFromAsyncFunc(async(n,e,i)=>{const o=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:s,offsetY:a}=r.pointerEvent,l=[s,a],{currentPlaneType:c}=i;if(c==="none")return;const h=this.owner.getPlane(c);if(!i.currentV)return;const u=h.pick(l);if(!u||!this.owner.cartesian)return;const A=C.Cartesian3.subtract(i.currentV,this.owner.cartesian,new C.Cartesian3);C.Cartesian3.normalize(A,A);const f=C.Cartesian3.subtract(u,this.owner.cartesian,new C.Cartesian3);if(C.Cartesian3.normalize(f,f),!h.normal||!h.origin)return;const d=_v(A,f,h.normal),g=_v(h.origin,A,h.normal),v=_v(h.origin,f,h.normal);{const y=[...this.owner.selfRotation];y[ri.rotationNum[c]]=i.startRotation+d,this.owner.selfRotation=y,o.circleStartRotation=g,o.circleEndRotation=v}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await p.step(n,r=>new Promise((s,a)=>{r.disposer.dispose(a),r.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(n,e,i,o,r){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const c=C.Cartesian3.distance(s,l),h=r/4,u=h*3/128;if(!(c>=h-u&&c<=h+u))return;const f=C.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=f||(n.currentPlaneType=i,n.currentD2c=f,n.currentV=l,n.startRotation=a[ri.rotationNum[i]])}_getStartInfo(n){var h;const{czmViewer:e}=this.owner,i=(h=e.viewer)==null?void 0:h.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Ri(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:s}=n,a=[r,s],l=n.pointerId,c={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(c,i,"heading",a,o),this._pickPlane(c,i,"pitch",a,o),this._pickPlane(c,i,"roll",a,o),c}}function _v(t,n,e){const i=C.Cartesian3.cross(n,t,new C.Cartesian3);if(i.equals(C.Cartesian3.ZERO))return 0;C.Cartesian3.normalize(i,i);const o=C.Cartesian3.dot(i,e);let r=Math.acos(C.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const sa=class sa extends kn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(p.react("none")));L(this,"_movingPlaneType",this.disposeVar(p.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new cQ(this)),pitch:this.disposeVar(new hQ(this)),roll:this.disposeVar(new AQ(this))});L(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new pQ(this)})),this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&dt(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new Ht(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(p.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(p.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(p.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=at({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=C.Matrix4.toArray(o))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const o=this.ad(new Ps(e));this.dispose(p.track([o,"position"],[this,"position"])),this.dispose(p.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(p.track([o,"debug"],[this,"debug"])),this.dispose(p.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=sa.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[sa.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const s=this.movingPlaneType===i,a=this.hoveredPlaneType===i,c=[0,0,0,s||a?1:.8];c[sa.rotationNum[i]]=1,o.color=c};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};L(sa,"rotationNum",{heading:0,pitch:1,roll:2}),L(sa,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let ri=sa;(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),rotation:p.reactArray([0,0,0]),selfRotation:p.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(ri||(ri={})),p.extendClassProps(ri.prototype,ri.createDefaultProps);const la=class la extends p.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??la.defaults.positions[0],this.stopPosition??la.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??la.defaults.positions[0],n??la.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new Je(n,e));o.arcType="RHUMB";const r=this.ad(new Un(n,e));this.ad(p.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(p.track([r,"allowPicking"],[this,"allowPicking"]));{const s=()=>{o.show=r.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{o.width=this.width/2,r.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{o.color=r.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{o.positions=this.positions,r.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};L(la,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let jo=la;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(t.defaults.positions),width:10,color:p.reactArray([1,0,0,1])})})(jo||(jo={})),p.extendClassProps(jo.prototype,jo.createDefaultProps);class or extends kn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(p.react(!1)),moved:this.ad(p.react(!1)),constraintMode:this.disposeVar(p.react("none")),originPosition:this.disposeVar(p.reactArray([0,0,0])),originHeading:this.disposeVar(p.react(0)),originDimensions:this.disposeVar(p.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(p.reactArray([0,0,0])),movingPosition:this.disposeVar(p.reactArray([0,0,0])),targetPosition:this.disposeVar(p.reactArray([0,0,0])),targetHeading:this.disposeVar(p.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new p.Processing((i,o,r)=>{const s=[0,0,0],a=new C.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const c=Zn(p.getDomEventCurrentTargetPos(l.pointerEvent));if(!Aa(e.viewer.scene,c,this._opInfo.originPosition.value[2],a))return;ca(a,s),this._opInfo.constraintMode.value==="x"?po(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?po(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,s,s):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=s,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const h=[0,0,0];Q.geoRhumbDestination(s,r,o,h),this._opInfo.targetPosition.value=h;let u=this.scale[0],A=this.scale[1];const f=Q.geoDistance(h,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...h];const d=this._opInfo.originDimensions.value[0]/100;f!=0&&this._opInfo.constraintMode.value==="y"&&(f>0?u+=d:u-=d),f!=0&&this._opInfo.constraintMode.value==="x"&&(f>0?A+=d:A-=d),u<=0&&(u+=d),A<=0&&(A+=d),this.scale=[u??1,A??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new p.Processing(()=>{const i=new C.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const s=Zn(p.getDomEventCurrentTargetPos(r.pointerEvent));if(!jc(e.viewer.scene,dt(this._opInfo.originPosition.value),s,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ue(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+a];let c=this.scale[2];const h=o[2]-this._lastPosition[2];this._lastPosition=[...o];const u=this._opInfo.originDimensions.value[0]/100;h!=0&&(h>0?c+=u:c-=u),c<=0&&(c+=u),this.scale=[this.scale[0]??1,this.scale[1]??1,c??1]}})})));const i=e.viewer;if(!i)return;const{scene:o}=i;this.ad(new Vf(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const c=()=>{if(!this._scaleAxis)return;const{zAxis:h,yAxis:u,xAxis:A}=this._scaleAxis,f=this._opInfo.constraintMode.value,d=this._opInfo.step;h.color=[0,0,1,.99],u.color=[0,1,0,.99],A.color=[1,0,0,.99],f==="x"?A.color=d?[1,1,0,.8]:[1,1,0,.99]:f==="y"?u.color=d?[1,1,0,.8]:[1,1,0,.99]:f==="z"&&(h.color=d?[1,1,0,.8]:[1,1,0,.99])};c(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(c)),this.dispose(this._opInfo.step.changed.disposableOn(c))}{const c=()=>{if(!this._scaleAxis)return;const{position:u=or.defaults.position}=this,{zAxis:A,yAxis:f,xAxis:d}=this._scaleAxis;A.startPosition=f.startPosition=d.startPosition=u;const[g,v,y]=u;A.stopPosition=[g,v,y+this._opInfo.originDimensions.value[2]];const m=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[0],90);m&&(d.stopPosition=m);const w=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[1],0);w&&(f.stopPosition=w)};c();const h=this.ad(p.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(h.don(c))}{const c=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((h,u)=>h===this._opInfo.targetPosition.value[u])){this._opInfo.moved.value=!0;return}};c(),this.dispose(this._opInfo.originHeading.changed.disposableOn(c)),this.dispose(this._opInfo.originPosition.changed.disposableOn(c)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(c)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(c))}const r=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=this.disposeVar(p.createProcessingFromAsyncFunc(async c=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",c.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await p.step(c,async h=>{const u=()=>{const d=[...this.position??or.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d};h.disposer.dispose((u(),this.positionChanged.disposableOn(u)));const A={constraintMode:"none",startDragPos:[0,0,0]},f=d=>{if(!this.position)return;const g={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};If(d,o,g,this.axisSnapPixelSize,A),this._opInfo.constraintMode.value=A.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=A.startDragPos};h.disposer.dispose(e.pointerMoveEvent.disposableOn(d=>{d.pointerEvent&&f(d.pointerEvent)})),await p.step(h,d=>new Promise((g,v)=>{d.disposer.dispose(v),d.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&f(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&A.constraintMode!=="none"&&g()}))}))}),this._opInfo.step.value=!1,await p.step(c,async h=>{if(e.incrementDisabledInputStack(),h.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const u=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),A=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,u,A),h.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),h.disposer.dispose(()=>s.cancel()));await p.step(h,u=>new Promise((A,f)=>{u.disposer.dispose(f),u.disposer.dispose(e.pointerUpEvent.don(()=>{A()})),u.disposer.dispose(e.pointerOutEvent.don(()=>{A()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?a.restart():a.isRunning&&a.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new jo(e));return o.width=10,this.ad(p.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),scale:p.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(or||(or={})),p.extendClassProps(or.prototype,or.createDefaultProps);const Ao=class Ao extends hn{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new p.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(p.react(!1)));L(this,"_status",this.disposeVar(p.react("None")));L(this,"_positionsChanged",this.ad(new p.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:o,deleteCount:r,items:s}of i){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=o;a<o+r;++a)this.editingPoints.get(a).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(p.nextAnimateFrame(()=>{var o;((o=i.pointerEvent)==null?void 0:o.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??Ao.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((o,r)=>o.every((s,a)=>{const l=this.editingPoints.get(r);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??Ao.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new Je(e));this.ad(p.track([i,"color"],[this,"polylineColor"])),this.ad(p.track([i,"width"],[this,"polylineWidth"])),this.ad(p.track([i,"show"],[this,"polylineShow"])),this.ad(p.track([i,"arcType"],[this,"polylineArcType"])),this.ad(p.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,r.push(s);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new p.CursorInfo(e.container,p.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}o==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):o==="Modifying"||o==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):o==="None"&&(i.text="",i.show=!1)}}))}};L(Ao,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(Ao,"defaults",{...hn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Ao.baseImageUrl+"point-green.png",otherControlPointImageUrl:Ao.baseImageUrl+"point-yellow.png"});let Gn=Ao;(t=>{t.createDefaultProps=()=>({...hn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:p.reactArray([1,1,1,1]),polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,firstControlPointImageUrl:t.baseImageUrl+"point-green.png",otherControlPointImageUrl:t.baseImageUrl+"point-yellow.png",hideCursorInfo:!1,middlePointShow:!0})})(Gn||(Gn={})),p.extendClassProps(Gn.prototype,Gn.createDefaultProps);let mQ=0;class XS extends p.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_id",mQ++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const o=this._menuPoi=this.ad(new Ca(e.czmViewer));o.enabled=!1,this.ad(p.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,o.position=s,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(o.title=`控制点${s}`,s===1?o.imageUri=e.firstControlPointImageUrl??Gn.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??Gn.defaults.otherControlPointImageUrl)};r(),this.dispose(e.editingPoints.changedEvent.disposableOn(r))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get id(){return this._id}get menuPoi(){return this._menuPoi}}class $S extends XS{constructor(n,e){super(n,e)}}class Pt extends Gn{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new p.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new ii(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Pt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Pt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(p.step(o,async r=>{const s=r.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await r.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new $S(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=p.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(p.step(o,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new gQ(this,r)));const h=a.disposer.disposeVar(new vQ(this,r));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>h.do())),await a.promise(new Promise(u=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(A=>{A?(r++,u(!0)):u(!1)})),a.disposer.dispose(h.overEvent.disposableOnce(A=>{A?(r--,u(!0)):u(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>u(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...Gn.createDefaultProps()})})(Pt||(Pt={})),p.extendClassProps(Pt.prototype,Pt.createDefaultProps);class gQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));const{placeEditing:o}=e;let r=new $S(e,void 0);e.editingPoints.splice(i,0,r);const s=()=>{(e.debug??Pt.defaults.debug)&&console.log("delete currentPosEditor");const c=e.editingPoints.indexOf(r);if(c===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(c,1)};if(o.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(p.track([r,"position"],[o,"position"])),o.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!a&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{a=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function yQ(t,n){const e=t.editingPoints,i=n-1;return i<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(i,1),!0)}class vQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_doEvent",this.disposeVar(new p.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(yQ(e,i)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class YS extends Pt{constructor(n){super(n),this.loop=!1}}class JS extends Pt{constructor(n){super(n),this.loop=!0}}class gf extends XS{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new ui(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??tt.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const o=()=>{if(!(n.enabled??tt.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const s=n.editingPoints.indexOf(this);if(s===-1)break;const a=n.editingPoints.length;if(a===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??tt.defaults.loop)&&s+1>=a)break;const c=this.position;if(!c)break;let h=(s+1)%a;const A=n.editingPoints.get(h).position;if(!A)break;const f=Mf(c,A);if(!f)break;f[2]-=n.czmViewer.editingHeightOffset??0,i.position=f;const d=n.editingPoints.length<(n.maxPointsNum??tt.defaults.maxPointsNum);i.enabled=d,i.show=d;return}while(!1);i.enabled=!1,i.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??tt.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const s=i.position?[...i.position]:void 0;s&&(s[2]+=n.czmViewer.editingHeightOffset??0);let a=new gf(n,s);n.editingPoints.splice(r+1,0,a),n.modify(a)}))}}}}class tt extends Gn{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"translationEditing");{const o=this.ad(p.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new p.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new wQ(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new rr(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??tt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??tt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(p.step(o,async s=>{const a=s.disposer,l=a.ad(new bQ(this));return a.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),a.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),a.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>l.modify(h))),await s.promise(new Promise(h=>{a.dispose(l.overEvent.disposableOnce(u=>{h(u)}))}))})),r===-1){(this.debug??tt.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??tt.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??tt.defaults.loop;const a=this.editingPoints.get(r-1).position;if(!a)return;let l=r%this.editingPoints.length;const h=this.editingPoints.get(l).position;if(!h)return;const u=Mf(a,h);if(!u)return;u&&(u[2]+=this.czmViewer.editingHeightOffset??0);let A=new gf(this,u);this.editingPoints.splice(r,0,A)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new gf(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...Gn.createDefaultProps(),moveWithFirstPosition:!1})})(tt||(tt={})),p.extendClassProps(tt.prototype,tt.createDefaultProps);class wQ extends p.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,o)=>{if(i===void 0||o===void 0)return;var r=[i[0]-o[0],i[1]-o[1],i[2]-o[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),c=l.position;c!==void 0&&(l.position=[c[0]+r[0],c[1]+r[1],c[2]+r[2]])}})}}class bQ extends p.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const o=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(o);const r=s=>{o(),e.status="Modifying_Point",i=new _Q(e,s),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((s,a)=>{if(a==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(a==="modify")r(s);else if(a==="add"){const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else a==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${a})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class _Q extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:o}=this._modifying;if(o.enabled=!0,o.heading=0,this.dispose(()=>{o.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");o.position=this._posEditor.position,this.dispose(p.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class jS extends tt{constructor(n){super(n),this.loop=!1}}class eE extends tt{constructor(n){super(n),this.loop=!0}}class Ts extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([90,0,0]),distance:p.react(1)})})(Ts||(Ts={})),p.extendClassProps(Ts.prototype,Ts.createDefaultProps);class ea extends tt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),distance:p.react(0)})})(ea||(ea={})),p.extendClassProps(ea.prototype,ea.createDefaultProps);class tE extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class nE extends tt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Is extends Pt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Is||(Is={})),p.extendClassProps(Is.prototype,Is.createDefaultProps);class ks extends tt{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(ks||(ks={})),p.extendClassProps(ks.prototype,ks.createDefaultProps);class iE extends ea{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class rn extends Q.EngineObject{constructor(e,i,o){super(e,i,o??!0);L(this,"_supportEditing",this.disposeVar(p.react(!0)));L(this,"_currentEditing",this.disposeVar(p.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Pt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof ii&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Rc=class Rc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ii(e));this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(Rc,"type",Rc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,Rc));let Cv=Rc;const Uc=class Uc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ri(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(Uc,"type",Uc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,Uc));let xv=Uc;const Oc=class Oc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new or(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(Oc,"type",Oc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,Oc));let Sv=Oc;const Lc=class Lc extends rn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new rr(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const s=n[r];Reflect.has(s,"position")?o.push(s.position):s.points&&o.push(...s.points)}i.position=Q.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(!(!r||!s)){var a=fn({originPosition:s},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const c=fn({originPosition:s},[l.position])[0][0];l.position=mr({originPosition:s},[[c[0]+a[0],c[1]+a[1],c[2]+a[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const c=fn({originPosition:s},l.points)[0];l.points=mr({originPosition:s},c.map(h=>[h[0]+a[0],h[1]+a[1],h[2]+a[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var s=fn({originPosition:r},[o])[0][0];const a=fn({originPosition:r},n.points)[0];n.points=mr({originPosition:r},a.map(l=>[l[0]+s[0],l[1]+s[1],l[2]+s[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(Lc,"type",Lc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,Lc));let yf=Lc;const zc=class zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ts(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const o=dt(n.position);if(C.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=Ri(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!Q.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(zc,"type",zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,zc));let Ev=zc;const Qc=class Qc extends rn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new ea(e));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const s=dt(n.position);if(C.Cartesian3.ZERO.equals(s)||!e.viewer)return;i.distance=Ri(e.viewer.scene,s,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const s=()=>i.positions=n.points??[];s(),this.ad(n.pointsChanged.don(()=>!i.enabled&&s())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Qc,"type",Qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Qc));let Pv=Qc;const Vc=class Vc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new JS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Vc,"type",Vc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Vc));let Tv=Vc;const Hc=class Hc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new eE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Hc,"type",Hc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Hc));let Iv=Hc;const Nc=class Nc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new YS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Nc,"type",Nc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Nc));let kv=Nc;const Gc=class Gc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new jS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Gc,"type",Gc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Gc));let Fv=Gc;const Wc=class Wc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new tE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Wc,"type",Wc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Wc));let Bv=Wc;const qc=class qc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new nE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(qc,"type",qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,qc));let Mv=qc;const Kc=class Kc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Is(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Kc,"type",Kc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Kc));let Dv=Kc;const Zc=class Zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ks(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Zc,"type",Zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,Zc));let Rv=Zc;const Xc=class Xc extends rn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new iE(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),s=Reflect.has(n,"height"),a=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let c=Q.getMinMaxCorner(n.points).center,h=[...c],u=l?n.points[0][2]:0;a?r?h[2]=n.extrudedHeight:h[2]=n.height+u:(s&&(c[2]=n.height),r&&(h[2]=n.extrudedHeight)),i.startPosition=c,i.distance=h[2]-c[2],i.moveWithFirstPosition=!1;let A=[...c];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(a?(n.points=n.points.map(f=>[f[0],f[1],f[2]+i.positions[0][2]-A[2]]),r?n.extrudedHeight=i.positions[1][2]:s&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(s&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),A=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Xc,"type",Xc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Xc));let Uv=Xc;function rE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o,r=!0)=>{const s=Array.isArray(o)?[...o]:[o],a=i.editingID;e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"start",add:{modes:s}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"end",add:{modes:s}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l));const c=u=>{u.code=="Escape"&&l()};document.body.addEventListener("keydown",c),n.disposer.ad(()=>document.body.removeEventListener("keydown",c));let h=0;do{const u=s[h%s.length],A=await p.step(n,async f=>{const d=f.disposer,g=Q.EngineObject.contextEditing.getEngineObjConstructor(u,e.typeName);if(!g||!i.supportEditingModes().includes(u))return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;const v=new g(i,e);if(d.ad(()=>{!v.isDestroyed()&&v.destroy()}),v.supportEditing)e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(m=>{if(v.isDestroyed()&&m(!1),d.ad(v.toDestroyEvent.don(()=>{console.log(`编辑模式${u}结束`),m(!1)})),r){const w=_=>{_.code=="Space"&&(console.log(`编辑模式${u}结束`),m(!1))};document.body.addEventListener("keydown",w),d.ad(()=>document.body.removeEventListener("keydown",w)),d.ad(e.dblclickEvent.don(()=>m(!0)))}}))});if(r&&A||!r&&h==s.length-1||e.notSupportEditingCount==s.length)break;h++}while(!0)});return t}function oE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r);const s=l=>{l.code=="Escape"&&r()};document.body.addEventListener("keydown",s),n.disposer.ad(()=>document.body.removeEventListener("keydown",s));const a=new yf(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(l=>{a.isDestroyed()&&l(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),l()})),n.disposer.ad(e.dblclickEvent.don(()=>l()))}))});return t}ae.copyright=void 0;try{const t="earthsdk3-cesium",n="3.3.0-beta.7",e="2025-07-24T02:57:02.000Z",i="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="fa273ec9f85c3ff3f0cdf335e7d7c302fe71495c",a=((Date.now()-1753325822e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${a}个小时)
|
|
4145
|
+
`,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},st,t)}class pQ extends p.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const s=i=this._getStartInfo(r.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(o.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const s=this._getStartInfo(r.pointerEvent);if(!s||s.currentPlaneType==="none")break;const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[ri.rotationNum[a]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(p.createProcessingFromAsyncFunc(async(n,e,i)=>{const o=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:s,offsetY:a}=r.pointerEvent,l=[s,a],{currentPlaneType:c}=i;if(c==="none")return;const h=this.owner.getPlane(c);if(!i.currentV)return;const u=h.pick(l);if(!u||!this.owner.cartesian)return;const A=C.Cartesian3.subtract(i.currentV,this.owner.cartesian,new C.Cartesian3);C.Cartesian3.normalize(A,A);const f=C.Cartesian3.subtract(u,this.owner.cartesian,new C.Cartesian3);if(C.Cartesian3.normalize(f,f),!h.normal||!h.origin)return;const d=_v(A,f,h.normal),g=_v(h.origin,A,h.normal),v=_v(h.origin,f,h.normal);{const y=[...this.owner.selfRotation];y[ri.rotationNum[c]]=i.startRotation+d,this.owner.selfRotation=y,o.circleStartRotation=g,o.circleEndRotation=v}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await p.step(n,r=>new Promise((s,a)=>{r.disposer.dispose(a),r.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(n,e,i,o,r){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const c=C.Cartesian3.distance(s,l),h=r/4,u=h*3/128;if(!(c>=h-u&&c<=h+u))return;const f=C.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=f||(n.currentPlaneType=i,n.currentD2c=f,n.currentV=l,n.startRotation=a[ri.rotationNum[i]])}_getStartInfo(n){var h;const{czmViewer:e}=this.owner,i=(h=e.viewer)==null?void 0:h.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Ri(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:s}=n,a=[r,s],l=n.pointerId,c={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(c,i,"heading",a,o),this._pickPlane(c,i,"pitch",a,o),this._pickPlane(c,i,"roll",a,o),c}}function _v(t,n,e){const i=C.Cartesian3.cross(n,t,new C.Cartesian3);if(i.equals(C.Cartesian3.ZERO))return 0;C.Cartesian3.normalize(i,i);const o=C.Cartesian3.dot(i,e);let r=Math.acos(C.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const sa=class sa extends kn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(p.react("none")));L(this,"_movingPlaneType",this.disposeVar(p.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new cQ(this)),pitch:this.disposeVar(new hQ(this)),roll:this.disposeVar(new AQ(this))});L(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new pQ(this)})),this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&dt(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new Ht(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(p.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(p.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(p.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=at({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=C.Matrix4.toArray(o))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const o=this.ad(new Ps(e));this.dispose(p.track([o,"position"],[this,"position"])),this.dispose(p.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(p.track([o,"debug"],[this,"debug"])),this.dispose(p.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=sa.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[sa.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const s=this.movingPlaneType===i,a=this.hoveredPlaneType===i,c=[0,0,0,s||a?1:.8];c[sa.rotationNum[i]]=1,o.color=c};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};L(sa,"rotationNum",{heading:0,pitch:1,roll:2}),L(sa,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let ri=sa;(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),rotation:p.reactArray([0,0,0]),selfRotation:p.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(ri||(ri={})),p.extendClassProps(ri.prototype,ri.createDefaultProps);const la=class la extends p.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??la.defaults.positions[0],this.stopPosition??la.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??la.defaults.positions[0],n??la.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new Je(n,e));o.arcType="RHUMB";const r=this.ad(new Un(n,e));this.ad(p.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(p.track([r,"allowPicking"],[this,"allowPicking"]));{const s=()=>{o.show=r.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{o.width=this.width/2,r.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{o.color=r.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{o.positions=this.positions,r.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};L(la,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let jo=la;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(t.defaults.positions),width:10,color:p.reactArray([1,0,0,1])})})(jo||(jo={})),p.extendClassProps(jo.prototype,jo.createDefaultProps);class or extends kn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(p.react(!1)),moved:this.ad(p.react(!1)),constraintMode:this.disposeVar(p.react("none")),originPosition:this.disposeVar(p.reactArray([0,0,0])),originHeading:this.disposeVar(p.react(0)),originDimensions:this.disposeVar(p.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(p.reactArray([0,0,0])),movingPosition:this.disposeVar(p.reactArray([0,0,0])),targetPosition:this.disposeVar(p.reactArray([0,0,0])),targetHeading:this.disposeVar(p.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new p.Processing((i,o,r)=>{const s=[0,0,0],a=new C.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const c=Zn(p.getDomEventCurrentTargetPos(l.pointerEvent));if(!Aa(e.viewer.scene,c,this._opInfo.originPosition.value[2],a))return;ca(a,s),this._opInfo.constraintMode.value==="x"?po(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?po(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,s,s):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=s,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const h=[0,0,0];Q.geoRhumbDestination(s,r,o,h),this._opInfo.targetPosition.value=h;let u=this.scale[0],A=this.scale[1];const f=Q.geoDistance(h,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...h];const d=this._opInfo.originDimensions.value[0]/100;f!=0&&this._opInfo.constraintMode.value==="y"&&(f>0?u+=d:u-=d),f!=0&&this._opInfo.constraintMode.value==="x"&&(f>0?A+=d:A-=d),u<=0&&(u+=d),A<=0&&(A+=d),this.scale=[u??1,A??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new p.Processing(()=>{const i=new C.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const s=Zn(p.getDomEventCurrentTargetPos(r.pointerEvent));if(!jc(e.viewer.scene,dt(this._opInfo.originPosition.value),s,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ue(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+a];let c=this.scale[2];const h=o[2]-this._lastPosition[2];this._lastPosition=[...o];const u=this._opInfo.originDimensions.value[0]/100;h!=0&&(h>0?c+=u:c-=u),c<=0&&(c+=u),this.scale=[this.scale[0]??1,this.scale[1]??1,c??1]}})})));const i=e.viewer;if(!i)return;const{scene:o}=i;this.ad(new Vf(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const c=()=>{if(!this._scaleAxis)return;const{zAxis:h,yAxis:u,xAxis:A}=this._scaleAxis,f=this._opInfo.constraintMode.value,d=this._opInfo.step;h.color=[0,0,1,.99],u.color=[0,1,0,.99],A.color=[1,0,0,.99],f==="x"?A.color=d?[1,1,0,.8]:[1,1,0,.99]:f==="y"?u.color=d?[1,1,0,.8]:[1,1,0,.99]:f==="z"&&(h.color=d?[1,1,0,.8]:[1,1,0,.99])};c(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(c)),this.dispose(this._opInfo.step.changed.disposableOn(c))}{const c=()=>{if(!this._scaleAxis)return;const{position:u=or.defaults.position}=this,{zAxis:A,yAxis:f,xAxis:d}=this._scaleAxis;A.startPosition=f.startPosition=d.startPosition=u;const[g,v,y]=u;A.stopPosition=[g,v,y+this._opInfo.originDimensions.value[2]];const m=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[0],90);m&&(d.stopPosition=m);const w=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[1],0);w&&(f.stopPosition=w)};c();const h=this.ad(p.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(h.don(c))}{const c=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((h,u)=>h===this._opInfo.targetPosition.value[u])){this._opInfo.moved.value=!0;return}};c(),this.dispose(this._opInfo.originHeading.changed.disposableOn(c)),this.dispose(this._opInfo.originPosition.changed.disposableOn(c)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(c)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(c))}const r=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=this.disposeVar(p.createProcessingFromAsyncFunc(async c=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",c.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await p.step(c,async h=>{const u=()=>{const d=[...this.position??or.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d};h.disposer.dispose((u(),this.positionChanged.disposableOn(u)));const A={constraintMode:"none",startDragPos:[0,0,0]},f=d=>{if(!this.position)return;const g={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};If(d,o,g,this.axisSnapPixelSize,A),this._opInfo.constraintMode.value=A.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=A.startDragPos};h.disposer.dispose(e.pointerMoveEvent.disposableOn(d=>{d.pointerEvent&&f(d.pointerEvent)})),await p.step(h,d=>new Promise((g,v)=>{d.disposer.dispose(v),d.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&f(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&A.constraintMode!=="none"&&g()}))}))}),this._opInfo.step.value=!1,await p.step(c,async h=>{if(e.incrementDisabledInputStack(),h.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const u=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),A=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,u,A),h.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),h.disposer.dispose(()=>s.cancel()));await p.step(h,u=>new Promise((A,f)=>{u.disposer.dispose(f),u.disposer.dispose(e.pointerUpEvent.don(()=>{A()})),u.disposer.dispose(e.pointerOutEvent.don(()=>{A()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?a.restart():a.isRunning&&a.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new jo(e));return o.width=10,this.ad(p.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),scale:p.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(or||(or={})),p.extendClassProps(or.prototype,or.createDefaultProps);const Ao=class Ao extends hn{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new p.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(p.react(!1)));L(this,"_status",this.disposeVar(p.react("None")));L(this,"_positionsChanged",this.ad(new p.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:o,deleteCount:r,items:s}of i){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=o;a<o+r;++a)this.editingPoints.get(a).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(p.nextAnimateFrame(()=>{var o;((o=i.pointerEvent)==null?void 0:o.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??Ao.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((o,r)=>o.every((s,a)=>{const l=this.editingPoints.get(r);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??Ao.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new Je(e));this.ad(p.track([i,"color"],[this,"polylineColor"])),this.ad(p.track([i,"width"],[this,"polylineWidth"])),this.ad(p.track([i,"show"],[this,"polylineShow"])),this.ad(p.track([i,"arcType"],[this,"polylineArcType"])),this.ad(p.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,r.push(s);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new p.CursorInfo(e.container,p.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}o==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):o==="Modifying"||o==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):o==="None"&&(i.text="",i.show=!1)}}))}};L(Ao,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(Ao,"defaults",{...hn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:Ao.baseImageUrl+"point-green.png",otherControlPointImageUrl:Ao.baseImageUrl+"point-yellow.png"});let Gn=Ao;(t=>{t.createDefaultProps=()=>({...hn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:p.reactArray([1,1,1,1]),polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,firstControlPointImageUrl:t.baseImageUrl+"point-green.png",otherControlPointImageUrl:t.baseImageUrl+"point-yellow.png",hideCursorInfo:!1,middlePointShow:!0})})(Gn||(Gn={})),p.extendClassProps(Gn.prototype,Gn.createDefaultProps);let mQ=0;class XS extends p.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_id",mQ++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const o=this._menuPoi=this.ad(new Ca(e.czmViewer));o.enabled=!1,this.ad(p.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,o.position=s,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(o.title=`控制点${s}`,s===1?o.imageUri=e.firstControlPointImageUrl??Gn.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??Gn.defaults.otherControlPointImageUrl)};r(),this.dispose(e.editingPoints.changedEvent.disposableOn(r))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get id(){return this._id}get menuPoi(){return this._menuPoi}}class $S extends XS{constructor(n,e){super(n,e)}}class Pt extends Gn{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new p.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new ii(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Pt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Pt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(p.step(o,async r=>{const s=r.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await r.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new $S(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=p.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(p.step(o,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new gQ(this,r)));const h=a.disposer.disposeVar(new vQ(this,r));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>h.do())),await a.promise(new Promise(u=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(A=>{A?(r++,u(!0)):u(!1)})),a.disposer.dispose(h.overEvent.disposableOnce(A=>{A?(r--,u(!0)):u(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>u(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...Gn.createDefaultProps()})})(Pt||(Pt={})),p.extendClassProps(Pt.prototype,Pt.createDefaultProps);class gQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));const{placeEditing:o}=e;let r=new $S(e,void 0);e.editingPoints.splice(i,0,r);const s=()=>{(e.debug??Pt.defaults.debug)&&console.log("delete currentPosEditor");const c=e.editingPoints.indexOf(r);if(c===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(c,1)};if(o.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(p.track([r,"position"],[o,"position"])),o.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!a&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{a=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function yQ(t,n){const e=t.editingPoints,i=n-1;return i<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(i,1),!0)}class vQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_doEvent",this.disposeVar(new p.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(yQ(e,i)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class YS extends Pt{constructor(n){super(n),this.loop=!1}}class JS extends Pt{constructor(n){super(n),this.loop=!0}}class gf extends XS{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new ui(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??tt.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const o=()=>{if(!(n.enabled??tt.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const s=n.editingPoints.indexOf(this);if(s===-1)break;const a=n.editingPoints.length;if(a===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??tt.defaults.loop)&&s+1>=a)break;const c=this.position;if(!c)break;let h=(s+1)%a;const A=n.editingPoints.get(h).position;if(!A)break;const f=Mf(c,A);if(!f)break;f[2]-=n.czmViewer.editingHeightOffset??0,i.position=f;const d=n.editingPoints.length<(n.maxPointsNum??tt.defaults.maxPointsNum);i.enabled=d,i.show=d;return}while(!1);i.enabled=!1,i.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??tt.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const s=i.position?[...i.position]:void 0;s&&(s[2]+=n.czmViewer.editingHeightOffset??0);let a=new gf(n,s);n.editingPoints.splice(r+1,0,a),n.modify(a)}))}}}}class tt extends Gn{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"translationEditing");{const o=this.ad(p.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new p.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new wQ(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new rr(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??tt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??tt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(p.step(o,async s=>{const a=s.disposer,l=a.ad(new bQ(this));return a.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),a.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),a.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>l.modify(h))),await s.promise(new Promise(h=>{a.dispose(l.overEvent.disposableOnce(u=>{h(u)}))}))})),r===-1){(this.debug??tt.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??tt.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??tt.defaults.loop;const a=this.editingPoints.get(r-1).position;if(!a)return;let l=r%this.editingPoints.length;const h=this.editingPoints.get(l).position;if(!h)return;const u=Mf(a,h);if(!u)return;u&&(u[2]+=this.czmViewer.editingHeightOffset??0);let A=new gf(this,u);this.editingPoints.splice(r,0,A)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new gf(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...Gn.createDefaultProps(),moveWithFirstPosition:!1})})(tt||(tt={})),p.extendClassProps(tt.prototype,tt.createDefaultProps);class wQ extends p.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,o)=>{if(i===void 0||o===void 0)return;var r=[i[0]-o[0],i[1]-o[1],i[2]-o[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),c=l.position;c!==void 0&&(l.position=[c[0]+r[0],c[1]+r[1],c[2]+r[2]])}})}}class bQ extends p.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const o=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(o);const r=s=>{o(),e.status="Modifying_Point",i=new _Q(e,s),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((s,a)=>{if(a==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(a==="modify")r(s);else if(a==="add"){const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else a==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${a})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class _Q extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:o}=this._modifying;if(o.enabled=!0,o.heading=0,this.dispose(()=>{o.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");o.position=this._posEditor.position,this.dispose(p.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class jS extends tt{constructor(n){super(n),this.loop=!1}}class eE extends tt{constructor(n){super(n),this.loop=!0}}class Ts extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([90,0,0]),distance:p.react(1)})})(Ts||(Ts={})),p.extendClassProps(Ts.prototype,Ts.createDefaultProps);class ea extends tt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),distance:p.react(0)})})(ea||(ea={})),p.extendClassProps(ea.prototype,ea.createDefaultProps);class tE extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class nE extends tt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Is extends Pt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Is||(Is={})),p.extendClassProps(Is.prototype,Is.createDefaultProps);class ks extends tt{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(ks||(ks={})),p.extendClassProps(ks.prototype,ks.createDefaultProps);class iE extends ea{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class rn extends Q.EngineObject{constructor(e,i,o){super(e,i,o??!0);L(this,"_supportEditing",this.disposeVar(p.react(!0)));L(this,"_currentEditing",this.disposeVar(p.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Pt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof ii&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Rc=class Rc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ii(e));this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(Rc,"type",Rc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,Rc));let Cv=Rc;const Uc=class Uc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ri(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(Uc,"type",Uc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,Uc));let xv=Uc;const Oc=class Oc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new or(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(Oc,"type",Oc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,Oc));let Sv=Oc;const Lc=class Lc extends rn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new rr(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const s=n[r];Reflect.has(s,"position")?o.push(s.position):s.points&&o.push(...s.points)}i.position=Q.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(!(!r||!s)){var a=fn({originPosition:s},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const c=fn({originPosition:s},[l.position])[0][0];l.position=mr({originPosition:s},[[c[0]+a[0],c[1]+a[1],c[2]+a[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const c=fn({originPosition:s},l.points)[0];l.points=mr({originPosition:s},c.map(h=>[h[0]+a[0],h[1]+a[1],h[2]+a[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var s=fn({originPosition:r},[o])[0][0];const a=fn({originPosition:r},n.points)[0];n.points=mr({originPosition:r},a.map(l=>[l[0]+s[0],l[1]+s[1],l[2]+s[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(Lc,"type",Lc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,Lc));let yf=Lc;const zc=class zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ts(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const o=dt(n.position);if(C.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=Ri(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!Q.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(zc,"type",zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,zc));let Ev=zc;const Qc=class Qc extends rn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new ea(e));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const s=dt(n.position);if(C.Cartesian3.ZERO.equals(s)||!e.viewer)return;i.distance=Ri(e.viewer.scene,s,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const s=()=>i.positions=n.points??[];s(),this.ad(n.pointsChanged.don(()=>!i.enabled&&s())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Qc,"type",Qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Qc));let Pv=Qc;const Vc=class Vc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new JS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Vc,"type",Vc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Vc));let Tv=Vc;const Hc=class Hc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new eE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Hc,"type",Hc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Hc));let Iv=Hc;const Nc=class Nc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new YS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Nc,"type",Nc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Nc));let kv=Nc;const Gc=class Gc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new jS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Gc,"type",Gc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Gc));let Fv=Gc;const Wc=class Wc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new tE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Wc,"type",Wc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Wc));let Bv=Wc;const qc=class qc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new nE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(qc,"type",qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,qc));let Mv=qc;const Kc=class Kc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Is(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Kc,"type",Kc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Kc));let Dv=Kc;const Zc=class Zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ks(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Zc,"type",Zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,Zc));let Rv=Zc;const Xc=class Xc extends rn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new iE(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),s=Reflect.has(n,"height"),a=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let c=Q.getMinMaxCorner(n.points).center,h=[...c],u=l?n.points[0][2]:0;a?r?h[2]=n.extrudedHeight:h[2]=n.height+u:(s&&(c[2]=n.height),r&&(h[2]=n.extrudedHeight)),i.startPosition=c,i.distance=h[2]-c[2],i.moveWithFirstPosition=!1;let A=[...c];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(a?(n.points=n.points.map(f=>[f[0],f[1],f[2]+i.positions[0][2]-A[2]]),r?n.extrudedHeight=i.positions[1][2]:s&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(s&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),A=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Xc,"type",Xc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Xc));let Uv=Xc;function rE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o,r=!0)=>{const s=Array.isArray(o)?[...o]:[o],a=i.editingID;e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"start",add:{modes:s}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"end",add:{modes:s}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l));const c=u=>{u.code=="Escape"&&l()};document.body.addEventListener("keydown",c),n.disposer.ad(()=>document.body.removeEventListener("keydown",c));let h=0;do{const u=s[h%s.length],A=await p.step(n,async f=>{const d=f.disposer,g=Q.EngineObject.contextEditing.getEngineObjConstructor(u,e.typeName);if(!g||!i.supportEditingModes().includes(u))return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;const v=new g(i,e);if(d.ad(()=>{!v.isDestroyed()&&v.destroy()}),v.supportEditing)e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(m=>{if(v.isDestroyed()&&m(!1),d.ad(v.toDestroyEvent.don(()=>{console.log(`编辑模式${u}结束`),m(!1)})),r){const w=_=>{_.code=="Space"&&(console.log(`编辑模式${u}结束`),m(!1))};document.body.addEventListener("keydown",w),d.ad(()=>document.body.removeEventListener("keydown",w)),d.ad(e.dblclickEvent.don(()=>m(!0)))}}))});if(r&&A||!r&&h==s.length-1||e.notSupportEditingCount==s.length)break;h++}while(!0)});return t}function oE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r);const s=l=>{l.code=="Escape"&&r()};document.body.addEventListener("keydown",s),n.disposer.ad(()=>document.body.removeEventListener("keydown",s));const a=new yf(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(l=>{a.isDestroyed()&&l(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),l()})),n.disposer.ad(e.dblclickEvent.don(()=>l()))}))});return t}ae.copyright=void 0;try{const t="earthsdk3-cesium",n="3.3.0-beta.8",e="2025-07-28T06:36:17.000Z",i="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="ad0a610b9e3f50ea29be1e095b6244aff416f9bd",a=((Date.now()-1753684577e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${a}个小时)
|
|
4146
4146
|
%c${o?o+`
|
|
4147
4147
|
`:""}当前网站正在使用${t},此软件版权归${i}所有
|
|
4148
|
-
`;ae.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","
|
|
4148
|
+
`;ae.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","ad0a610b9e3f50ea29be1e095b6244aff416f9bd")},get info(){return l},get date(){return"2025-07-28T06:36:17.000Z"},get author(){return"suplyang"},get version(){return"3.3.0-beta.8"},get name(){return"earthsdk3-cesium"},get commitId(){return"ad0a610b9e3f50ea29be1e095b6244aff416f9bd"},print(){console.info(this.info,`
|
|
4149
4149
|
font-size: 18px;
|
|
4150
4150
|
font-weight: 1000;
|
|
4151
4151
|
line-height: 1;
|