@ino-cesium/common 0.0.21 → 0.0.22-beta.0

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/index.d.ts CHANGED
@@ -212,6 +212,11 @@ declare const initCesiumEvent: (viewer: Cesium.Viewer, eventListener: ICesiumEve
212
212
 
213
213
  declare const numberId: () => string;
214
214
  declare const getInoCesiumBaseUrl: () => any;
215
+ /**
216
+ * 延迟时间
217
+ * @param ms
218
+ */
219
+ declare const delayTime: (ms: number) => Promise<unknown>;
215
220
 
216
221
  declare class Tooltip {
217
222
  static tooltip: Tooltip | null;
@@ -737,5 +742,9 @@ declare class CoordinateTransformer {
737
742
  static wgs84ToBd09(point: CoordinatePoint): CoordinatePoint;
738
743
  }
739
744
 
740
- export { BaseMaterialProperty, BasePrimitive, types as Common, CoordinateTransformer, DefaultViewerOptions, FlyAttitude, Popup, RoamStatus, Tooltip, calcArea, calcBoundingSphereFromPositions, calcCameraHeightFromZoom, calcGeodesicDistance, calcGeodesicDistances, calcLerpPosition, calcPoistionCenter, calcSceneHeightFromPositions, calcSpaceDistance, calcSpaceDistances, calcTerrainHeightFromPositions, calcTriangleArea, calcZoomFromCameraHeight, clacPositionsForParabola, createBottomStatusBar, createEagleEye, createOpenAnim, createRoamHandler, createRollerShutterHandler, createSkyBox, createSkyBoxOnGround, createSplitScreenHandler, flyByRotateOut, flyByRotatePoint, flyToCameraView, flyToCesium3DTile, flyToDataSource, flyToFromSphere, flyToImagery, flyToLnglat, flyToNorth, flyToPosition, flyToRectangleBounds, getCameraView, getCesiumForAutoFitScale, getInoCesiumBaseUrl, getScreenCenterPoint, initCesium, initCesiumEvent, makeGridFromElevationExtrema, makeGridToInstanceForBox, makeGridToInstanceForLine, makeLnglatToPosition, makeLnglatsToLineGeojson, makeLnglatsToPointGeojson, makeLnglatsToPolygonGeojson, makeLnglatsToPositions, makePositionsClose, makePositionsForAntiClockwise, makePositionsForClockwise, makePositionsToLnglats, makePositiontoLnglat, makeYawPitchRollToHeadingPitchRoll, mekeGridPolygonAndHeight, numberId, randomColor, randomPointToGeoJson, randomPolygonToGeoJson, randomPolylineToGeoJson, setCameraAutoBackTiltToZero, setCesiumForAutoFitScale, setGlobeEnabled, setGlobeOpatity, setViewToLnglat, twinkleModel };
745
+ declare const pickPoint: (viewer: Cesium.Viewer) => Promise<unknown>;
746
+ declare const getFeaturesFromTileContent: (id: number, content: Cesium.Cesium3DTileContent) => any;
747
+ declare const getFeaturesFromTileFeature: (feature: Cesium.Cesium3DTileFeature) => any;
748
+
749
+ export { BaseMaterialProperty, BasePrimitive, types as Common, CoordinateTransformer, DefaultViewerOptions, FlyAttitude, Popup, RoamStatus, Tooltip, calcArea, calcBoundingSphereFromPositions, calcCameraHeightFromZoom, calcGeodesicDistance, calcGeodesicDistances, calcLerpPosition, calcPoistionCenter, calcSceneHeightFromPositions, calcSpaceDistance, calcSpaceDistances, calcTerrainHeightFromPositions, calcTriangleArea, calcZoomFromCameraHeight, clacPositionsForParabola, createBottomStatusBar, createEagleEye, createOpenAnim, createRoamHandler, createRollerShutterHandler, createSkyBox, createSkyBoxOnGround, createSplitScreenHandler, delayTime, flyByRotateOut, flyByRotatePoint, flyToCameraView, flyToCesium3DTile, flyToDataSource, flyToFromSphere, flyToImagery, flyToLnglat, flyToNorth, flyToPosition, flyToRectangleBounds, getCameraView, getCesiumForAutoFitScale, getFeaturesFromTileContent, getFeaturesFromTileFeature, getInoCesiumBaseUrl, getScreenCenterPoint, initCesium, initCesiumEvent, makeGridFromElevationExtrema, makeGridToInstanceForBox, makeGridToInstanceForLine, makeLnglatToPosition, makeLnglatsToLineGeojson, makeLnglatsToPointGeojson, makeLnglatsToPolygonGeojson, makeLnglatsToPositions, makePositionsClose, makePositionsForAntiClockwise, makePositionsForClockwise, makePositionsToLnglats, makePositiontoLnglat, makeYawPitchRollToHeadingPitchRoll, mekeGridPolygonAndHeight, numberId, pickPoint, randomColor, randomPointToGeoJson, randomPolygonToGeoJson, randomPolylineToGeoJson, setCameraAutoBackTiltToZero, setCesiumForAutoFitScale, setGlobeEnabled, setGlobeOpatity, setViewToLnglat, twinkleModel };
741
750
  export type { DeepPartial, ICamearView, ICesiumEventListener, IOpenAnimOptions, IRoamEvent, IRoamHandler, IRoamItem, IRoamItemHPR, IRoaming, ISetViewByLngLatOptions, ISetViewByPositionOptions, ISkyBoxOnGroundOptions, ISkyBoxOptions, ISkyBoxSources, IYawPitchRoll };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import*as e from"cesium";import{polygon as t,centroid as n}from"@turf/turf";var i=Object.freeze({__proto__:null});let o=1;const r=(t,n)=>{n||(n={token:""}),n.token&&(e.Ion.defaultAccessToken=n.token),e.Camera.DEFAULT_VIEW_RECTANGLE=e.Rectangle.fromDegrees(90,-20,110,90);const i={...d,...n},o=new e.Viewer(t,i);return o.imageryLayers.remove(o.imageryLayers.get(0)),o._cesiumWidget._creditContainer.style.display="none",o.scene.postProcessStages.fxaa.enabled=!0,o.scene.msaaSamples=8,o.scene.globe.baseColor=e.Color.fromCssColorString("rgba(0,0,255,0.5)"),o.scene.globe.depthTestAgainstTerrain=!0,o.scene.globe.showGroundAtmosphere=!0,o.scene.globe.enableLighting=!1,o.scene.screenSpaceCameraController.maximumTiltAngle=Math.PI/2,console.log("%c%s","color: GREEN; font-size: 20px",`Cesium ${e.VERSION}`),o},s=(t,n)=>{const i=n?1:0;t.scene.skyBox.show=n,t.scene.skyAtmosphere.show=n,t.scene.globe.dynamicAtmosphereLighting=n,t.scene.globe.dynamicAtmosphereLightingFromSun=n,t.scene.globe.translucency.backFaceAlpha=i,t.scene.globe.baseColor=e.Color.fromCssColorString(`rgba(121, 121, 255,${i})`),t.scene.globe.showGroundAtmosphere=n,n?(t.scene.backgroundColor=e.Color.fromCssColorString(`rgba(255,255,255,${i})`),t.scene.globe.material=void 0,t.scene.globe.translucency.enabled=!1):(t.scene.globe.translucency.enabled=!1,t.scene.globe.undergroundColor=e.Color.fromCssColorString(`rgba(0, 0, 0,${i})`),t.scene.backgroundColor=e.Color.fromCssColorString(`rgba(0,0,0,${i})`),t.scene.globe.material=new e.Material({fabric:{type:"Color",uniforms:{color:e.Color.fromCssColorString(`rgba(0, 0, 0,${i})`)}}}))},a=(e,t)=>{t.scene.globe.translucency.enabled=!0,t.scene.globe.translucency.frontFaceAlpha=e,t.scene.globe.translucency.backFaceAlpha=e},c=e=>{o=e},l=()=>o,d={animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!0,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,navigationHelpButton:!1,scene3DOnly:!0,navigation:!1,navigationInstructionsInitiallyVisible:!1,showRenderLoopErrors:!0,orderIndependentTranslucency:!1,contextOptions:{webgl:{alpha:!0}}},p=t=>{let n=0;for(let i=0;i<t.length;i++){const o=t[i],r=t[(i+1)%t.length];n+=e.Cartesian3.cross(o,r,new e.Cartesian3).z}return n>0?t.reverse():t},h=t=>{let n=0;for(let i=0;i<t.length;i++){const o=t[i],r=t[(i+1)%t.length];n+=e.Cartesian3.cross(o,r,new e.Cartesian3).z}return n<0?t.reverse():t},u=e=>e.map(e=>m(e)),m=t=>{const n=e.Cartographic.fromCartesian(t);return{longitude:e.Math.toDegrees(n.longitude),latitude:e.Math.toDegrees(n.latitude),height:n.height}},g=t=>t.map(t=>e.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height)),y=t=>e.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),f=e=>{const t=e[0],n=e[e.length-1];return t.x===n.x&&t.y===n.y&&t.z===n.z?e:[...e,e[0]]},C=e=>{const t=[];return e.forEach(e=>{t.push({type:"Feature",geometry:{type:"Point",coordinates:[e.longitude,e.latitude]},properties:{height:e.height}})}),{type:"FeatureCollection",features:t}},v=e=>{const t=[];return e.forEach((n,i)=>{0!==i&&t.push({type:"Feature",geometry:{type:"LineString",coordinates:[[e[i-1].longitude,e[i-1].latitude],[n.longitude,n.latitude]]},properties:{height:n.height}})}),{type:"FeatureCollection",features:t}},M=e=>{const t=[];return t.push({type:"Feature",geometry:{type:"Polygon",coordinates:[e.map(e=>[e.longitude,e.latitude])]},properties:{heights:e.map(e=>e.height)}}),{type:"FeatureCollection",features:t}},w=t=>({heading:e.Math.toRadians(t.yaw+(t.offsetYaw||0)),pitch:e.Math.toRadians(t.pitch),roll:e.Math.toRadians(t.roll)}),b=t=>{const{lng:n,lat:i,height:o,viewer:r}=t;r.scene.camera.setView({destination:e.Cartesian3.fromDegrees(n,i,o||1e4)})},_=t=>{const{lng:n,lat:i,height:o,viewer:r}=t;r.scene.camera.flyTo({destination:e.Cartesian3.fromDegrees(n,i,o||1e4)})},E=e=>{const{position:t,viewer:n}=e;n.scene.camera.flyTo({destination:t})};function T(t){const n=t.camera.heading,i=t.camera.pitch,o=t.camera.roll;return{destination:new e.Cartesian3(t.camera.position.x,t.camera.position.y,t.camera.position.z),orientation:{heading:n,pitch:i,roll:o}}}function P(e,t){e&&t.scene.camera.flyTo({...e})}function x(e,t){const n=t.dataSources.getByName(e);n.length>0&&t.flyTo(n[0])}function D(e,t){e&&t.flyTo(e)}function S(e,t){t.flyTo(e)}function I(t,n){const i=new e.Cartesian3(t[0],t[1],t[2]),o=new e.BoundingSphere(i,t[3]);n.camera.flyToBoundingSphere(o,{offset:new e.HeadingPitchRange(3.5,-.5,200),duration:2})}const k=(t,n,i,o,r)=>{if(i<=t||o<=n)return void console.error("无效的边界坐标:东必须大于西,北必须大于南");const s={destination:e.Rectangle.fromDegrees(t,n,i,o),duration:3,orientation:{heading:e.Math.toRadians(0),pitch:e.Math.toRadians(-90),roll:0}};r.camera.flyTo(s)},R=t=>{t.camera.flyTo({destination:t.scene.camera.position,orientation:{heading:e.Math.toRadians(0),pitch:e.Math.toRadians(-90),roll:0},duration:1.5})};function A(t){const n=t.scene.canvas,i=n.clientWidth/2,o=n.clientHeight/2;return t.scene.pickPosition(new e.Cartesian2(i,o))}const L=t=>{let n=!1;let i;const o=t.camera;let r=o.pitch,s=0,a=!1;function c(){if(!n||!i)return;let e=o.heading;a?e+=.005:e-=.005,t.camera.setView({destination:i,orientation:{heading:e,pitch:r}}),t.camera.moveBackward(s),requestAnimationFrame(c)}return{start:(l,d)=>{i=l||A(t),r=o.pitch,a=!!d,s=e.Cartesian3.distance(o.position,i),n=!0,c(),t.scene.screenSpaceCameraController.enableInputs=!1},end:()=>{n=!1,t.scene.screenSpaceCameraController.enableInputs=!0}}},O=e=>{let t=!1;let n=!1;function i(){if(!t)return;let o=e.camera.heading;n?o+=.001:o-=.001,e.camera.setView({orientation:{heading:o,pitch:e.camera.pitch}}),requestAnimationFrame(i)}t=!0;return{start:e=>{t=!0,n=!!e,i()},end:()=>{t=!1}}};function F(e){e.show=!1,setTimeout(()=>{e.show=!0,setTimeout(()=>{e.show=!1,setTimeout(()=>{e.show=!0},300)},300)},300)}const N=(t,n)=>{console.log("sdfjdsklf"),n||(n=1e5);let i=!1;t.camera.moveEnd.addEventListener(function(){if(i)return;const o=t.camera,r=t.camera.positionCartographic.height;console.log("cameraEnd",r);const s=o.heading,a=o.roll;if(r>n){i=!0;const n=t.camera.computeViewRectangle();if(!n)return void(i=!0);const o={longitude:0,latitude:0},c=e.Rectangle.center(n);o.longitude=e.Math.toDegrees(c.longitude),o.latitude=e.Math.toDegrees(c.latitude),t.camera.flyTo({destination:y(new e.Cartographic(o.longitude,o.latitude,r)),orientation:{heading:s,pitch:-1.5,roll:a},duration:1,complete:()=>{}})}else i=!1,t.scene.screenSpaceCameraController.maximumTiltAngle=Math.PI/2})},B=(t,n)=>{const i=t.scene,o=new e.ScreenSpaceEventHandler(i.canvas);o.setInputAction(e=>{if(n.LEFT_POSITION){const o=i.pickPosition(e.position);$(e.position,o,n.LEFT_POSITION,t)}n.PICK_FEATURE&&V(t,e.position,n.PICK_FEATURE),t._element.style.cursor="default"},e.ScreenSpaceEventType.LEFT_CLICK),o.setInputAction(e=>{if(n.MOVE_POSITION){const o=i.pickPosition(e.endPosition);$(e.endPosition,o,n.MOVE_POSITION,t)}n.MOVE_PICK_FEATURE&&V(t,e.endPosition,n.MOVE_PICK_FEATURE)},e.ScreenSpaceEventType.MOUSE_MOVE)},V=(t,n,i)=>{const o=t.scene.pickPosition(n),r=t.scene.pick(n),s={};if(r){if(t._element.style.cursor="pointer",r instanceof e.Cesium3DTileFeature){r.getPropertyIds().forEach(e=>{s[e]=r.getProperty(e)})}else r.id instanceof e.Cesium3DTileContent?(t._element.style.cursor="pointer",Object.assign(s,{name:"sdfjldks"})):r.id instanceof e.Entity?t._element.style.cursor="pointer":r.primitive&&Object.assign(s,r.primitive.properties);i({position:o,...r},s)}else i(void 0,{})},$=(t,n,i,o)=>{n||(n=e.Cartesian3.fromDegrees(0,0,0));const r=e.Cartographic.fromCartesian(n);i({windowPosition:t,position:n,lnglat:{lng:e.Math.toDegrees(r.longitude),lat:e.Math.toDegrees(r.latitude),height:r.height},cameraView:T(o)})},G=()=>`${Date.now()}${Math.round(9999999999*Math.random()+1)}`,H=()=>window.INO_CESIUM_BASE_URL;class z{static tooltip;_title;_div;_message;constructor(e){const t=document.createElement("DIV");t.id="tooltip",t.className="twipsy right";const n=document.createElement("DIV");n.className="twipsy-inner",t.appendChild(n),this._div=t,this._title=n,this._message="";const i=e._element.getElementsByClassName("cesium-widget")[0];if(!i)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");i.appendChild(t),t.onmousemove=e=>{this.showAt({x:e.clientX,y:e.clientY},this._message)}}showAt(e,t){e&&t&&(this.setVisible(!0),this._title.innerHTML=t,this._div.style.left=`${e.x+10}px`,this._div.style.top=e.y-this._div.clientHeight/2+"px",this._message=t)}setVisible(e){this._div.style.display=e?"block":"none"}static createToolTip(e){return z.tooltip||(z.tooltip=new z(e)),z.tooltip}destroy(){z.tooltip&&(this._div&&this._div.parentNode.removeChild(this._div),z.tooltip=null)}}class U{static popup;_div;viewer;offset=new e.Cartesian2(140,150);position=e.Cartesian3.ZERO;constructor(e,t,n){this.viewer=e,n&&(this.offset=n),this._div=t,this._div.style.position="absolute",this._div.style.left="0",this._div.style.top="0",this._div.style.display="none";const i=e._element.getElementsByClassName("cesium-widget")[0];if(!i)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");i.appendChild(t),this.renderPosition()}showAt(e){this.position=e,e&&this.setVisible(!0)}setVisible(e){this._div.style.display=e?"block":"none"}renderPosition(){this.viewer.scene.postRender.addEventListener(()=>{if(!this.position.equals(e.Cartesian3.ZERO)){const e=this.viewer.scene.cartesianToCanvasCoordinates(this.position);this._div.style.left=e.x-this.offset.x+"px",this._div.style.top=e.y-this.offset.y+"px"}})}static createPupup(e,t,n){return U.popup||(U.popup=new U(e,t,n)),U.popup}destroy(){U.popup&&(this._div&&this._div.parentNode.removeChild(this._div),U.popup=null)}}const j=(e,t=[-180,180],n=[-90,90])=>{const i=[];for(let o=0;o<e;o++){const e=X(t),o=X(n);i.push({type:"Feature",geometry:{type:"Point",coordinates:[e,o]},properties:{}})}return{type:"FeatureCollection",features:i}};function X(e){const[t,n]=e;return Math.random()*(n-t)+t}function W(){return`rgba(${Math.round(255*Math.random())},${Math.round(255*Math.random())},${Math.round(255*Math.random())},${Math.random()})`}const q=(e,t=[-180,180],n=[-90,90])=>{const i=[];for(let o=0;o<e;o++){const e=Math.floor(X([3,10])),o=[];for(let i=0;i<e;i++){const e=X(t),i=X(n);o.push([e,i])}i.push({type:"Feature",geometry:{type:"LineString",coordinates:o},properties:{}})}return{type:"FeatureCollection",features:i}},Z=(e,t=[-180,180],n=[-90,90])=>{const i=[];for(let o=0;o<e;o++){const e=Y(t,n);i.push({type:"Feature",geometry:{type:"Polygon",coordinates:[e]}})}return{type:"FeatureCollection",features:i}};function Y(e,t){const n=Math.floor(X([3,10])),i=X(e),o=X(t),r=X([1,5]),s=[];for(let e=0;e<n;e++){const t=e/n*2*Math.PI,a=X([.8*r,r]),c=i+a*Math.cos(t),l=o+a*Math.sin(t);s.push([c,l])}return s.push(s[0]),s}const K=(t,n)=>{let i=!1;const o=new e.Viewer(t,{...d,scene3DOnly:!1});o.scene.mode=2;const r=o.scene.screenSpaceCameraController;r.enableRotate=!1,r.enableTranslate=!1,r.enableZoom=!1,r.enableTilt=!1,r.enableLook=!1,n.entities.add({position:e.Cartesian3.fromDegrees(0,0),label:{text:new e.CallbackProperty(()=>(s(),""),!0)}});const s=function(){i||o.camera.flyTo({destination:n.camera.position,orientation:{heading:n.camera.heading,pitch:n.camera.pitch,roll:n.camera.roll},duration:0})};return{viewer:o,open:()=>{i=!1},close:()=>{i=!0}}},J=t=>{const n=[],i=e=>{t.scene.splitPosition=e},o=(e,t)=>{n.push(e),e.splitDirection=t};return{set:()=>{i(.5),function(){let e=document.getElementById("vertical-slider");if(e)return void(e.style.display="block");e=document.createElement("div"),e.id="vertical-slider";const n=t._element.getElementsByClassName("cesium-widget")[0];if(!n)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");n.appendChild(e)}(),function(){const e=document.getElementById("vertical-slider");function n(){document.removeEventListener("mousemove",o,!1)}function i(){document.addEventListener("mousemove",o,!1)}function o(n){n.preventDefault?n.preventDefault():n.returnValue=!1,e.style.left=`${n.clientX}px`;const i=n.clientX/e.parentElement.offsetWidth;t.scene.splitPosition=i}e.addEventListener("mousedown",i,!1),document.addEventListener("mouseup",n,!1)}()},remove:()=>{n.forEach(t=>{o(t,e.SplitDirection.NONE)});document.getElementById("vertical-slider").style.display="none"},setSplitPosition:i,setSplitDirection:o}},Q=t=>{const n=t;let i;const o={},s=()=>{const e=n.container;e.style.display="flex";e.getElementsByClassName("cesium-viewer")[0].style.width="50%";const t=document.createElement("div");t.style={width:"50%",height:"100%"},t.id="right-screen-viewer",e.appendChild(t),i=r(t.id),o[1]=i,c(),n.camera.changed.addEventListener(()=>a(n,i)),n.scene.preRender.addEventListener(()=>a(n,i)),n.camera.percentageChanged=.01,i.camera.changed.addEventListener(()=>a(i,n)),i.scene.preRender.addEventListener(()=>a(i,n)),i.camera.percentageChanged=.01,i._splitNumber=1};function a(t,n){const i=e.Cartographic.toCartesian(t.camera.positionCartographic);n.camera.setView({destination:new e.Cartesian3(i.x,i.y,i.z),orientation:{direction:t.scene.camera._direction,up:t.scene.camera.up,heading:t.scene.camera.heading,pitch:t.scene.camera.pitch,roll:t.scene.camera.roll}})}const c=()=>{n.imageryLayers._layers.forEach(e=>{e.splitScreenBaseLayer&&i.imageryLayers.addImageryProvider(e.imageryProvider)})};return{set:()=>{s(),function(){let e=document.getElementById("split-screen-slider");if(e)return void(e.style.display="block");e=document.createElement("div"),e.id="split-screen-slider";const n=t._element.getElementsByClassName("cesium-widget")[0];if(!n)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");n.appendChild(e)}(),n._splitNumber=-1,o[-1]=n},viewerMap:o,getViewerFromKey:e=>o[e],remove:()=>{document.getElementById("split-screen-slider").style.display="none";n.container.getElementsByClassName("cesium-viewer")[0].style.width="100%",i.container.remove(),delete o[1]},setLayer:(e,t)=>{},updateBaseLayers:c}},ee=(t,n)=>{const i=e.Cartographic.fromCartesian(t),o=e.Cartographic.fromCartesian(n),r=new e.EllipsoidGeodesic;r.setEndPoints(i,o);let s=r.surfaceDistance;return s=Math.sqrt(s**2+(o.height-i.height)**2),s};function te(e){let t=0;return e.forEach((n,i)=>{if(i===e.length-1)return;const o=ee(n,e[i+1]);t+=o}),t}function ne(t,n,i){const{EllipsoidGeodesic:o,Ellipsoid:r}=e;return new o((i=i||r.WGS84).cartesianToCartographic(t),i.cartesianToCartographic(n)).surfaceDistance}function ie(e){let t=0;return e.forEach((n,i)=>{if(i===e.length-1)return;const o=ne(n,e[i+1]);t+=o}),t}const oe=i=>{if(i.length<4)return e.BoundingSphere.fromPoints(i).center;const o=t([i.map(e=>[e.x,e.y])]),r=e.BoundingSphere.fromPoints(i).center,s=n(o);return new e.Cartesian3(s.geometry.coordinates[0],s.geometry.coordinates[1],r.z)};function re(t){let n=0;const{CoplanarPolygonGeometry:i,VertexFormat:o,defined:r,Cartesian3:s}=e,a=i.createGeometry(i.fromPositions({positions:t,vertexFormat:o.POSITION_ONLY}));if(r(a)){const e=a.indices,t=a.attributes.position.values;for(let i=0;i<e.length;i+=3){const o=e[i],r=e[i+1],a=e[i+2];n+=se(s.unpack(t,3*o,{}),s.unpack(t,3*r,{}),s.unpack(t,3*a,{}))}}return n}const se=(t,n,i)=>{const{Cartesian3:o}=e,r=o.subtract(t,n,{}),s=o.subtract(i,n,{}),a=o.cross(r,s,r);return.5*o.magnitude(a)},ae=async(t,n)=>{const i=n.map(t=>e.Cartographic.fromCartesian(t));return await e.sampleTerrainMostDetailed(t,i)},ce=async(e,t)=>await e.scene.clampToHeightMostDetailed(t),le=(t,n,i,o)=>{const r=[],s=e.Cartographic.fromCartesian(t),a=e.Cartographic.fromCartesian(n),c=180*s.longitude/Math.PI,l=180*s.latitude/Math.PI,d=180*a.longitude/Math.PI,p=180*a.latitude/Math.PI,h=Math.sqrt((c-d)*(c-d)+(l-p)*(l-p))*i,u=e.Cartesian3.clone(t),m=e.Cartesian3.clone(n),g=e.Cartesian3.distance(u,e.Cartesian3.ZERO),y=e.Cartesian3.distance(m,e.Cartesian3.ZERO);if(e.Cartesian3.normalize(u,u),e.Cartesian3.normalize(m,m),!e.Cartesian3.distance(u,m))return r;const f=e.Cartesian3.angleBetween(u,m);r.push(t);for(let t=1;t<o-1;t++){const n=1*t/(o-1),i=1-n,s=Math.sin(i*f)/Math.sin(f),a=Math.sin(n*f)/Math.sin(f),c=e.Cartesian3.multiplyByScalar(u,s,new e.Cartesian3),l=e.Cartesian3.multiplyByScalar(m,a,new e.Cartesian3);let d=e.Cartesian3.add(c,l,new e.Cartesian3);const p=n*Math.PI,C=g*i+y*n+Math.sin(p)*h;d=e.Cartesian3.multiplyByScalar(d,C,d),r.push(d)}return r.push(n),r},de=e=>{const t=e.positionCartographic.height,n=-40467.74;return Math.round(n+80955.31/(1+(t/91610.74)**7096758e-11))},pe=e=>e,he=(t,n)=>{const i=[];let o=0,r=0,s=0;const a=[];for(let n=0;n<t.length-1;++n)o+=e.Cartesian3.distance(t[n],t[n+1]);for(let n=0;n<t.length;n++)0===n?r=0:(s+=e.Cartesian3.distance(t[n-1],t[n]),r=s/o),i.push(r);const c=new e.LinearSpline({times:i,points:t});for(let e=0;e<=n;e++){const t=c.evaluate(e/n);a.push(t)}return a},ue=t=>{const n=new e.BoundingSphere(e.Cartesian3.ZERO,0);return e.BoundingSphere.fromPoints(t,n),n};class me{_primitive;_promise;appearance;geometryInstance;drawCommand;shapePositions;needUpdate=!1;constructor(){this._primitive=void 0,this.appearance=void 0,this.geometryInstance=void 0,this._promise=null,this.drawCommand=null,this.needUpdate=!1,this.shapePositions=[]}update(e){const t=this.getPrimitive();if(t){this._primitive=t;this._primitive.update(e)}}then(e=null){return this._promise?.then(e)}catch(e=null){return this._promise?.catch(e)}isDestroyed(){return!!this._primitive}destroy(){this._primitive=void 0}setShapePositions(e){this.shapePositions=e}}class ge{_definitionChanged=new e.Event;get definitionChanged(){return this._definitionChanged}get isConstant(){return!1}}const ye=e.BoxGeometry,fe=e.Cartesian3,Ce=e.defaultValue,ve=e.defined,Me=e.destroyObject,we=e.DeveloperError,be=e.GeometryPipeline,_e=e.Matrix3,Ee=e.Matrix4,Te=e.Transforms,Pe=e.VertexFormat,xe=e.BufferUsage,De=e.CubeMap,Se=e.DrawCommand,Ie=e.loadCubeMap,ke=e.RenderState,Re=e.VertexArray,Ae=e.BlendingState,Le=e.SceneMode,Oe=e.ShaderProgram,Fe=e.ShaderSource,Ne=new _e;class Be{constructor(t){e.defined(e.Matrix4.getRotation)||(e.Matrix4.getRotation=e.Matrix4.getMatrix3),this.sources=t.sources,this._sources=void 0,this.show=Ce(t.show,!0),this._command=new Se({modelMatrix:Ee.clone(Ee.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}update(e,t){const n=this;if(!this.show)return;if(e.mode!==Le.SCENE3D&&e.mode!==Le.MORPHING)return;if(!e.passes.render)return;const i=e.context;if(this._sources!==this.sources){this._sources=this.sources;const e=this.sources;if(!(ve(e.positiveX)&&ve(e.negativeX)&&ve(e.positiveY)&&ve(e.negativeY)&&ve(e.positiveZ)&&ve(e.negativeZ)))throw new we("this.sources is required and must have positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ properties.");if(typeof e.positiveX!=typeof e.negativeX||typeof e.positiveX!=typeof e.positiveY||typeof e.positiveX!=typeof e.negativeY||typeof e.positiveX!=typeof e.positiveZ||typeof e.positiveX!=typeof e.negativeZ)throw new we("this.sources properties must all be the same type.");"string"==typeof e.positiveX?Ie(i,this._sources).then(e=>{n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=e}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new De({context:i,source:e}))}const o=this._command;if(o.modelMatrix=Te.eastNorthUpToFixedFrame(e.camera._positionWC),!ve(o.vertexArray)){o.uniformMap={u_cubeMap:()=>n._cubeMap,u_rotateMatrix:()=>Ee.getRotation(o.modelMatrix,Ne)};const e=ye.createGeometry(ye.fromDimensions({dimensions:new fe(2,2,2),vertexFormat:Pe.POSITION_ONLY})),t=this._attributeLocations=be.createAttributeLocations(e);o.vertexArray=Re.fromGeometry({context:i,geometry:e,attributeLocations:t,bufferUsage:xe._DRAW}),o.renderState=ke.fromCache({blending:Ae.ALPHA_BLEND})}if(!ve(o.shaderProgram)||this._useHdr!==t){const e=new Fe({defines:[t?"HDR":""],sources:["precision highp float;\n\nuniform samplerCube u_cubeMap;\nin vec3 v_texCoord;\nout vec4 fragColor;\n\nvoid main() {\n vec4 color = texture(u_cubeMap, normalize(v_texCoord));\n fragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime);\n}"]});o.shaderProgram=Oe.fromCache({context:i,vertexShaderSource:"#version 300 es\n\nprecision highp float;\n\nin vec3 position;\nout vec3 v_texCoord;\n\nuniform mat3 u_rotateMatrix;\n\nvoid main() {\n vec3 p = czm_viewRotation * u_rotateMatrix * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position));\n gl_Position = czm_projection * vec4(p, 1.0);\n v_texCoord = position;\n}\n",fragmentShaderSource:e,attributeLocations:this._attributeLocations}),this._useHdr=t}return ve(this._cubeMap)?o:void 0}isDestroyed(){return!1}destroy(){const e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),Me(this)}}const Ve=t=>{const{viewer:n,sources:i}=t;return n.scene.skyBox=new e.SkyBox({sources:i}),n.scene.skyBox},$e=t=>{let{viewer:n,sources:i}=t;const o=t.height?t.height:225705,r=n.scene.skyBox,s=n.scene.skyAtmosphere.show;i||(i={positiveX:`${H()}/assets/ground-skybox/px.jpg`,negativeX:`${H()}/assets/ground-skybox/nx.jpg`,positiveY:`${H()}/assets/ground-skybox/py.jpg`,negativeY:`${H()}/assets/ground-skybox/ny.jpg`,positiveZ:`${H()}/assets/ground-skybox/pz.jpg`,negativeZ:`${H()}/assets/ground-skybox/nz.jpg`});const a=new Be({sources:i});n.scene.postRender.addEventListener(()=>{const t=n.camera.position;e.Cartographic.fromCartesian(t).height<o?(n.scene.skyBox=a,n.scene.skyAtmosphere.show=!1):(n.scene.skyBox=r,n.scene.skyAtmosphere.show=s)})},Ge=t=>{const n=[];let i,o;t.clock.shouldAnimate=!0;const r={},s=(e,n)=>{if(a(),e.entity.cylinder){const n=e.entity.cylinder;n.roamId=e.id,e.entity.cylinder=void 0,o=t.entities.add({position:e.property,cylinder:n})}t.trackedEntity=e.entity,n&&(i=e)},a=()=>{if(o){t.entities.remove(o);const e=n.find(e=>e.id===o.cylinder.roamId);e&&(e.entity.cylinder=o.cylinder),o=void 0}},c=()=>{t.trackedEntity=void 0,i=void 0,a()},l=e=>{t.trackedEntity?.id===e.entity.id&&c(),t.entities.remove(e.entity);const i=n.findIndex(t=>t.id===e.id);i>-1&&n.splice(i,1)},d=(e,t)=>{const n=e.property.getValue(t);if(n&&(e.status="ROAMING",m.roaming&&m.roaming(e,{time:t,position:n})),e.stopTime.secondsOfDay<t.secondsOfDay&&"END"!==e.status&&(e.status="END",m.end&&m.end(e),e.loop?p(e):c()),e.flyParams.hpr){const i=r[e.id].find(e=>e.time>t.secondsOfDay);i&&u(e,i,n)}},p=n=>{const{property:i,startTime:o,stopTime:r}=h(n);n.stopTime=r,n.startTime=o,n.property=i,n.flyParams.hpr||(n.entity.orientation=new e.VelocityOrientationProperty(i)),n.entity.position=i,n.status="START",t.clock.currentTime=o,t.clock.multiplier=1,m.reStart&&m.reStart(n)},h=t=>{const n=[],{positions:i,flyParams:o}=t,s=new e.SampledPositionProperty;let a=0;const c=e.JulianDate.now();let l=c.clone();return i.forEach((t,r)=>{let d=e.JulianDate.now();if(r){let n=0;if(o.speed){n=e.Cartesian3.distance(t,i[r-1])/(1e3*o.speed/3600)}o.times&&(n=(o.times[r]-o.times[r-1])/1e3),a+=n,d=e.JulianDate.addSeconds(c,a,new e.JulianDate)}else d=c;l=d,s.addSample(d,t),o.hpr&&n.push({time:d.secondsOfDay,heading:o.hpr[r].heading,pitch:o.hpr[r].pitch,roll:o.hpr[r].roll})}),r[t.id]=n,{property:s,startTime:c,stopTime:l}},u=(t,n,i)=>{if(!i)return;const{heading:o,pitch:r,roll:s}=n,a=new e.HeadingPitchRoll(o,r,s);t.entity.orientation=Transforms.headingPitchRollQuaternion(i,a)};t.scene.preRender.addEventListener((o,r)=>{if(n.forEach(e=>{d(e,r)}),!i)return;const s=i.entity.computeModelMatrix(t.clock.currentTime);s&&t.camera.lookAtTransform(s,new e.Cartesian3(...[-20,0,5]))});const m={};return{set:i=>{const{entity:o}=i;i.id=G(),t.entities.add(o);const{property:r,startTime:s,stopTime:a}=h(i);i.flyParams.hpr||(o.orientation=new e.VelocityOrientationProperty(r)),o.position=r;const c={...i,startTime:s,stopTime:a,property:r,status:"START"};return t.clock.currentTime=s,t.clock.multiplier=1,n.push(c),c.status="START",m.start&&m.start(c),c},tracked:s,stopTracked:c,remove:l,frameRoam:d,trackedByEntityId:(e,t)=>{const i=n.find(t=>t.entity.id===e);i&&s(i,t)},removeAll:()=>{n.forEach(e=>{l(e)}),n.length=0},Event:m,lockCameraView:e=>{i=e},updateRoamAttitude:(t,n)=>{"UP"!==n&&"DOWN"!==n||(t.entity.orientation=void 0),"front"!==n&&"back"!==n||(t.entity.orientation=new e.VelocityOrientationProperty(t.property))}}};var He=(e=>(e.UP="UP",e.DOWN="DOWN",e.LEFT="left",e.RIGHT="right",e.FRONT="front",e.BACK="back",e))(He||{}),ze=(e=>(e.END="END",e.START="START",e.ROAMING="ROAMING",e))(ze||{});let Ue=100,je="",Xe="0";const We=t=>{const{viewer:n}=t,i=document.createElement("div");i.className="bottom-status-bar";const o=document.createElement("div");o.className="scale-bar",o.innerHTML="";const r=document.createElement("div");r.className="scale-label",r.innerHTML="",o.appendChild(r),i.appendChild(o);const s=document.createElement("div");s.id="bottom-status-bar-camera",t.clickCopy&&(s.style.pointerEvents="auto",s.style.cursor="pointer"),i.appendChild(s),s.style.display="flex";const a=document.createElement("div"),c=document.createElement("div"),l=n._element.getElementsByClassName("cesium-widget")[0];if(!l)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");l.appendChild(i),B(n,{MOVE_POSITION(e){s.innerHTML=`\n 经度:${e.lnglat.lng.toFixed(6)}&nbsp;&nbsp;\n 纬度:${e.lnglat.lat.toFixed(6)}&nbsp;&nbsp;\n 高程:${e.lnglat.height.toFixed(2)}&nbsp;&nbsp;\n `,t.clickCopy&&T(n),s.appendChild(c),s.appendChild(a)}}),t.clickCopy&&document.addEventListener("click",e=>{e.target.id});let d=Date.now(),p=0;const h=()=>{requestAnimationFrame(()=>{if(p+=1,p>=30){const e=Date.now(),t=e-d,n=Math.round(1e3/(t/p));d=e,p=0,a.innerHTML=`${n} FPS`}t.hpr?c.innerHTML=`\n 方位角:${e.Math.toDegrees(n.camera.heading).toFixed(1)}°&nbsp;&nbsp;\n 俯仰角:${e.Math.toDegrees(n.camera.pitch).toFixed(1)}°&nbsp;&nbsp;\n 翻滚角:${e.Math.toDegrees(n.camera.roll).toFixed(1)}°&nbsp;&nbsp;\n `:c.innerHTML="",c.innerHTML+=`\n 视高:${n.camera.positionCartographic.height.toFixed(0)}m&nbsp;&nbsp;\n `;const i=qe(n);r.innerHTML=`${i.distanceLabel}`,h()})};h()},qe=t=>{const n=t.camera.positionCartographic.height.toFixed(0);if(n===Xe)return{barWidth:Ue,distanceLabel:je};Xe=n;const i=new e.EllipsoidGeodesic,o=[1,2,3,5,10,20,30,50,100,200,300,500,1e3,2e3,3e3,5e3,1e4,2e4,3e4,5e4,1e5,2e5,3e5,5e5,1e6,2e6,3e6,5e6,1e7,2e7,3e7,5e7],r=t.scene,s=r.canvas.clientWidth,a=r.canvas.clientHeight,c=r.camera.getPickRay(new e.Cartesian2(s/2|0,a-1)),l=r.camera.getPickRay(new e.Cartesian2(1+s/2|0,a-1)),d=r.globe,p=d.pick(c,r),h=d.pick(l,r);if(!e.defined(p)||!e.defined(h))return{barWidth:Ue,distanceLabel:je};const u=d.ellipsoid.cartesianToCartographic(p),m=d.ellipsoid.cartesianToCartographic(h);i.setEndPoints(u,m);const g=i.surfaceDistance;let y;for(let t=o.length-1;!e.defined(y)&&t>=0;--t)o[t]/g<100&&(y=o[t]);if(e.defined(y)){const e=y>=1e3?`${(y/1e3).toString()} km`:`${y.toString()} m`;Ue=y/g|0,je=e}else Ue=0,je="1 m";return{barWidth:Ue,distanceLabel:je}},Ze=t=>new Promise(n=>{const{viewer:i,center:o}=t;let r=o.lng,s=1,a=null;const c=t=>{null===a&&(a=t);r-=(t-a)/2e4*2,r<-180&&(r=180,s+=1),2===s&&r>o.lng?i.camera.flyTo({destination:e.Cartesian3.fromDegrees(o.lng,o.lat,3e7),duration:2,orientation:{heading:e.Math.toRadians(360),pitch:e.Math.toRadians(-90),roll:0},easingFunction:e.EasingFunction.LINEAR_NONE,complete:()=>{i.camera.flyTo({destination:e.Cartesian3.fromDegrees(o.lng,o.lat,o.height),duration:3,orientation:{heading:e.Math.toRadians(2.8),pitch:e.Math.toRadians(-90),roll:6.282253919167732},complete:()=>{n(!0)}})}}):(i.camera.setView({destination:e.Cartesian3.fromDegrees(r,o.lat,3e7),orientation:{heading:e.Math.toRadians(360),pitch:e.Math.toRadians(-90),roll:0}}),requestAnimationFrame(c))};requestAnimationFrame(c)}),Ye=(t,n,i)=>{const o=new Float64Array(24);for(let e=0;e<8;e++)o[3*e]=t[e].x,o[3*e+1]=t[e].y,o[3*e+2]=t[e].z;const r=new Uint16Array([0,1,2,0,2,3,4,6,5,4,7,6,0,4,1,1,4,5,1,5,2,2,5,6,2,6,3,3,6,7,3,7,0,0,7,4]),s={position:new e.GeometryAttribute({componentDatatype:e.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:o})},a=new e.Geometry({indices:r,attributes:s,primitiveType:e.PrimitiveType.TRIANGLES,boundingSphere:e.BoundingSphere.fromVertices(o)});return new e.GeometryInstance({geometry:a,attributes:{color:e.ColorGeometryInstanceAttribute.fromColor(n)},id:`${i}`})},Ke=(t,n,i)=>{const[o,r,s,a,c,l,d,p]=t,h=[o,r,r,s,s,a,a,o,c,l,l,d,d,p,p,c,o,c,c,l,l,r,r,o,a,p,p,d,d,s,s,a,o,a,a,p,p,c,c,o,r,l,l,d,d,s,s,r];return new e.GeometryInstance({geometry:new e.PolylineGeometry({positions:h,width:2,vertexFormat:e.PolylineColorAppearance.VERTEX_FORMAT}),attributes:{color:e.ColorGeometryInstanceAttribute.fromColor(n)},id:`${i}`})},Je=(t,n)=>[e.Cartesian3.fromDegrees(t.longitude,t.latitude,n.height),e.Cartesian3.fromDegrees(t.longitude,n.latitude,n.height),e.Cartesian3.fromDegrees(n.longitude,n.latitude,n.height),e.Cartesian3.fromDegrees(n.longitude,t.latitude,n.height),e.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),e.Cartesian3.fromDegrees(t.longitude,n.latitude,t.height),e.Cartesian3.fromDegrees(n.longitude,n.latitude,t.height),e.Cartesian3.fromDegrees(n.longitude,t.latitude,t.height)],Qe=(t,n,i,o,r,s)=>[e.Cartesian3.fromDegrees(t,t,r),e.Cartesian3.fromDegrees(n,n,r),e.Cartesian3.fromDegrees(i,i,r),e.Cartesian3.fromDegrees(o,o,r),e.Cartesian3.fromDegrees(t,t,s),e.Cartesian3.fromDegrees(n,n,s),e.Cartesian3.fromDegrees(i,i,s),e.Cartesian3.fromDegrees(o,o,s)],et=3e3*Math.PI/180,tt=Math.PI,nt=6378245,it=.006693421622965943,ot=(e,t)=>!(e>72.004&&e<137.8347&&t>.8293&&t<55.8271),rt=(e,t)=>{let n=2*e-100+3*t+.2*t*t+.1*e*t+.2*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*tt)+20*Math.sin(2*e*tt))/3,n+=2*(20*Math.sin(t*tt)+40*Math.sin(t/3*tt))/3,n+=2*(160*Math.sin(t/12*tt)+320*Math.sin(t*tt/30))/3,n},st=(e,t)=>{let n=300+e+2*t+.1*e*e+.1*e*t+.1*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*tt)+20*Math.sin(2*e*tt))/3,n+=2*(20*Math.sin(e*tt)+40*Math.sin(e/3*tt))/3,n+=2*(150*Math.sin(e/12*tt)+300*Math.sin(e/30*tt))/3,n},at=(e,t)=>{if(ot(e,t))return[e,t];let n=rt(e-105,t-35),i=st(e-105,t-35);const o=t/180*tt;let r=Math.sin(o);r=1-it*r*r;const s=Math.sqrt(r);n=180*n/(nt*(1-it)/(r*s)*tt),i=180*i/(nt/s*Math.cos(o)*tt);return[e+i,t+n]},ct=(e,t)=>{if(ot(e,t))return[e,t];let n=rt(e-105,t-35),i=st(e-105,t-35);const o=t/180*tt;let r=Math.sin(o);r=1-it*r*r;const s=Math.sqrt(r);n=180*n/(nt*(1-it)/(r*s)*tt),i=180*i/(nt/s*Math.cos(o)*tt);return[2*e-(e+i),2*t-(t+n)]},lt=(e,t)=>{const n=e,i=t,o=Math.sqrt(n*n+i*i)+2e-5*Math.sin(i*et),r=Math.atan2(i,n)+3e-6*Math.cos(n*et);return[o*Math.cos(r)+.0065,o*Math.sin(r)+.006]},dt=(e,t)=>{const n=e-.0065,i=t-.006,o=Math.sqrt(n*n+i*i)-2e-5*Math.sin(i*et),r=Math.atan2(i,n)-3e-6*Math.cos(n*et);return[o*Math.cos(r),o*Math.sin(r)]};class pt{static wgs84ToGcj02(e){const[t,n]=at(e.lng,e.lat);return{lng:t,lat:n}}static gcj02ToWgs84(e){const[t,n]=ct(e.lng,e.lat);return{lng:t,lat:n}}static gcj02ToBd09(e){const[t,n]=lt(e.lng,e.lat);return{lng:t,lat:n}}static bd09ToGcj02(e){const[t,n]=dt(e.lng,e.lat);return{lng:t,lat:n}}static bd09ToWgs84(e){const[t,n]=((e,t)=>{const[n,i]=dt(e,t);return ct(n,i)})(e.lng,e.lat);return{lng:t,lat:n}}static wgs84ToBd09(e){const[t,n]=((e,t)=>{const[n,i]=at(e,t);return lt(n,i)})(e.lng,e.lat);return{lng:t,lat:n}}}export{ge as BaseMaterialProperty,me as BasePrimitive,i as Common,pt as CoordinateTransformer,d as DefaultViewerOptions,He as FlyAttitude,U as Popup,ze as RoamStatus,z as Tooltip,re as calcArea,ue as calcBoundingSphereFromPositions,pe as calcCameraHeightFromZoom,ne as calcGeodesicDistance,ie as calcGeodesicDistances,he as calcLerpPosition,oe as calcPoistionCenter,ce as calcSceneHeightFromPositions,ee as calcSpaceDistance,te as calcSpaceDistances,ae as calcTerrainHeightFromPositions,se as calcTriangleArea,de as calcZoomFromCameraHeight,le as clacPositionsForParabola,We as createBottomStatusBar,K as createEagleEye,Ze as createOpenAnim,Ge as createRoamHandler,J as createRollerShutterHandler,Ve as createSkyBox,$e as createSkyBoxOnGround,Q as createSplitScreenHandler,O as flyByRotateOut,L as flyByRotatePoint,P as flyToCameraView,S as flyToCesium3DTile,x as flyToDataSource,I as flyToFromSphere,D as flyToImagery,_ as flyToLnglat,R as flyToNorth,E as flyToPosition,k as flyToRectangleBounds,T as getCameraView,l as getCesiumForAutoFitScale,H as getInoCesiumBaseUrl,A as getScreenCenterPoint,r as initCesium,B as initCesiumEvent,Je as makeGridFromElevationExtrema,Ye as makeGridToInstanceForBox,Ke as makeGridToInstanceForLine,y as makeLnglatToPosition,v as makeLnglatsToLineGeojson,C as makeLnglatsToPointGeojson,M as makeLnglatsToPolygonGeojson,g as makeLnglatsToPositions,f as makePositionsClose,h as makePositionsForAntiClockwise,p as makePositionsForClockwise,u as makePositionsToLnglats,m as makePositiontoLnglat,w as makeYawPitchRollToHeadingPitchRoll,Qe as mekeGridPolygonAndHeight,G as numberId,W as randomColor,j as randomPointToGeoJson,Z as randomPolygonToGeoJson,q as randomPolylineToGeoJson,N as setCameraAutoBackTiltToZero,c as setCesiumForAutoFitScale,s as setGlobeEnabled,a as setGlobeOpatity,b as setViewToLnglat,F as twinkleModel};
1
+ import*as e from"cesium";import{polygon as t,centroid as n}from"@turf/turf";import{makePositiontoLnglat as i}from"@ino-cesium/common";var o=Object.freeze({__proto__:null});let r=1;const s=(t,n)=>{n||(n={token:""}),n.token&&(e.Ion.defaultAccessToken=n.token),e.Camera.DEFAULT_VIEW_RECTANGLE=e.Rectangle.fromDegrees(90,-20,110,90);const i={...p,...n},o=new e.Viewer(t,i);return o.imageryLayers.remove(o.imageryLayers.get(0)),o._cesiumWidget._creditContainer.style.display="none",o.scene.postProcessStages.fxaa.enabled=!0,o.scene.msaaSamples=8,o.scene.globe.baseColor=e.Color.fromCssColorString("rgba(0,0,255,0.5)"),o.scene.globe.depthTestAgainstTerrain=!0,o.scene.globe.showGroundAtmosphere=!0,o.scene.globe.enableLighting=!1,o.scene.screenSpaceCameraController.maximumTiltAngle=Math.PI/2,console.log("%c%s","color: GREEN; font-size: 20px",`Cesium ${e.VERSION}`),o},a=(t,n)=>{const i=n?1:0;t.scene.skyBox.show=n,t.scene.skyAtmosphere.show=n,t.scene.globe.dynamicAtmosphereLighting=n,t.scene.globe.dynamicAtmosphereLightingFromSun=n,t.scene.globe.translucency.backFaceAlpha=i,t.scene.globe.baseColor=e.Color.fromCssColorString(`rgba(121, 121, 255,${i})`),t.scene.globe.showGroundAtmosphere=n,n?(t.scene.backgroundColor=e.Color.fromCssColorString(`rgba(255,255,255,${i})`),t.scene.globe.material=void 0,t.scene.globe.translucency.enabled=!1):(t.scene.globe.translucency.enabled=!1,t.scene.globe.undergroundColor=e.Color.fromCssColorString(`rgba(0, 0, 0,${i})`),t.scene.backgroundColor=e.Color.fromCssColorString(`rgba(0,0,0,${i})`),t.scene.globe.material=new e.Material({fabric:{type:"Color",uniforms:{color:e.Color.fromCssColorString(`rgba(0, 0, 0,${i})`)}}}))},c=(e,t)=>{t.scene.globe.translucency.enabled=!0,t.scene.globe.translucency.frontFaceAlpha=e,t.scene.globe.translucency.backFaceAlpha=e},l=e=>{r=e},d=()=>r,p={animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!0,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,navigationHelpButton:!1,scene3DOnly:!0,navigation:!1,navigationInstructionsInitiallyVisible:!1,showRenderLoopErrors:!0,orderIndependentTranslucency:!1,contextOptions:{webgl:{alpha:!0}}},h=t=>{let n=0;for(let i=0;i<t.length;i++){const o=t[i],r=t[(i+1)%t.length];n+=e.Cartesian3.cross(o,r,new e.Cartesian3).z}return n>0?t.reverse():t},u=t=>{let n=0;for(let i=0;i<t.length;i++){const o=t[i],r=t[(i+1)%t.length];n+=e.Cartesian3.cross(o,r,new e.Cartesian3).z}return n<0?t.reverse():t},m=e=>e.map(e=>g(e)),g=t=>{const n=e.Cartographic.fromCartesian(t);return{longitude:e.Math.toDegrees(n.longitude),latitude:e.Math.toDegrees(n.latitude),height:n.height}},y=t=>t.map(t=>e.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height)),f=t=>e.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),C=e=>{const t=e[0],n=e[e.length-1];return t.x===n.x&&t.y===n.y&&t.z===n.z?e:[...e,e[0]]},v=e=>{const t=[];return e.forEach(e=>{t.push({type:"Feature",geometry:{type:"Point",coordinates:[e.longitude,e.latitude]},properties:{height:e.height}})}),{type:"FeatureCollection",features:t}},w=e=>{const t=[];return e.forEach((n,i)=>{0!==i&&t.push({type:"Feature",geometry:{type:"LineString",coordinates:[[e[i-1].longitude,e[i-1].latitude],[n.longitude,n.latitude]]},properties:{height:n.height}})}),{type:"FeatureCollection",features:t}},M=e=>{const t=[];return t.push({type:"Feature",geometry:{type:"Polygon",coordinates:[e.map(e=>[e.longitude,e.latitude])]},properties:{heights:e.map(e=>e.height)}}),{type:"FeatureCollection",features:t}},b=t=>({heading:e.Math.toRadians(t.yaw+(t.offsetYaw||0)),pitch:e.Math.toRadians(t.pitch),roll:e.Math.toRadians(t.roll)}),_=t=>{const{lng:n,lat:i,height:o,viewer:r}=t;r.scene.camera.setView({destination:e.Cartesian3.fromDegrees(n,i,o||1e4)})},E=t=>{const{lng:n,lat:i,height:o,viewer:r}=t;r.scene.camera.flyTo({destination:e.Cartesian3.fromDegrees(n,i,o||1e4)})},T=e=>{const{position:t,viewer:n}=e;n.scene.camera.flyTo({destination:t})};function P(t){const n=t.camera.heading,i=t.camera.pitch,o=t.camera.roll;return{destination:new e.Cartesian3(t.camera.position.x,t.camera.position.y,t.camera.position.z),orientation:{heading:n,pitch:i,roll:o}}}function x(e,t){e&&t.scene.camera.flyTo({...e})}function D(e,t){const n=t.dataSources.getByName(e);n.length>0&&t.flyTo(n[0])}function S(e,t){e&&t.flyTo(e)}function I(e,t){t.flyTo(e)}function k(t,n){const i=new e.Cartesian3(t[0],t[1],t[2]),o=new e.BoundingSphere(i,t[3]);n.camera.flyToBoundingSphere(o,{offset:new e.HeadingPitchRange(3.5,-.5,200),duration:2})}const L=(t,n,i,o,r)=>{if(i<=t||o<=n)return void console.error("无效的边界坐标:东必须大于西,北必须大于南");const s={destination:e.Rectangle.fromDegrees(t,n,i,o),duration:3,orientation:{heading:e.Math.toRadians(0),pitch:e.Math.toRadians(-90),roll:0}};r.camera.flyTo(s)},A=t=>{t.camera.flyTo({destination:t.scene.camera.position,orientation:{heading:e.Math.toRadians(0),pitch:e.Math.toRadians(-90),roll:0},duration:1.5})};function R(t){const n=t.scene.canvas,i=n.clientWidth/2,o=n.clientHeight/2;return t.scene.pickPosition(new e.Cartesian2(i,o))}const F=t=>{let n=!1;let i;const o=t.camera;let r=o.pitch,s=0,a=!1;function c(){if(!n||!i)return;let e=o.heading;a?e+=.005:e-=.005,t.camera.setView({destination:i,orientation:{heading:e,pitch:r}}),t.camera.moveBackward(s),requestAnimationFrame(c)}return{start:(l,d)=>{i=l||R(t),r=o.pitch,a=!!d,s=e.Cartesian3.distance(o.position,i),n=!0,c(),t.scene.screenSpaceCameraController.enableInputs=!1},end:()=>{n=!1,t.scene.screenSpaceCameraController.enableInputs=!0}}},O=e=>{let t=!1;let n=!1;function i(){if(!t)return;let o=e.camera.heading;n?o+=.001:o-=.001,e.camera.setView({orientation:{heading:o,pitch:e.camera.pitch}}),requestAnimationFrame(i)}t=!0;return{start:e=>{t=!0,n=!!e,i()},end:()=>{t=!1}}};function N(e){e.show=!1,setTimeout(()=>{e.show=!0,setTimeout(()=>{e.show=!1,setTimeout(()=>{e.show=!0},300)},300)},300)}const B=(t,n)=>{console.log("sdfjdsklf"),n||(n=1e5);let i=!1;t.camera.moveEnd.addEventListener(function(){if(i)return;const o=t.camera,r=t.camera.positionCartographic.height;console.log("cameraEnd",r);const s=o.heading,a=o.roll;if(r>n){i=!0;const n=t.camera.computeViewRectangle();if(!n)return void(i=!0);const o={longitude:0,latitude:0},c=e.Rectangle.center(n);o.longitude=e.Math.toDegrees(c.longitude),o.latitude=e.Math.toDegrees(c.latitude),t.camera.flyTo({destination:f(new e.Cartographic(o.longitude,o.latitude,r)),orientation:{heading:s,pitch:-1.5,roll:a},duration:1,complete:()=>{}})}else i=!1,t.scene.screenSpaceCameraController.maximumTiltAngle=Math.PI/2})},V=(t,n)=>{const i=t.scene,o=new e.ScreenSpaceEventHandler(i.canvas);o.setInputAction(e=>{if(n.LEFT_POSITION){const o=i.pickPosition(e.position);G(e.position,o,n.LEFT_POSITION,t)}n.PICK_FEATURE&&$(t,e.position,n.PICK_FEATURE),t._element.style.cursor="default"},e.ScreenSpaceEventType.LEFT_CLICK),o.setInputAction(e=>{if(n.MOVE_POSITION){const o=i.pickPosition(e.endPosition);G(e.endPosition,o,n.MOVE_POSITION,t)}n.MOVE_PICK_FEATURE&&$(t,e.endPosition,n.MOVE_PICK_FEATURE)},e.ScreenSpaceEventType.MOUSE_MOVE)},$=(t,n,i)=>{const o=t.scene.pickPosition(n),r=t.scene.pick(n),s={};if(r){if(t._element.style.cursor="pointer",r instanceof e.Cesium3DTileFeature){r.getPropertyIds().forEach(e=>{s[e]=r.getProperty(e)})}else r.id instanceof e.Cesium3DTileContent?(t._element.style.cursor="pointer",Object.assign(s,{name:"sdfjldks"})):r.id instanceof e.Entity?t._element.style.cursor="pointer":r.primitive&&Object.assign(s,r.primitive.properties);i({position:o,...r},s)}else i(void 0,{})},G=(t,n,i,o)=>{n||(n=e.Cartesian3.fromDegrees(0,0,0));const r=e.Cartographic.fromCartesian(n);i({windowPosition:t,position:n,lnglat:{lng:e.Math.toDegrees(r.longitude),lat:e.Math.toDegrees(r.latitude),height:r.height},cameraView:P(o)})},H=()=>`${Date.now()}${Math.round(9999999999*Math.random()+1)}`,z=()=>window.INO_CESIUM_BASE_URL,U=e=>new Promise(t=>setTimeout(t,e));class j{static tooltip;_title;_div;_message;constructor(e){const t=document.createElement("DIV");t.id="tooltip",t.className="twipsy right";const n=document.createElement("DIV");n.className="twipsy-inner",t.appendChild(n),this._div=t,this._title=n,this._message="";const i=e._element.getElementsByClassName("cesium-widget")[0];if(!i)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");i.appendChild(t),t.onmousemove=e=>{this.showAt({x:e.clientX,y:e.clientY},this._message)}}showAt(e,t){e&&t&&(this.setVisible(!0),this._title.innerHTML=t,this._div.style.left=`${e.x+10}px`,this._div.style.top=e.y-this._div.clientHeight/2+"px",this._message=t)}setVisible(e){this._div.style.display=e?"block":"none"}static createToolTip(e){return j.tooltip||(j.tooltip=new j(e)),j.tooltip}destroy(){j.tooltip&&(this._div&&this._div.parentNode.removeChild(this._div),j.tooltip=null)}}class X{static popup;_div;viewer;offset=new e.Cartesian2(140,150);position=e.Cartesian3.ZERO;constructor(e,t,n){this.viewer=e,n&&(this.offset=n),this._div=t,this._div.style.position="absolute",this._div.style.left="0",this._div.style.top="0",this._div.style.display="none";const i=e._element.getElementsByClassName("cesium-widget")[0];if(!i)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");i.appendChild(t),this.renderPosition()}showAt(e){this.position=e,e&&this.setVisible(!0)}setVisible(e){this._div.style.display=e?"block":"none"}renderPosition(){this.viewer.scene.postRender.addEventListener(()=>{if(!this.position.equals(e.Cartesian3.ZERO)){const e=this.viewer.scene.cartesianToCanvasCoordinates(this.position);this._div.style.left=e.x-this.offset.x+"px",this._div.style.top=e.y-this.offset.y+"px"}})}static createPupup(e,t,n){return X.popup||(X.popup=new X(e,t,n)),X.popup}destroy(){X.popup&&(this._div&&this._div.parentNode.removeChild(this._div),X.popup=null)}}const W=(e,t=[-180,180],n=[-90,90])=>{const i=[];for(let o=0;o<e;o++){const e=q(t),o=q(n);i.push({type:"Feature",geometry:{type:"Point",coordinates:[e,o]},properties:{}})}return{type:"FeatureCollection",features:i}};function q(e){const[t,n]=e;return Math.random()*(n-t)+t}function Z(){return`rgba(${Math.round(255*Math.random())},${Math.round(255*Math.random())},${Math.round(255*Math.random())},${Math.random()})`}const Y=(e,t=[-180,180],n=[-90,90])=>{const i=[];for(let o=0;o<e;o++){const e=Math.floor(q([3,10])),o=[];for(let i=0;i<e;i++){const e=q(t),i=q(n);o.push([e,i])}i.push({type:"Feature",geometry:{type:"LineString",coordinates:o},properties:{}})}return{type:"FeatureCollection",features:i}},K=(e,t=[-180,180],n=[-90,90])=>{const i=[];for(let o=0;o<e;o++){const e=J(t,n);i.push({type:"Feature",geometry:{type:"Polygon",coordinates:[e]}})}return{type:"FeatureCollection",features:i}};function J(e,t){const n=Math.floor(q([3,10])),i=q(e),o=q(t),r=q([1,5]),s=[];for(let e=0;e<n;e++){const t=e/n*2*Math.PI,a=q([.8*r,r]),c=i+a*Math.cos(t),l=o+a*Math.sin(t);s.push([c,l])}return s.push(s[0]),s}const Q=(t,n)=>{let i=!1;const o=new e.Viewer(t,{...p,scene3DOnly:!1});o.scene.mode=2;const r=o.scene.screenSpaceCameraController;r.enableRotate=!1,r.enableTranslate=!1,r.enableZoom=!1,r.enableTilt=!1,r.enableLook=!1,n.entities.add({position:e.Cartesian3.fromDegrees(0,0),label:{text:new e.CallbackProperty(()=>(s(),""),!0)}});const s=function(){i||o.camera.flyTo({destination:n.camera.position,orientation:{heading:n.camera.heading,pitch:n.camera.pitch,roll:n.camera.roll},duration:0})};return{viewer:o,open:()=>{i=!1},close:()=>{i=!0}}},ee=t=>{const n=[],i=e=>{t.scene.splitPosition=e},o=(e,t)=>{n.push(e),e.splitDirection=t};return{set:()=>{i(.5),function(){let e=document.getElementById("vertical-slider");if(e)return void(e.style.display="block");e=document.createElement("div"),e.id="vertical-slider";const n=t._element.getElementsByClassName("cesium-widget")[0];if(!n)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");n.appendChild(e)}(),function(){const e=document.getElementById("vertical-slider");function n(){document.removeEventListener("mousemove",o,!1)}function i(){document.addEventListener("mousemove",o,!1)}function o(n){n.preventDefault?n.preventDefault():n.returnValue=!1,e.style.left=`${n.clientX}px`;const i=n.clientX/e.parentElement.offsetWidth;t.scene.splitPosition=i}e.addEventListener("mousedown",i,!1),document.addEventListener("mouseup",n,!1)}()},remove:()=>{n.forEach(t=>{o(t,e.SplitDirection.NONE)});document.getElementById("vertical-slider").style.display="none"},setSplitPosition:i,setSplitDirection:o}},te=t=>{const n=t;let i;const o={},r=()=>{const e=n.container;e.style.display="flex";e.getElementsByClassName("cesium-viewer")[0].style.width="50%";const t=document.createElement("div");t.style={width:"50%",height:"100%"},t.id="right-screen-viewer",e.appendChild(t),i=s(t.id),o[1]=i,c(),n.camera.changed.addEventListener(()=>a(n,i)),n.scene.preRender.addEventListener(()=>a(n,i)),n.camera.percentageChanged=.01,i.camera.changed.addEventListener(()=>a(i,n)),i.scene.preRender.addEventListener(()=>a(i,n)),i.camera.percentageChanged=.01,i._splitNumber=1};function a(t,n){const i=e.Cartographic.toCartesian(t.camera.positionCartographic);n.camera.setView({destination:new e.Cartesian3(i.x,i.y,i.z),orientation:{direction:t.scene.camera._direction,up:t.scene.camera.up,heading:t.scene.camera.heading,pitch:t.scene.camera.pitch,roll:t.scene.camera.roll}})}const c=()=>{n.imageryLayers._layers.forEach(e=>{e.splitScreenBaseLayer&&i.imageryLayers.addImageryProvider(e.imageryProvider)})};return{set:()=>{r(),function(){let e=document.getElementById("split-screen-slider");if(e)return void(e.style.display="block");e=document.createElement("div"),e.id="split-screen-slider";const n=t._element.getElementsByClassName("cesium-widget")[0];if(!n)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");n.appendChild(e)}(),n._splitNumber=-1,o[-1]=n},viewerMap:o,getViewerFromKey:e=>o[e],remove:()=>{document.getElementById("split-screen-slider").style.display="none";n.container.getElementsByClassName("cesium-viewer")[0].style.width="100%",i.container.remove(),delete o[1]},setLayer:(e,t)=>{},updateBaseLayers:c}},ne=(t,n)=>{const i=e.Cartographic.fromCartesian(t),o=e.Cartographic.fromCartesian(n),r=new e.EllipsoidGeodesic;r.setEndPoints(i,o);let s=r.surfaceDistance;return s=Math.sqrt(s**2+(o.height-i.height)**2),s};function ie(e){let t=0;return e.forEach((n,i)=>{if(i===e.length-1)return;const o=ne(n,e[i+1]);t+=o}),t}function oe(t,n,i){const{EllipsoidGeodesic:o,Ellipsoid:r}=e;return new o((i=i||r.WGS84).cartesianToCartographic(t),i.cartesianToCartographic(n)).surfaceDistance}function re(e){let t=0;return e.forEach((n,i)=>{if(i===e.length-1)return;const o=oe(n,e[i+1]);t+=o}),t}const se=i=>{if(i.length<4)return e.BoundingSphere.fromPoints(i).center;const o=t([i.map(e=>[e.x,e.y])]),r=e.BoundingSphere.fromPoints(i).center,s=n(o);return new e.Cartesian3(s.geometry.coordinates[0],s.geometry.coordinates[1],r.z)};function ae(t){let n=0;const{CoplanarPolygonGeometry:i,VertexFormat:o,defined:r,Cartesian3:s}=e,a=i.createGeometry(i.fromPositions({positions:t,vertexFormat:o.POSITION_ONLY}));if(r(a)){const e=a.indices,t=a.attributes.position.values;for(let i=0;i<e.length;i+=3){const o=e[i],r=e[i+1],a=e[i+2];n+=ce(s.unpack(t,3*o,{}),s.unpack(t,3*r,{}),s.unpack(t,3*a,{}))}}return n}const ce=(t,n,i)=>{const{Cartesian3:o}=e,r=o.subtract(t,n,{}),s=o.subtract(i,n,{}),a=o.cross(r,s,r);return.5*o.magnitude(a)},le=async(t,n)=>{const i=n.map(t=>e.Cartographic.fromCartesian(t));return await e.sampleTerrainMostDetailed(t,i)},de=async(e,t)=>await e.scene.clampToHeightMostDetailed(t),pe=(t,n,i,o)=>{const r=[],s=e.Cartographic.fromCartesian(t),a=e.Cartographic.fromCartesian(n),c=180*s.longitude/Math.PI,l=180*s.latitude/Math.PI,d=180*a.longitude/Math.PI,p=180*a.latitude/Math.PI,h=Math.sqrt((c-d)*(c-d)+(l-p)*(l-p))*i,u=e.Cartesian3.clone(t),m=e.Cartesian3.clone(n),g=e.Cartesian3.distance(u,e.Cartesian3.ZERO),y=e.Cartesian3.distance(m,e.Cartesian3.ZERO);if(e.Cartesian3.normalize(u,u),e.Cartesian3.normalize(m,m),!e.Cartesian3.distance(u,m))return r;const f=e.Cartesian3.angleBetween(u,m);r.push(t);for(let t=1;t<o-1;t++){const n=1*t/(o-1),i=1-n,s=Math.sin(i*f)/Math.sin(f),a=Math.sin(n*f)/Math.sin(f),c=e.Cartesian3.multiplyByScalar(u,s,new e.Cartesian3),l=e.Cartesian3.multiplyByScalar(m,a,new e.Cartesian3);let d=e.Cartesian3.add(c,l,new e.Cartesian3);const p=n*Math.PI,C=g*i+y*n+Math.sin(p)*h;d=e.Cartesian3.multiplyByScalar(d,C,d),r.push(d)}return r.push(n),r},he=e=>{const t=e.positionCartographic.height,n=-40467.74;return Math.round(n+80955.31/(1+(t/91610.74)**7096758e-11))},ue=e=>e,me=(t,n)=>{const i=[];let o=0,r=0,s=0;const a=[];for(let n=0;n<t.length-1;++n)o+=e.Cartesian3.distance(t[n],t[n+1]);for(let n=0;n<t.length;n++)0===n?r=0:(s+=e.Cartesian3.distance(t[n-1],t[n]),r=s/o),i.push(r);const c=new e.LinearSpline({times:i,points:t});for(let e=0;e<=n;e++){const t=c.evaluate(e/n);a.push(t)}return a},ge=t=>{const n=new e.BoundingSphere(e.Cartesian3.ZERO,0);return e.BoundingSphere.fromPoints(t,n),n};class ye{_primitive;_promise;appearance;geometryInstance;drawCommand;shapePositions;needUpdate=!1;constructor(){this._primitive=void 0,this.appearance=void 0,this.geometryInstance=void 0,this._promise=null,this.drawCommand=null,this.needUpdate=!1,this.shapePositions=[]}update(e){const t=this.getPrimitive();if(t){this._primitive=t;this._primitive.update(e)}}then(e=null){return this._promise?.then(e)}catch(e=null){return this._promise?.catch(e)}isDestroyed(){return!!this._primitive}destroy(){this._primitive=void 0}setShapePositions(e){this.shapePositions=e}}class fe{_definitionChanged=new e.Event;get definitionChanged(){return this._definitionChanged}get isConstant(){return!1}}const Ce=e.BoxGeometry,ve=e.Cartesian3,we=e.defaultValue,Me=e.defined,be=e.destroyObject,_e=e.DeveloperError,Ee=e.GeometryPipeline,Te=e.Matrix3,Pe=e.Matrix4,xe=e.Transforms,De=e.VertexFormat,Se=e.BufferUsage,Ie=e.CubeMap,ke=e.DrawCommand,Le=e.loadCubeMap,Ae=e.RenderState,Re=e.VertexArray,Fe=e.BlendingState,Oe=e.SceneMode,Ne=e.ShaderProgram,Be=e.ShaderSource,Ve=new Te;class $e{constructor(t){e.defined(e.Matrix4.getRotation)||(e.Matrix4.getRotation=e.Matrix4.getMatrix3),this.sources=t.sources,this._sources=void 0,this.show=we(t.show,!0),this._command=new ke({modelMatrix:Pe.clone(Pe.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}update(e,t){const n=this;if(!this.show)return;if(e.mode!==Oe.SCENE3D&&e.mode!==Oe.MORPHING)return;if(!e.passes.render)return;const i=e.context;if(this._sources!==this.sources){this._sources=this.sources;const e=this.sources;if(!(Me(e.positiveX)&&Me(e.negativeX)&&Me(e.positiveY)&&Me(e.negativeY)&&Me(e.positiveZ)&&Me(e.negativeZ)))throw new _e("this.sources is required and must have positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ properties.");if(typeof e.positiveX!=typeof e.negativeX||typeof e.positiveX!=typeof e.positiveY||typeof e.positiveX!=typeof e.negativeY||typeof e.positiveX!=typeof e.positiveZ||typeof e.positiveX!=typeof e.negativeZ)throw new _e("this.sources properties must all be the same type.");"string"==typeof e.positiveX?Le(i,this._sources).then(e=>{n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=e}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new Ie({context:i,source:e}))}const o=this._command;if(o.modelMatrix=xe.eastNorthUpToFixedFrame(e.camera._positionWC),!Me(o.vertexArray)){o.uniformMap={u_cubeMap:()=>n._cubeMap,u_rotateMatrix:()=>Pe.getRotation(o.modelMatrix,Ve)};const e=Ce.createGeometry(Ce.fromDimensions({dimensions:new ve(2,2,2),vertexFormat:De.POSITION_ONLY})),t=this._attributeLocations=Ee.createAttributeLocations(e);o.vertexArray=Re.fromGeometry({context:i,geometry:e,attributeLocations:t,bufferUsage:Se._DRAW}),o.renderState=Ae.fromCache({blending:Fe.ALPHA_BLEND})}if(!Me(o.shaderProgram)||this._useHdr!==t){const e=new Be({defines:[t?"HDR":""],sources:["precision highp float;\n\nuniform samplerCube u_cubeMap;\nin vec3 v_texCoord;\nout vec4 fragColor;\n\nvoid main() {\n vec4 color = texture(u_cubeMap, normalize(v_texCoord));\n fragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime);\n}"]});o.shaderProgram=Ne.fromCache({context:i,vertexShaderSource:"#version 300 es\n\nprecision highp float;\n\nin vec3 position;\nout vec3 v_texCoord;\n\nuniform mat3 u_rotateMatrix;\n\nvoid main() {\n vec3 p = czm_viewRotation * u_rotateMatrix * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position));\n gl_Position = czm_projection * vec4(p, 1.0);\n v_texCoord = position;\n}\n",fragmentShaderSource:e,attributeLocations:this._attributeLocations}),this._useHdr=t}return Me(this._cubeMap)?o:void 0}isDestroyed(){return!1}destroy(){const e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),be(this)}}const Ge=t=>{const{viewer:n,sources:i}=t;return n.scene.skyBox=new e.SkyBox({sources:i}),n.scene.skyBox},He=t=>{let{viewer:n,sources:i}=t;const o=t.height?t.height:225705,r=n.scene.skyBox,s=n.scene.skyAtmosphere.show;i||(i={positiveX:`${z()}/assets/images/ground-skybox/px.jpg`,negativeX:`${z()}/assets/images/ground-skybox/nx.jpg`,positiveY:`${z()}/assets/images/ground-skybox/py.jpg`,negativeY:`${z()}/assets/images/ground-skybox/ny.jpg`,positiveZ:`${z()}/assets/images/ground-skybox/pz.jpg`,negativeZ:`${z()}/assets/images/ground-skybox/nz.jpg`});const a=new $e({sources:i});n.scene.postRender.addEventListener(()=>{const t=n.camera.position;e.Cartographic.fromCartesian(t).height<o?(n.scene.skyBox=a,n.scene.skyAtmosphere.show=!1):(n.scene.skyBox=r,n.scene.skyAtmosphere.show=s)})},ze=t=>{const n=[];let i,o;t.clock.shouldAnimate=!0;const r={},s=(e,n)=>{if(a(),e.entity.cylinder){const n=e.entity.cylinder;n.roamId=e.id,e.entity.cylinder=void 0,o=t.entities.add({position:e.property,cylinder:n})}t.trackedEntity=e.entity,n&&(i=e)},a=()=>{if(o){t.entities.remove(o);const e=n.find(e=>e.id===o.cylinder.roamId);e&&(e.entity.cylinder=o.cylinder),o=void 0}},c=()=>{t.trackedEntity=void 0,i=void 0,a()},l=e=>{t.trackedEntity?.id===e.entity.id&&c(),t.entities.remove(e.entity);const i=n.findIndex(t=>t.id===e.id);i>-1&&n.splice(i,1)},d=(e,t)=>{const n=e.property.getValue(t);if(n&&(e.status="ROAMING",m.roaming&&m.roaming(e,{time:t,position:n})),e.stopTime.secondsOfDay<t.secondsOfDay&&"END"!==e.status&&(e.status="END",m.end&&m.end(e),e.loop?p(e):c()),e.flyParams.hpr){const i=r[e.id].find(e=>e.time>t.secondsOfDay);i&&u(e,i,n)}},p=n=>{const{property:i,startTime:o,stopTime:r}=h(n);n.stopTime=r,n.startTime=o,n.property=i,n.flyParams.hpr||(n.entity.orientation=new e.VelocityOrientationProperty(i)),n.entity.position=i,n.status="START",t.clock.currentTime=o,t.clock.multiplier=1,m.reStart&&m.reStart(n)},h=t=>{const n=[],{positions:i,flyParams:o}=t,s=new e.SampledPositionProperty;let a=0;const c=e.JulianDate.now();let l=c.clone();return i.forEach((t,r)=>{let d=e.JulianDate.now();if(r){let n=0;if(o.speed){n=e.Cartesian3.distance(t,i[r-1])/(1e3*o.speed/3600)}o.times&&(n=(o.times[r]-o.times[r-1])/1e3),a+=n,d=e.JulianDate.addSeconds(c,a,new e.JulianDate)}else d=c;l=d,s.addSample(d,t),o.hpr&&n.push({time:d.secondsOfDay,heading:o.hpr[r].heading,pitch:o.hpr[r].pitch,roll:o.hpr[r].roll})}),r[t.id]=n,{property:s,startTime:c,stopTime:l}},u=(t,n,i)=>{if(!i)return;const{heading:o,pitch:r,roll:s}=n,a=new e.HeadingPitchRoll(o,r,s);t.entity.orientation=Transforms.headingPitchRollQuaternion(i,a)};t.scene.preRender.addEventListener((o,r)=>{if(n.forEach(e=>{d(e,r)}),!i)return;const s=i.entity.computeModelMatrix(t.clock.currentTime);s&&t.camera.lookAtTransform(s,new e.Cartesian3(...[-20,0,5]))});const m={};return{set:i=>{const{entity:o}=i;i.id=H(),t.entities.add(o);const{property:r,startTime:s,stopTime:a}=h(i);i.flyParams.hpr||(o.orientation=new e.VelocityOrientationProperty(r)),o.position=r;const c={...i,startTime:s,stopTime:a,property:r,status:"START"};return t.clock.currentTime=s,t.clock.multiplier=1,n.push(c),c.status="START",m.start&&m.start(c),c},tracked:s,stopTracked:c,remove:l,frameRoam:d,trackedByEntityId:(e,t)=>{const i=n.find(t=>t.entity.id===e);i&&s(i,t)},removeAll:()=>{n.forEach(e=>{l(e)}),n.length=0},Event:m,lockCameraView:e=>{i=e},updateRoamAttitude:(t,n)=>{"UP"!==n&&"DOWN"!==n||(t.entity.orientation=void 0),"front"!==n&&"back"!==n||(t.entity.orientation=new e.VelocityOrientationProperty(t.property))}}};var Ue=(e=>(e.UP="UP",e.DOWN="DOWN",e.LEFT="left",e.RIGHT="right",e.FRONT="front",e.BACK="back",e))(Ue||{}),je=(e=>(e.END="END",e.START="START",e.ROAMING="ROAMING",e))(je||{});let Xe=100,We="",qe="0";const Ze=t=>{const{viewer:n}=t,i=document.createElement("div");i.className="bottom-status-bar";const o=document.createElement("div");o.className="scale-bar",o.innerHTML="";const r=document.createElement("div");r.className="scale-label",r.innerHTML="",o.appendChild(r),i.appendChild(o);const s=document.createElement("div");s.id="bottom-status-bar-camera",t.clickCopy&&(s.style.pointerEvents="auto",s.style.cursor="pointer"),i.appendChild(s),s.style.display="flex";const a=document.createElement("div"),c=document.createElement("div"),l=n._element.getElementsByClassName("cesium-widget")[0];if(!l)throw new Error("The cesium-widget element has not finished loading yet, so the popup cannot be created!");l.appendChild(i),V(n,{MOVE_POSITION(e){s.innerHTML=`\n 经度:${e.lnglat.lng.toFixed(6)}&nbsp;&nbsp;\n 纬度:${e.lnglat.lat.toFixed(6)}&nbsp;&nbsp;\n 高程:${e.lnglat.height.toFixed(2)}&nbsp;&nbsp;\n `,t.clickCopy&&P(n),s.appendChild(c),s.appendChild(a)}}),t.clickCopy&&document.addEventListener("click",e=>{e.target.id});let d=Date.now(),p=0;const h=()=>{requestAnimationFrame(()=>{if(p+=1,p>=30){const e=Date.now(),t=e-d,n=Math.round(1e3/(t/p));d=e,p=0,a.innerHTML=`${n} FPS`}t.hpr?c.innerHTML=`\n 方位角:${e.Math.toDegrees(n.camera.heading).toFixed(1)}°&nbsp;&nbsp;\n 俯仰角:${e.Math.toDegrees(n.camera.pitch).toFixed(1)}°&nbsp;&nbsp;\n 翻滚角:${e.Math.toDegrees(n.camera.roll).toFixed(1)}°&nbsp;&nbsp;\n `:c.innerHTML="",c.innerHTML+=`\n 视高:${n.camera.positionCartographic.height.toFixed(0)}m&nbsp;&nbsp;\n `;const i=Ye(n);r.innerHTML=`${i.distanceLabel}`,h()})};h()},Ye=t=>{const n=t.camera.positionCartographic.height.toFixed(0);if(n===qe)return{barWidth:Xe,distanceLabel:We};qe=n;const i=new e.EllipsoidGeodesic,o=[1,2,3,5,10,20,30,50,100,200,300,500,1e3,2e3,3e3,5e3,1e4,2e4,3e4,5e4,1e5,2e5,3e5,5e5,1e6,2e6,3e6,5e6,1e7,2e7,3e7,5e7],r=t.scene,s=r.canvas.clientWidth,a=r.canvas.clientHeight,c=r.camera.getPickRay(new e.Cartesian2(s/2|0,a-1)),l=r.camera.getPickRay(new e.Cartesian2(1+s/2|0,a-1)),d=r.globe,p=d.pick(c,r),h=d.pick(l,r);if(!e.defined(p)||!e.defined(h))return{barWidth:Xe,distanceLabel:We};const u=d.ellipsoid.cartesianToCartographic(p),m=d.ellipsoid.cartesianToCartographic(h);i.setEndPoints(u,m);const g=i.surfaceDistance;let y;for(let t=o.length-1;!e.defined(y)&&t>=0;--t)o[t]/g<100&&(y=o[t]);if(e.defined(y)){const e=y>=1e3?`${(y/1e3).toString()} km`:`${y.toString()} m`;Xe=y/g|0,We=e}else Xe=0,We="1 m";return{barWidth:Xe,distanceLabel:We}},Ke=t=>new Promise(n=>{const{viewer:i,center:o}=t;let r=o.lng,s=1,a=null;const c=t=>{null===a&&(a=t);r-=(t-a)/2e4*2,r<-180&&(r=180,s+=1),2===s&&r>o.lng?i.camera.flyTo({destination:e.Cartesian3.fromDegrees(o.lng,o.lat,3e7),duration:2,orientation:{heading:e.Math.toRadians(360),pitch:e.Math.toRadians(-90),roll:0},easingFunction:e.EasingFunction.LINEAR_NONE,complete:()=>{i.camera.flyTo({destination:e.Cartesian3.fromDegrees(o.lng,o.lat,o.height),duration:3,orientation:{heading:e.Math.toRadians(2.8),pitch:e.Math.toRadians(-90),roll:6.282253919167732},complete:()=>{n(!0)}})}}):(i.camera.setView({destination:e.Cartesian3.fromDegrees(r,o.lat,3e7),orientation:{heading:e.Math.toRadians(360),pitch:e.Math.toRadians(-90),roll:0}}),requestAnimationFrame(c))};requestAnimationFrame(c)}),Je=(t,n,i)=>{const o=new Float64Array(24);for(let e=0;e<8;e++)o[3*e]=t[e].x,o[3*e+1]=t[e].y,o[3*e+2]=t[e].z;const r=new Uint16Array([0,1,2,0,2,3,4,6,5,4,7,6,0,4,1,1,4,5,1,5,2,2,5,6,2,6,3,3,6,7,3,7,0,0,7,4]),s={position:new e.GeometryAttribute({componentDatatype:e.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:o})},a=new e.Geometry({indices:r,attributes:s,primitiveType:e.PrimitiveType.TRIANGLES,boundingSphere:e.BoundingSphere.fromVertices(o)});return new e.GeometryInstance({geometry:a,attributes:{color:e.ColorGeometryInstanceAttribute.fromColor(n)},id:`${i}`})},Qe=(t,n,i)=>{const[o,r,s,a,c,l,d,p]=t,h=[o,r,r,s,s,a,a,o,c,l,l,d,d,p,p,c,o,c,c,l,l,r,r,o,a,p,p,d,d,s,s,a,o,a,a,p,p,c,c,o,r,l,l,d,d,s,s,r];return new e.GeometryInstance({geometry:new e.PolylineGeometry({positions:h,width:2,vertexFormat:e.PolylineColorAppearance.VERTEX_FORMAT}),attributes:{color:e.ColorGeometryInstanceAttribute.fromColor(n)},id:`${i}`})},et=(t,n)=>[e.Cartesian3.fromDegrees(t.longitude,t.latitude,n.height),e.Cartesian3.fromDegrees(t.longitude,n.latitude,n.height),e.Cartesian3.fromDegrees(n.longitude,n.latitude,n.height),e.Cartesian3.fromDegrees(n.longitude,t.latitude,n.height),e.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),e.Cartesian3.fromDegrees(t.longitude,n.latitude,t.height),e.Cartesian3.fromDegrees(n.longitude,n.latitude,t.height),e.Cartesian3.fromDegrees(n.longitude,t.latitude,t.height)],tt=(t,n,i,o,r,s)=>[e.Cartesian3.fromDegrees(t,t,r),e.Cartesian3.fromDegrees(n,n,r),e.Cartesian3.fromDegrees(i,i,r),e.Cartesian3.fromDegrees(o,o,r),e.Cartesian3.fromDegrees(t,t,s),e.Cartesian3.fromDegrees(n,n,s),e.Cartesian3.fromDegrees(i,i,s),e.Cartesian3.fromDegrees(o,o,s)],nt=3e3*Math.PI/180,it=Math.PI,ot=6378245,rt=.006693421622965943,st=(e,t)=>!(e>72.004&&e<137.8347&&t>.8293&&t<55.8271),at=(e,t)=>{let n=2*e-100+3*t+.2*t*t+.1*e*t+.2*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*it)+20*Math.sin(2*e*it))/3,n+=2*(20*Math.sin(t*it)+40*Math.sin(t/3*it))/3,n+=2*(160*Math.sin(t/12*it)+320*Math.sin(t*it/30))/3,n},ct=(e,t)=>{let n=300+e+2*t+.1*e*e+.1*e*t+.1*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*e*it)+20*Math.sin(2*e*it))/3,n+=2*(20*Math.sin(e*it)+40*Math.sin(e/3*it))/3,n+=2*(150*Math.sin(e/12*it)+300*Math.sin(e/30*it))/3,n},lt=(e,t)=>{if(st(e,t))return[e,t];let n=at(e-105,t-35),i=ct(e-105,t-35);const o=t/180*it;let r=Math.sin(o);r=1-rt*r*r;const s=Math.sqrt(r);n=180*n/(ot*(1-rt)/(r*s)*it),i=180*i/(ot/s*Math.cos(o)*it);return[e+i,t+n]},dt=(e,t)=>{if(st(e,t))return[e,t];let n=at(e-105,t-35),i=ct(e-105,t-35);const o=t/180*it;let r=Math.sin(o);r=1-rt*r*r;const s=Math.sqrt(r);n=180*n/(ot*(1-rt)/(r*s)*it),i=180*i/(ot/s*Math.cos(o)*it);return[2*e-(e+i),2*t-(t+n)]},pt=(e,t)=>{const n=e,i=t,o=Math.sqrt(n*n+i*i)+2e-5*Math.sin(i*nt),r=Math.atan2(i,n)+3e-6*Math.cos(n*nt);return[o*Math.cos(r)+.0065,o*Math.sin(r)+.006]},ht=(e,t)=>{const n=e-.0065,i=t-.006,o=Math.sqrt(n*n+i*i)-2e-5*Math.sin(i*nt),r=Math.atan2(i,n)-3e-6*Math.cos(n*nt);return[o*Math.cos(r),o*Math.sin(r)]};class ut{static wgs84ToGcj02(e){const[t,n]=lt(e.lng,e.lat);return{lng:t,lat:n}}static gcj02ToWgs84(e){const[t,n]=dt(e.lng,e.lat);return{lng:t,lat:n}}static gcj02ToBd09(e){const[t,n]=pt(e.lng,e.lat);return{lng:t,lat:n}}static bd09ToGcj02(e){const[t,n]=ht(e.lng,e.lat);return{lng:t,lat:n}}static bd09ToWgs84(e){const[t,n]=((e,t)=>{const[n,i]=ht(e,t);return dt(n,i)})(e.lng,e.lat);return{lng:t,lat:n}}static wgs84ToBd09(e){const[t,n]=((e,t)=>{const[n,i]=lt(e,t);return pt(n,i)})(e.lng,e.lat);return{lng:t,lat:n}}}let mt;const gt=t=>new Promise(n=>{document.body.style.cursor="pointer",t._element.style.cursor="pointer",mt||(mt=new e.ScreenSpaceEventHandler(t.scene.canvas)),mt.setInputAction(async o=>{const r=t.scene.pickPosition(o.position);await t.scene.clampToHeightMostDetailed([r]);const s=i(r);t._element.style.cursor="default",mt.removeInputAction(e.ScreenSpaceEventType.LEFT_CLICK),n({position:r,lnglat:s})},e.ScreenSpaceEventType.LEFT_CLICK)}),yt=(e,t)=>{const n={},i=t.getFeature(e);return i?ft(i):n},ft=e=>{const t={};return e.getPropertyIds().forEach(n=>{t[n]=e.getProperty(n)}),t};export{fe as BaseMaterialProperty,ye as BasePrimitive,o as Common,ut as CoordinateTransformer,p as DefaultViewerOptions,Ue as FlyAttitude,X as Popup,je as RoamStatus,j as Tooltip,ae as calcArea,ge as calcBoundingSphereFromPositions,ue as calcCameraHeightFromZoom,oe as calcGeodesicDistance,re as calcGeodesicDistances,me as calcLerpPosition,se as calcPoistionCenter,de as calcSceneHeightFromPositions,ne as calcSpaceDistance,ie as calcSpaceDistances,le as calcTerrainHeightFromPositions,ce as calcTriangleArea,he as calcZoomFromCameraHeight,pe as clacPositionsForParabola,Ze as createBottomStatusBar,Q as createEagleEye,Ke as createOpenAnim,ze as createRoamHandler,ee as createRollerShutterHandler,Ge as createSkyBox,He as createSkyBoxOnGround,te as createSplitScreenHandler,U as delayTime,O as flyByRotateOut,F as flyByRotatePoint,x as flyToCameraView,I as flyToCesium3DTile,D as flyToDataSource,k as flyToFromSphere,S as flyToImagery,E as flyToLnglat,A as flyToNorth,T as flyToPosition,L as flyToRectangleBounds,P as getCameraView,d as getCesiumForAutoFitScale,yt as getFeaturesFromTileContent,ft as getFeaturesFromTileFeature,z as getInoCesiumBaseUrl,R as getScreenCenterPoint,s as initCesium,V as initCesiumEvent,et as makeGridFromElevationExtrema,Je as makeGridToInstanceForBox,Qe as makeGridToInstanceForLine,f as makeLnglatToPosition,w as makeLnglatsToLineGeojson,v as makeLnglatsToPointGeojson,M as makeLnglatsToPolygonGeojson,y as makeLnglatsToPositions,C as makePositionsClose,u as makePositionsForAntiClockwise,h as makePositionsForClockwise,m as makePositionsToLnglats,g as makePositiontoLnglat,b as makeYawPitchRollToHeadingPitchRoll,tt as mekeGridPolygonAndHeight,H as numberId,gt as pickPoint,Z as randomColor,W as randomPointToGeoJson,K as randomPolygonToGeoJson,Y as randomPolylineToGeoJson,B as setCameraAutoBackTiltToZero,l as setCesiumForAutoFitScale,a as setGlobeEnabled,c as setGlobeOpatity,_ as setViewToLnglat,N as twinkleModel};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ino-cesium/common",
3
3
  "type": "module",
4
- "version": "0.0.21",
4
+ "version": "0.0.22-beta.0",
5
5
  "author": "koino",
6
6
  "keywords": [
7
7
  "cesium",
@@ -29,7 +29,7 @@
29
29
  "@turf/turf": "^7.0.0"
30
30
  },
31
31
  "peerDependencies": {
32
- "cesium": "1.131.0"
32
+ "cesium": "1.134.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/geojson": "^7946.0.14"