@juun-roh/cesium-utils 0.0.9 → 0.0.11
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/README.md +8 -0
- package/dist/chunk-2JNRK7SN.js +1 -0
- package/dist/chunk-OFZW33MB.js +1 -0
- package/dist/chunk-Q4LRNVAX.js +1 -0
- package/dist/collection/index.cjs +1 -1
- package/dist/collection/index.js +1 -1
- package/dist/{hybrid-terrain-provider-BGwAgH9H.d.cts → hybrid-terrain-provider-CEJA1Xhw.d.cts} +6 -23
- package/dist/{hybrid-terrain-provider-BGwAgH9H.d.ts → hybrid-terrain-provider-CEJA1Xhw.d.ts} +6 -23
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/terrain/index.cjs +1 -1
- package/dist/terrain/index.d.cts +2 -2
- package/dist/terrain/index.d.ts +2 -2
- package/dist/terrain/index.js +1 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.cts +7 -12
- package/dist/utils/index.d.ts +7 -12
- package/dist/utils/index.js +1 -1
- package/dist/viewer/index.cjs +1 -1
- package/dist/viewer/index.d.cts +8 -1
- package/dist/viewer/index.d.ts +8 -1
- package/dist/viewer/index.js +1 -1
- package/package.json +13 -12
- package/dist/chunk-NBGR2C26.js +0 -1
- package/dist/chunk-RJNF3DQR.js +0 -1
- package/dist/chunk-STARYORM.js +0 -1
- package/dist/chunk-YZ7AUGIO.js +0 -1
package/README.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Viewer as p}from"cesium";import{defined as m}from"cesium";function c(e,i){if(m(e)&&m(i)){let{camera:o}=e;i.camera.position=o.positionWC.clone(),i.camera.direction=o.directionWC.clone(),i.camera.up=o.upWC.clone()}}function y(e,i,o){let d={baseLayerPicker:e.baseLayerPicker!==void 0,geocoder:e.geocoder!==void 0,homeButton:e.homeButton!==void 0,sceneModePicker:e.sceneModePicker!==void 0,timeline:e.timeline!==void 0,navigationHelpButton:e.navigationHelpButton!==void 0,animation:e.animation!==void 0,fullscreenButton:e.fullscreenButton!==void 0,shouldAnimate:e.clock.shouldAnimate,terrainProvider:e.terrainProvider,requestRenderMode:e.scene.requestRenderMode,infoBox:e.infoBox!==void 0},n=new p(i,{...d,...o});c(e,n);let l=e.imageryLayers;n.imageryLayers.removeAll();for(let a=0;a<l.length;a++){let s=l.get(a);n.imageryLayers.addImageryProvider(s.imageryProvider,a)}n.clock.startTime=e.clock.startTime.clone(),n.clock.stopTime=e.clock.stopTime.clone(),n.clock.currentTime=e.clock.currentTime.clone(),n.clock.multiplier=e.clock.multiplier,n.clock.clockStep=e.clock.clockStep,n.clock.clockRange=e.clock.clockRange,n.clock.shouldAnimate=e.clock.shouldAnimate,n.scene.globe.enableLighting=e.scene.globe.enableLighting,n.scene.globe.depthTestAgainstTerrain=e.scene.globe.depthTestAgainstTerrain,n.scene.screenSpaceCameraController.enableCollisionDetection=e.scene.screenSpaceCameraController.enableCollisionDetection;let t=e.scene.screenSpaceCameraController.tiltEventTypes;t&&(n.scene.screenSpaceCameraController.tiltEventTypes=Array.isArray(t)?[...t]:t);let r=e.scene.screenSpaceCameraController.zoomEventTypes;return r&&(n.scene.screenSpaceCameraController.zoomEventTypes=Array.isArray(r)?[...r]:r),n}export{c as a,y as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Rectangle as T}from"cesium";function g(s,r){if(r.size===0)return new T;let e=Number.POSITIVE_INFINITY,i=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY,a=Number.NEGATIVE_INFINITY,u=Array.from(r.keys()),l=Math.min(...u),d=r.get(l);if(d){let{start:m,end:c}=d,h=s.tileXYToRectangle(m.x,m.y,l),v=s.tileXYToRectangle(c.x,c.y,l);e=Math.min(h.west,e),i=Math.min(v.south,i),t=Math.max(v.east,t),a=Math.max(h.north,a)}return new T(e,i,t,a)}import{CesiumTerrainProvider as f}from"cesium";var n=class{_terrainProvider;_rectangle;_tileRanges;_ready=!1;_credit;_isCustom;constructor(r){this._terrainProvider=r.terrainProvider,this._tileRanges=r.tileRanges,this._credit=r.credit||"custom",this._isCustom=r.isCustom!==void 0?r.isCustom:!0,this._rectangle=g(r.terrainProvider.tilingScheme,r.tileRanges),r.tileRanges.forEach((e,i)=>{this._terrainProvider.availability?.addAvailableTileRange(i,e.start.x,e.start.y,e.end.x,e.end.y)}),this._ready=!0}contains(r,e,i){if(this._tileRanges.size===0||!this._tileRanges.has(i))return!1;let t=this._tileRanges.get(i);return r>=t.start.x&&r<=t.end.x&&e>=t.start.y&&e<=t.end.y}requestTileGeometry(r,e,i,t){if(!(!this._ready||!this.contains(r,e,i)))return this._terrainProvider.requestTileGeometry(r,e,i,t)}getTileDataAvailable(r,e,i){if(this._tileRanges.size===0||!this._tileRanges.has(i))return!1;let t=this._tileRanges.get(i);return r>=t.start.x&&r<=t.end.x&&e>=t.start.y&&e<=t.end.y}get isCustom(){return this._isCustom}get credit(){return this._credit}get terrainProvider(){return this._terrainProvider}get tileRanges(){return this._tileRanges}get rectangle(){return this._rectangle}get ready(){return this._ready}};(r=>{async function s(e,i,t){let a=t?.credit||"custom",u=await f.fromUrl(e,{...t,credit:a});return new r({terrainProvider:u,tileRanges:i,credit:a})}r.fromUrl=s})(n||={});var o=class extends Array{add(r){if(Array.isArray(r)){for(let i of r)this.add(i);return this.length}let e;return r instanceof n?e=r:e=new n(r),this.push(e)}remove(r){if(Array.isArray(r))return r.forEach(i=>this.remove(i)),this;let e=this.indexOf(r);return e>=0&&this.splice(e,1),this}removeAll(){this.length=0}};import{EllipsoidTerrainProvider as _}from"cesium";var b=class{_terrainAreas=new o;_terrainProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(r){this._terrainProvider=r.terrainProvider,this._fallbackProvider=r.fallbackProvider||new _,this._tilingScheme=r.terrainProvider.tilingScheme,this._terrainAreas=new o(...r.terrainAreas),this._availability=r.terrainProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get terrainAreas(){return[...this._terrainAreas]}get defaultProvider(){return this._terrainProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._terrainProvider?.credit}get errorEvent(){return this._terrainProvider.errorEvent}get hasWaterMask(){return this._terrainProvider.hasWaterMask}get hasVertexNormals(){return this._terrainProvider.hasVertexNormals}loadTileDataAvailability(r,e,i){return this._terrainProvider.loadTileDataAvailability(r,e,i)}getLevelMaximumGeometricError(r){return this._terrainProvider.getLevelMaximumGeometricError(r)}requestTileGeometry(r,e,i,t){if(this._ready){for(let a of this._terrainAreas)if(a.contains(r,e,i))return a.requestTileGeometry(r,e,i,t);return this._terrainProvider.getTileDataAvailable(r,e,i)?this._terrainProvider.requestTileGeometry(r,e,i,t):this._fallbackProvider.requestTileGeometry(r,e,i,t)}}getTileDataAvailable(r,e,i){for(let t of this._terrainAreas)if(t.contains(r,e,i))return t.getTileDataAvailable(r,e,i);return this._terrainProvider.getTileDataAvailable(r,e,i)}};export{g as a,n as b,o as c,b as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Color as l,Entity as A,HeightReference as M,Rectangle as P,TileCoordinatesImageryProvider as O}from"cesium";import{defined as w,EntityCollection as L}from"cesium";var C=class s{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;constructor({collection:e,tag:t}){this.tag=t||"default",this.collection=e}[Symbol.iterator](){return this.values[Symbol.iterator]()}_emit(e,t){let i=this._eventListeners.get(e);if(i){let r={type:e,...t};i.forEach(n=>n(r))}}_addToTagMap(e,t){this._tagMap.has(t)||this._tagMap.set(t,new Set),this._tagMap.get(t)?.add(e)}_removeFromTagMap(e){let t=e[s.symbol],i=this._tagMap.get(t);i&&(i.delete(e),i.size===0&&this._tagMap.delete(t))}_invalidateCache(){this._valuesCache=null}addEventListener(e,t){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(t),this}removeEventListener(e,t){return this._eventListeners.get(e)?.delete(t),this}add(e,t=this.tag,i){return Array.isArray(e)?e.forEach(r=>{this.add(r,t)}):(Object.defineProperty(e,s.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,i),this._addToTagMap(e,t),this._invalidateCache(),this._emit("add",{items:[e],tag:t})),e}contains(e){if(typeof e=="object")return this.collection.contains(e);let t=this._tagMap.get(e);return!!t&&t.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)){let r=this.collection.remove(e);return r&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),r}if(Array.isArray(e)){if(e.length===0)return!1;let r=!1;for(let n of e)this.remove(n)&&(r=!0);return r}let t=this.get(e);if(t.length===0)return!1;let i=!1;for(let r of t)this.remove(r)&&(i=!0);return i}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}get values(){if(this.collection instanceof L)return this.collection.values;{let e=[];for(let t=0;t<this.collection.length;t++)e.push(this.collection.get(t));return e}}get length(){return this.values?.length||0}get(e){let t=this._tagMap.get(e);return t?Array.from(t):[]}first(e){let t=this._tagMap.get(e);if(t&&t.size>0)return t.values().next().value}get tags(){return Array.from(this._tagMap.keys())}update(e,t){let i=this.get(e);for(let r of i)this._removeFromTagMap(r),Object.defineProperty(r,s.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(r,t);return i.length>0&&this._emit("update",{items:i,tag:t}),i.length}show(e){let t=this.get(e);for(let i of t)w(i.show)&&(i.show=!0);return this}hide(e){let t=this.get(e);for(let i of t)w(i.show)&&(i.show=!1);return this}toggle(e){let t=this.get(e);for(let i of t)w(i.show)&&(i.show=!i.show);return this}setProperty(e,t,i=this.tag){let r=this.get(i);for(let n of r)if(e in n&&typeof n[e]!="function"){if(I(n,e))throw Error(`setProperty(${n}, ${e}) failed; The property is readonly.`);n[e]=t}return this}filter(e,t){return(t?this.get(t):this.values).filter(e)}forEach(e,t){(t?this.get(t):this.values).forEach((r,n)=>e(r,n))}map(e,t){return(t?this.get(t):this.values).map(e)}find(e,t){return(t?this.get(t):this.values).find(e)}},E=C;var v=class s{_viewer;_collection;_terrainProvider;_visible=!1;_level=15;_tileCoordinatesLayer;_colors=new Map([["custom",l.RED],["default",l.BLUE],["fallback",l.GRAY],["grid",l.YELLOW]]);constructor(e,t){this._viewer=e,this._collection=new E({collection:e.entities,tag:s.tag.default}),t&&(t.colors&&Object.entries(t.colors).forEach(([i,r])=>{this._colors.set(i,r)}),t.tile!==void 0&&(this._visible=t.tile),t.activeLevel!==void 0&&(this._level=t.activeLevel),t.terrainProvider&&this.setTerrainProvider(t.terrainProvider))}setTerrainProvider(e){this._terrainProvider=e,this.update()}update(){this.clear(),this._visible&&this.show(this._level)}clear(){this._collection.remove(this._collection.tags)}show(e=15){if(!this._terrainProvider)return;this._collection.remove(s.tag.grid),this._level=e;let t=this._terrainProvider.tilingScheme;this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new O({tilingScheme:t,color:l.YELLOW})));let i=(o,a,d)=>{if(this._terrainProvider){for(let g of this._terrainProvider.terrainAreas)if(g.contains(o,a,d))return g.isCustom?this._colors.get("custom")||l.RED:this._colors.get("default")||l.BLUE;if(this._terrainProvider.getTileDataAvailable(o,a,d))return this._colors.get("default")||l.BLUE}return this._colors.get("fallback")||l.TRANSPARENT},r=this._getVisibleRectangle();if(!r)return;function n(o){return o&&Number.isFinite(o.west)&&Number.isFinite(o.south)&&Number.isFinite(o.east)&&Number.isFinite(o.north)&&o.west<=o.east&&o.south<=o.north}if(!n(r)){console.warn("Invalid visible rectangle detected, skipping grid display");return}try{let o=t.positionToTileXY(P.northwest(r),e),a=t.positionToTileXY(P.southeast(r),e);if(!o||!a)return;let d=100,g=Math.min(a.x-o.x+1,d),p=Math.min(a.y-o.y+1,d);for(let c=o.x;c<=o.x+g-1;c++)for(let h=o.y;h<=o.y+p-1;h++)try{let u=t.tileXYToRectangle(c,h,e);if(!n(u)){console.warn(`Invalid rectangle for tile (${c}, ${h}, ${e}), skipping`);continue}let y=i(c,h,e),m=s.createRectangle(u,y.withAlpha(.3));m.properties?.addProperty("tileX",c),m.properties?.addProperty("tileY",h),m.properties?.addProperty("tileLevel",e),this._collection.add(m,s.tag.grid)}catch(u){console.warn(`Error creating tile (${c}, ${h}, ${e}): ${u.message}`);continue}console.log("\u{1F680} ~ TerrainVisualizer ~ showGrid ~ collection:",this._collection),this._visible=!0}catch(o){console.error("Error displaying tile grid:",o)}}hide(){this._collection.remove(s.tag.grid),this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this._visible=!1}setColors(e){Object.entries(e).forEach(([t,i])=>{this._colors.set(t,i)}),this.update()}flyTo(e,t){let{rectangle:i}=e;this._viewer.camera.flyTo({destination:i,...t,complete:()=>{this._visible&&this.update()}})}_getVisibleRectangle(){return this._viewer.camera.computeViewRectangle()}get level(){return this._level}set level(e){this._level=e,this._visible&&this.update()}get visible(){return this._visible}get collection(){return this._collection}get viewer(){return this._viewer}get colors(){return this._colors}get terrainProvider(){return this._terrainProvider}};(i=>{i.tag={default:"Terrain Visualizer",boundary:"Terrain Visualizer Boundary",grid:"Terrain Visualizer Tile Grid"};function e(r,n){return new A({rectangle:{coordinates:r,material:n,heightReference:M.CLAMP_TO_GROUND}})}i.createRectangle=e;function t(r,n,o){let a=o?.tag||"terrain_area_visualization",d=o?.color||l.RED,g=o?.maxTilesToShow||100,p=o?.show??!0,c=o?.alpha||.7,h=o?.tileAlpha||.2,u=new E({collection:n.entities,tag:a}),{rectangle:y}=r;if(u.add(i.createRectangle(y,d.withAlpha(c)),a),p&&r.tileRanges.size>0){let{tilingScheme:m}=r.terrainProvider,b=0;r.tileRanges.forEach((f,x)=>{for(let _=f.start.x;_<=f.end.x&&b<g;_++)for(let T=f.start.y;T<=f.end.y&&b<g;T++){let R=m.tileXYToRectangle(_,T,x);u.add(e(R,d.withAlpha(h)),`${a}_tile`),b++}})}return u}i.visualize=t})(v||={});function I(s,e){let t=!1,i=Object.getOwnPropertyDescriptor(s,e);if(!i){let r=Object.getPrototypeOf(s);for(;r&&!i;)i=Object.getOwnPropertyDescriptor(r,e),r=Object.getPrototypeOf(r)}return i&&i.get&&!i.set&&(t=!0),t}export{v as a,I as b,E as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var I=Object.defineProperty;var
|
|
1
|
+
"use strict";var I=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var O=(n,e)=>{for(var t in e)I(n,t,{get:e[t],enumerable:!0})},S=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of A(e))!M.call(n,r)&&r!==t&&I(n,r,{get:()=>e[r],enumerable:!(i=L(e,r))||i.enumerable});return n};var V=n=>S(I({},"__esModule",{value:!0}),n);var j={};O(j,{Collection:()=>p});module.exports=V(j);var v=require("cesium");var s=require("cesium");var f=class n{_viewer;_collection;_terrainProvider;_visible=!1;_level=15;_tileCoordinatesLayer;_colors=new Map([["custom",s.Color.RED],["default",s.Color.BLUE],["fallback",s.Color.GRAY],["grid",s.Color.YELLOW]]);constructor(e,t){this._viewer=e,this._collection=new p({collection:e.entities,tag:n.tag.default}),t&&(t.colors&&Object.entries(t.colors).forEach(([i,r])=>{this._colors.set(i,r)}),t.tile!==void 0&&(this._visible=t.tile),t.activeLevel!==void 0&&(this._level=t.activeLevel),t.terrainProvider&&this.setTerrainProvider(t.terrainProvider))}setTerrainProvider(e){this._terrainProvider=e,this.update()}update(){this.clear(),this._visible&&this.show(this._level)}clear(){this._collection.remove(this._collection.tags)}show(e=15){if(!this._terrainProvider)return;this._collection.remove(n.tag.grid),this._level=e;let t=this._terrainProvider.tilingScheme;this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new s.TileCoordinatesImageryProvider({tilingScheme:t,color:s.Color.YELLOW})));let i=(o,l,d)=>{if(this._terrainProvider){for(let g of this._terrainProvider.terrainAreas)if(g.contains(o,l,d))return g.isCustom?this._colors.get("custom")||s.Color.RED:this._colors.get("default")||s.Color.BLUE;if(this._terrainProvider.getTileDataAvailable(o,l,d))return this._colors.get("default")||s.Color.BLUE}return this._colors.get("fallback")||s.Color.TRANSPARENT},r=this._getVisibleRectangle();if(!r)return;function a(o){return o&&Number.isFinite(o.west)&&Number.isFinite(o.south)&&Number.isFinite(o.east)&&Number.isFinite(o.north)&&o.west<=o.east&&o.south<=o.north}if(!a(r)){console.warn("Invalid visible rectangle detected, skipping grid display");return}try{let o=t.positionToTileXY(s.Rectangle.northwest(r),e),l=t.positionToTileXY(s.Rectangle.southeast(r),e);if(!o||!l)return;let d=100,g=Math.min(l.x-o.x+1,d),b=Math.min(l.y-o.y+1,d);for(let c=o.x;c<=o.x+g-1;c++)for(let h=o.y;h<=o.y+b-1;h++)try{let u=t.tileXYToRectangle(c,h,e);if(!a(u)){console.warn(`Invalid rectangle for tile (${c}, ${h}, ${e}), skipping`);continue}let _=i(c,h,e),m=n.createRectangle(u,_.withAlpha(.3));m.properties?.addProperty("tileX",c),m.properties?.addProperty("tileY",h),m.properties?.addProperty("tileLevel",e),this._collection.add(m,n.tag.grid)}catch(u){console.warn(`Error creating tile (${c}, ${h}, ${e}): ${u.message}`);continue}console.log("\u{1F680} ~ TerrainVisualizer ~ showGrid ~ collection:",this._collection),this._visible=!0}catch(o){console.error("Error displaying tile grid:",o)}}hide(){this._collection.remove(n.tag.grid),this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this._visible=!1}setColors(e){Object.entries(e).forEach(([t,i])=>{this._colors.set(t,i)}),this.update()}flyTo(e,t){let{rectangle:i}=e;this._viewer.camera.flyTo({destination:i,...t,complete:()=>{this._visible&&this.update()}})}_getVisibleRectangle(){return this._viewer.camera.computeViewRectangle()}get level(){return this._level}set level(e){this._level=e,this._visible&&this.update()}get visible(){return this._visible}get collection(){return this._collection}get viewer(){return this._viewer}get colors(){return this._colors}get terrainProvider(){return this._terrainProvider}};(i=>{i.tag={default:"Terrain Visualizer",boundary:"Terrain Visualizer Boundary",grid:"Terrain Visualizer Tile Grid"};function e(r,a){return new s.Entity({rectangle:{coordinates:r,material:a,heightReference:s.HeightReference.CLAMP_TO_GROUND}})}i.createRectangle=e;function t(r,a,o){let l=o?.tag||"terrain_area_visualization",d=o?.color||s.Color.RED,g=o?.maxTilesToShow||100,b=o?.show??!0,c=o?.alpha||.7,h=o?.tileAlpha||.2,u=new p({collection:a.entities,tag:l}),{rectangle:_}=r;if(u.add(i.createRectangle(_,d.withAlpha(c)),l),b&&r.tileRanges.size>0){let{tilingScheme:m}=r.terrainProvider,T=0;r.tileRanges.forEach((y,P)=>{for(let w=y.start.x;w<=y.end.x&&T<g;w++)for(let C=y.start.y;C<=y.end.y&&T<g;C++){let R=m.tileXYToRectangle(w,C,P);u.add(e(R,d.withAlpha(h)),`${l}_tile`),T++}})}return u}i.visualize=t})(f||={});function E(n,e){let t=!1,i=Object.getOwnPropertyDescriptor(n,e);if(!i){let r=Object.getPrototypeOf(n);for(;r&&!i;)i=Object.getOwnPropertyDescriptor(r,e),r=Object.getPrototypeOf(r)}return i&&i.get&&!i.set&&(t=!0),t}var x=class n{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;constructor({collection:e,tag:t}){this.tag=t||"default",this.collection=e}[Symbol.iterator](){return this.values[Symbol.iterator]()}_emit(e,t){let i=this._eventListeners.get(e);if(i){let r={type:e,...t};i.forEach(a=>a(r))}}_addToTagMap(e,t){this._tagMap.has(t)||this._tagMap.set(t,new Set),this._tagMap.get(t)?.add(e)}_removeFromTagMap(e){let t=e[n.symbol],i=this._tagMap.get(t);i&&(i.delete(e),i.size===0&&this._tagMap.delete(t))}_invalidateCache(){this._valuesCache=null}addEventListener(e,t){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(t),this}removeEventListener(e,t){return this._eventListeners.get(e)?.delete(t),this}add(e,t=this.tag,i){return Array.isArray(e)?e.forEach(r=>{this.add(r,t)}):(Object.defineProperty(e,n.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,i),this._addToTagMap(e,t),this._invalidateCache(),this._emit("add",{items:[e],tag:t})),e}contains(e){if(typeof e=="object")return this.collection.contains(e);let t=this._tagMap.get(e);return!!t&&t.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)){let r=this.collection.remove(e);return r&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),r}if(Array.isArray(e)){if(e.length===0)return!1;let r=!1;for(let a of e)this.remove(a)&&(r=!0);return r}let t=this.get(e);if(t.length===0)return!1;let i=!1;for(let r of t)this.remove(r)&&(i=!0);return i}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}get values(){if(this.collection instanceof v.EntityCollection)return this.collection.values;{let e=[];for(let t=0;t<this.collection.length;t++)e.push(this.collection.get(t));return e}}get length(){return this.values?.length||0}get(e){let t=this._tagMap.get(e);return t?Array.from(t):[]}first(e){let t=this._tagMap.get(e);if(t&&t.size>0)return t.values().next().value}get tags(){return Array.from(this._tagMap.keys())}update(e,t){let i=this.get(e);for(let r of i)this._removeFromTagMap(r),Object.defineProperty(r,n.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(r,t);return i.length>0&&this._emit("update",{items:i,tag:t}),i.length}show(e){let t=this.get(e);for(let i of t)(0,v.defined)(i.show)&&(i.show=!0);return this}hide(e){let t=this.get(e);for(let i of t)(0,v.defined)(i.show)&&(i.show=!1);return this}toggle(e){let t=this.get(e);for(let i of t)(0,v.defined)(i.show)&&(i.show=!i.show);return this}setProperty(e,t,i=this.tag){let r=this.get(i);for(let a of r)if(e in a&&typeof a[e]!="function"){if(E(a,e))throw Error(`setProperty(${a}, ${e}) failed; The property is readonly.`);a[e]=t}return this}filter(e,t){return(t?this.get(t):this.values).filter(e)}forEach(e,t){(t?this.get(t):this.values).forEach((r,a)=>e(r,a))}map(e,t){return(t?this.get(t):this.values).map(e)}find(e,t){return(t?this.get(t):this.values).find(e)}},p=x;
|
package/dist/collection/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as o}from"../chunk-
|
|
1
|
+
import{c as o}from"../chunk-Q4LRNVAX.js";export{o as Collection};
|
package/dist/{hybrid-terrain-provider-BGwAgH9H.d.cts → hybrid-terrain-provider-CEJA1Xhw.d.cts}
RENAMED
|
@@ -140,20 +140,11 @@ declare class HybridTerrainProvider implements TerrainProvider {
|
|
|
140
140
|
private _ready;
|
|
141
141
|
private _availability?;
|
|
142
142
|
/**
|
|
143
|
-
* Creates a new `HybridTerrainProvider
|
|
144
|
-
* instead of the constructor for async initialization.
|
|
145
|
-
* @param terrainProvider The initialized default terrain provider
|
|
146
|
-
* @param fallbackProvider The initialized fallback terrain provider
|
|
147
|
-
* @param terrainAreas The array of initialized terrain areas
|
|
148
|
-
* @private - Use {@link HybridTerrainProvider.create} instead.
|
|
149
|
-
*/
|
|
150
|
-
private constructor();
|
|
151
|
-
/**
|
|
152
|
-
* Asynchronously creates a new `HybridTerrainProvider`.
|
|
143
|
+
* Creates a new `HybridTerrainProvider` instance.
|
|
153
144
|
* @param options {@link HybridTerrainProvider.ConstructorOptions}
|
|
154
|
-
* @returns A
|
|
145
|
+
* @returns A new `HybridTerrainProvider` instance.
|
|
155
146
|
*/
|
|
156
|
-
|
|
147
|
+
constructor(options: HybridTerrainProvider.ConstructorOptions);
|
|
157
148
|
/**
|
|
158
149
|
* Gets a value indicating whether or not the provider is ready for use,
|
|
159
150
|
* or a promise that resolves when the provider becomes ready.
|
|
@@ -238,20 +229,12 @@ declare namespace HybridTerrainProvider {
|
|
|
238
229
|
/** Initialization options for `HybridTerrainProvider` constructor. */
|
|
239
230
|
interface ConstructorOptions {
|
|
240
231
|
/** An array of terrain areas to include in the hybrid terrain. */
|
|
241
|
-
terrainAreas: TerrainArea
|
|
232
|
+
terrainAreas: TerrainArea[];
|
|
242
233
|
/** Default provider to use outside of specified terrain areas. */
|
|
243
|
-
terrainProvider: TerrainProvider
|
|
234
|
+
terrainProvider: TerrainProvider;
|
|
244
235
|
/** Optional fallback provider when data is not available from default provider. @default EllipsoidTerrainProvider */
|
|
245
|
-
fallbackProvider?: TerrainProvider
|
|
236
|
+
fallbackProvider?: TerrainProvider;
|
|
246
237
|
}
|
|
247
|
-
/**
|
|
248
|
-
* Creates a `HybridTerrainProvider` with a custom terrain area overlaid on a base terrain.
|
|
249
|
-
* @param customTerrainUrl URL to the custom terrain.
|
|
250
|
-
* @param baseTerrainUrl URL to the base terrain.
|
|
251
|
-
* @param tileRanges Tile ranges defining the custom terrain area.
|
|
252
|
-
* @returns A promise resolving to a new `HybridTerrainProvider`.
|
|
253
|
-
*/
|
|
254
|
-
function createOverlay(customTerrainUrl: string, baseTerrainUrl: string, tileRanges: Map<number, TileRange>): Promise<Awaited<HybridTerrainProvider>>;
|
|
255
238
|
}
|
|
256
239
|
|
|
257
240
|
export { HybridTerrainProvider as H, TerrainArea as T, type TileRange as a };
|
package/dist/{hybrid-terrain-provider-BGwAgH9H.d.ts → hybrid-terrain-provider-CEJA1Xhw.d.ts}
RENAMED
|
@@ -140,20 +140,11 @@ declare class HybridTerrainProvider implements TerrainProvider {
|
|
|
140
140
|
private _ready;
|
|
141
141
|
private _availability?;
|
|
142
142
|
/**
|
|
143
|
-
* Creates a new `HybridTerrainProvider
|
|
144
|
-
* instead of the constructor for async initialization.
|
|
145
|
-
* @param terrainProvider The initialized default terrain provider
|
|
146
|
-
* @param fallbackProvider The initialized fallback terrain provider
|
|
147
|
-
* @param terrainAreas The array of initialized terrain areas
|
|
148
|
-
* @private - Use {@link HybridTerrainProvider.create} instead.
|
|
149
|
-
*/
|
|
150
|
-
private constructor();
|
|
151
|
-
/**
|
|
152
|
-
* Asynchronously creates a new `HybridTerrainProvider`.
|
|
143
|
+
* Creates a new `HybridTerrainProvider` instance.
|
|
153
144
|
* @param options {@link HybridTerrainProvider.ConstructorOptions}
|
|
154
|
-
* @returns A
|
|
145
|
+
* @returns A new `HybridTerrainProvider` instance.
|
|
155
146
|
*/
|
|
156
|
-
|
|
147
|
+
constructor(options: HybridTerrainProvider.ConstructorOptions);
|
|
157
148
|
/**
|
|
158
149
|
* Gets a value indicating whether or not the provider is ready for use,
|
|
159
150
|
* or a promise that resolves when the provider becomes ready.
|
|
@@ -238,20 +229,12 @@ declare namespace HybridTerrainProvider {
|
|
|
238
229
|
/** Initialization options for `HybridTerrainProvider` constructor. */
|
|
239
230
|
interface ConstructorOptions {
|
|
240
231
|
/** An array of terrain areas to include in the hybrid terrain. */
|
|
241
|
-
terrainAreas: TerrainArea
|
|
232
|
+
terrainAreas: TerrainArea[];
|
|
242
233
|
/** Default provider to use outside of specified terrain areas. */
|
|
243
|
-
terrainProvider: TerrainProvider
|
|
234
|
+
terrainProvider: TerrainProvider;
|
|
244
235
|
/** Optional fallback provider when data is not available from default provider. @default EllipsoidTerrainProvider */
|
|
245
|
-
fallbackProvider?: TerrainProvider
|
|
236
|
+
fallbackProvider?: TerrainProvider;
|
|
246
237
|
}
|
|
247
|
-
/**
|
|
248
|
-
* Creates a `HybridTerrainProvider` with a custom terrain area overlaid on a base terrain.
|
|
249
|
-
* @param customTerrainUrl URL to the custom terrain.
|
|
250
|
-
* @param baseTerrainUrl URL to the base terrain.
|
|
251
|
-
* @param tileRanges Tile ranges defining the custom terrain area.
|
|
252
|
-
* @returns A promise resolving to a new `HybridTerrainProvider`.
|
|
253
|
-
*/
|
|
254
|
-
function createOverlay(customTerrainUrl: string, baseTerrainUrl: string, tileRanges: Map<number, TileRange>): Promise<Awaited<HybridTerrainProvider>>;
|
|
255
238
|
}
|
|
256
239
|
|
|
257
240
|
export { HybridTerrainProvider as H, TerrainArea as T, type TileRange as a };
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var k=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var q=(n,e)=>{for(var r in e)k(n,r,{get:e[r],enumerable:!0})},Y=(n,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of H(e))!j.call(n,i)&&i!==r&&k(n,i,{get:()=>e[i],enumerable:!(t=F(e,i))||t.enumerable});return n};var B=n=>Y(k({},"__esModule",{value:!0}),n);var U={};q(U,{Collection:()=>C,HybridTerrainProvider:()=>P,TerrainArea:()=>h,TerrainAreaCollection:()=>v,TerrainVisualizer:()=>f,cloneViewer:()=>D,computeRectangle:()=>R,isGetterOnly:()=>A,syncCamera:()=>y});module.exports=B(U);var _=require("cesium");var l=require("cesium");var f=class n{_viewer;_collection;_hybridTerrain;_visible=!1;_level=15;_tileCoordinatesLayer;_colors=new Map([["custom",l.Color.RED],["default",l.Color.BLUE],["fallback",l.Color.GRAY],["grid",l.Color.YELLOW]]);constructor(e,r){this._viewer=e,this._collection=new C({collection:e.entities,tag:n.tag.default}),r&&(r.colors&&Object.entries(r.colors).forEach(([t,i])=>{this._colors.set(t,i)}),r.tile!==void 0&&(this._visible=r.tile),r.activeLevel!==void 0&&(this._level=r.activeLevel),r.terrainProvider&&this.setTerrainProvider(r.terrainProvider))}setTerrainProvider(e){this._hybridTerrain=e,this.update()}update(){this.clear(),this._visible&&this.show(this._level)}clear(){this._collection.remove(this._collection.tags)}show(e=15){if(!this._hybridTerrain)return;this._collection.remove(n.tag.grid),this._level=e;let r=this._hybridTerrain.tilingScheme;this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new l.TileCoordinatesImageryProvider({tilingScheme:r,color:l.Color.YELLOW})));let t=(o,s,c)=>{if(this._hybridTerrain){for(let d of this._hybridTerrain.terrainAreas)if(d.contains(o,s,c))return d.isCustom?this._colors.get("custom")||l.Color.RED:this._colors.get("default")||l.Color.BLUE;if(this._hybridTerrain.getTileDataAvailable(o,s,c))return this._colors.get("default")||l.Color.BLUE}return this._colors.get("fallback")||l.Color.TRANSPARENT},i=this._getVisibleRectangle();if(!i)return;function a(o){return o&&Number.isFinite(o.west)&&Number.isFinite(o.south)&&Number.isFinite(o.east)&&Number.isFinite(o.north)&&o.west<=o.east&&o.south<=o.north}if(!a(i)){console.warn("Invalid visible rectangle detected, skipping grid display");return}try{let o=r.positionToTileXY(l.Rectangle.northwest(i),e),s=r.positionToTileXY(l.Rectangle.southeast(i),e);if(!o||!s)return;let c=100,d=Math.min(s.x-o.x+1,c),T=Math.min(s.y-o.y+1,c);for(let m=o.x;m<=o.x+d-1;m++)for(let u=o.y;u<=o.y+T-1;u++)try{let g=r.tileXYToRectangle(m,u,e);if(!a(g)){console.warn(`Invalid rectangle for tile (${m}, ${u}, ${e}), skipping`);continue}let I=t(m,u,e),b=n.createRectangle(g,I.withAlpha(.3));b.properties?.addProperty("tileX",m),b.properties?.addProperty("tileY",u),b.properties?.addProperty("tileLevel",e),this._collection.add(b,n.tag.grid)}catch(g){console.warn(`Error creating tile (${m}, ${u}, ${e}): ${g.message}`);continue}console.log("\u{1F680} ~ TerrainVisualizer ~ showGrid ~ collection:",this._collection),this._visible=!0}catch(o){console.error("Error displaying tile grid:",o)}}hide(){this._collection.remove(n.tag.grid),this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this._visible=!1}setColors(e){Object.entries(e).forEach(([r,t])=>{this._colors.set(r,t)}),this.update()}flyTo(e,r){let{rectangle:t}=e;this._viewer.camera.flyTo({destination:t,...r,complete:()=>{this._visible&&this.update()}})}_getVisibleRectangle(){return this._viewer.camera.computeViewRectangle()}get level(){return this._level}set level(e){this._level=e,this._visible&&this.update()}get visible(){return this._visible}get collection(){return this._collection}get viewer(){return this._viewer}};(t=>{t.tag={default:"Terrain Visualizer",boundary:"Terrain Visualizer Boundary",grid:"Terrain Visualizer Tile Grid"};function e(i,a){return new l.Entity({rectangle:{coordinates:i,material:a,heightReference:l.HeightReference.CLAMP_TO_GROUND}})}t.createRectangle=e;function r(i,a,o){let s=o?.tag||"terrain_area_visualization",c=o?.color||l.Color.RED,d=o?.maxTilesToShow||100,T=o?.show??!0,m=o?.alpha||.7,u=o?.tileAlpha||.2,g=new C({collection:a.entities,tag:s}),{rectangle:I}=i;if(g.add(t.createRectangle(I,c.withAlpha(m)),s),T&&i.tileRanges.size>0){let{tilingScheme:b}=i.terrainProvider,x=0;i.tileRanges.forEach((w,z)=>{for(let E=w.start.x;E<=w.end.x&&x<d;E++)for(let M=w.start.y;M<=w.end.y&&x<d;M++){let G=b.tileXYToRectangle(E,M,z);g.add(e(G,c.withAlpha(u)),`${s}_tile`),x++}})}return g}t.visualize=r})(f||={});function A(n,e){let r=!1,t=Object.getOwnPropertyDescriptor(n,e);if(!t){let i=Object.getPrototypeOf(n);for(;i&&!t;)t=Object.getOwnPropertyDescriptor(i,e),i=Object.getPrototypeOf(i)}return t&&t.get&&!t.set&&(r=!0),r}var O=require("cesium");function y(n,e){if((0,O.defined)(n)&&(0,O.defined)(e)){let{camera:r}=n;e.camera.position=r.positionWC.clone(),e.camera.direction=r.directionWC.clone(),e.camera.up=r.upWC.clone()}}var L=class n{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;constructor({collection:e,tag:r}){this.tag=r||"default",this.collection=e}[Symbol.iterator](){return this.values[Symbol.iterator]()}_emit(e,r){let t=this._eventListeners.get(e);if(t){let i={type:e,...r};t.forEach(a=>a(i))}}_addToTagMap(e,r){this._tagMap.has(r)||this._tagMap.set(r,new Set),this._tagMap.get(r)?.add(e)}_removeFromTagMap(e){let r=e[n.symbol],t=this._tagMap.get(r);t&&(t.delete(e),t.size===0&&this._tagMap.delete(r))}_invalidateCache(){this._valuesCache=null}addEventListener(e,r){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(r),this}removeEventListener(e,r){return this._eventListeners.get(e)?.delete(r),this}add(e,r=this.tag,t){return Array.isArray(e)?e.forEach(i=>{this.add(i,r)}):(Object.defineProperty(e,n.symbol,{value:r,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,t),this._addToTagMap(e,r),this._invalidateCache(),this._emit("add",{items:[e],tag:r})),e}contains(e){if(typeof e=="object")return this.collection.contains(e);let r=this._tagMap.get(e);return!!r&&r.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)){let i=this.collection.remove(e);return i&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),i}if(Array.isArray(e)){if(e.length===0)return!1;let i=!1;for(let a of e)this.remove(a)&&(i=!0);return i}let r=this.get(e);if(r.length===0)return!1;let t=!1;for(let i of r)this.remove(i)&&(t=!0);return t}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}get values(){if(this.collection instanceof _.EntityCollection)return this.collection.values;{let e=[];for(let r=0;r<this.collection.length;r++)e.push(this.collection.get(r));return e}}get length(){return this.values?.length||0}get(e){let r=this._tagMap.get(e);return r?Array.from(r):[]}first(e){let r=this._tagMap.get(e);if(r&&r.size>0)return r.values().next().value}get tags(){return Array.from(this._tagMap.keys())}update(e,r){let t=this.get(e);for(let i of t)this._removeFromTagMap(i),Object.defineProperty(i,n.symbol,{value:r,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(i,r);return t.length>0&&this._emit("update",{items:t,tag:r}),t.length}show(e){let r=this.get(e);for(let t of r)(0,_.defined)(t.show)&&(t.show=!0);return this}hide(e){let r=this.get(e);for(let t of r)(0,_.defined)(t.show)&&(t.show=!1);return this}toggle(e){let r=this.get(e);for(let t of r)(0,_.defined)(t.show)&&(t.show=!t.show);return this}setProperty(e,r,t=this.tag){let i=this.get(t);for(let a of i)if(e in a&&typeof a[e]!="function"){if(A(a,e))throw Error(`setProperty(${a}, ${e}) failed; The property is readonly.`);a[e]=r}return this}filter(e,r){return(r?this.get(r):this.values).filter(e)}forEach(e,r){(r?this.get(r):this.values).forEach((i,a)=>e(i,a))}map(e,r){return(r?this.get(r):this.values).map(e)}find(e,r){return(r?this.get(r):this.values).find(e)}},C=L;var p=require("cesium");var V=require("cesium");var S=require("cesium");function R(n,e){if(e.size===0)return new S.Rectangle;let r=Number.POSITIVE_INFINITY,t=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,a=Number.NEGATIVE_INFINITY,o=Array.from(e.keys()),s=Math.min(...o),c=e.get(s);if(c){let{start:d,end:T}=c,m=n.tileXYToRectangle(d.x,d.y,s),u=n.tileXYToRectangle(T.x,T.y,s);r=Math.min(m.west,r),t=Math.min(u.south,t),i=Math.max(u.east,i),a=Math.max(m.north,a)}return new S.Rectangle(r,t,i,a)}var h=class{_terrainProvider;_rectangle;_tileRanges;_ready=!1;_credit;_isCustom;constructor(e){this._terrainProvider=e.terrainProvider,this._tileRanges=e.tileRanges,this._credit=e.credit||"custom",this._isCustom=e.isCustom!==void 0?e.isCustom:!0,this._rectangle=R(e.terrainProvider.tilingScheme,e.tileRanges),e.tileRanges.forEach((r,t)=>{this._terrainProvider.availability?.addAvailableTileRange(t,r.start.x,r.start.y,r.end.x,r.end.y)}),this._ready=!0}contains(e,r,t){if(this._tileRanges.size===0||!this._tileRanges.has(t))return!1;let i=this._tileRanges.get(t);return e>=i.start.x&&e<=i.end.x&&r>=i.start.y&&r<=i.end.y}requestTileGeometry(e,r,t,i){if(!(!this._ready||!this.contains(e,r,t)))return this._terrainProvider.requestTileGeometry(e,r,t,i)}getTileDataAvailable(e,r,t){if(this._tileRanges.size===0||!this._tileRanges.has(t))return!1;let i=this._tileRanges.get(t);return e>=i.start.x&&e<=i.end.x&&r>=i.start.y&&r<=i.end.y}get isCustom(){return this._isCustom}get credit(){return this._credit}get terrainProvider(){return this._terrainProvider}get tileRanges(){return this._tileRanges}get rectangle(){return this._rectangle}get ready(){return this._ready}};(e=>{async function n(r,t,i){let a=i?.credit||"custom",o=await V.CesiumTerrainProvider.fromUrl(r,{...i,credit:a});return new e({terrainProvider:o,tileRanges:t,credit:a})}e.fromUrl=n})(h||={});var v=class extends Array{add(e){if(Array.isArray(e)){for(let t of e)this.add(t);return this.length}let r;return e instanceof h?r=e:r=new h(e),this.push(r)}remove(e){if(Array.isArray(e))return e.forEach(t=>this.remove(t)),this;let r=this.indexOf(e);return r>=0&&this.splice(r,1),this}removeAll(){this.length=0}};var P=class n{_terrainAreas=new v;_terrainProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e,r,t){this._terrainProvider=e,this._fallbackProvider=r,this._tilingScheme=e.tilingScheme,this._terrainAreas=new v(...t),this._availability=e.availability,this._ready=!0}static async create(e){try{let r;typeof e.terrainProvider=="string"?r=await p.CesiumTerrainProvider.fromUrl(e.terrainProvider,{requestVertexNormals:!0}):r=e.terrainProvider;let t;e.fallbackProvider?typeof e.fallbackProvider=="string"?t=await p.CesiumTerrainProvider.fromUrl(e.fallbackProvider,{requestVertexNormals:!0}):t=e.fallbackProvider:t=new p.EllipsoidTerrainProvider;let i=[];for(let a of e.terrainAreas){let o=typeof a.terrainProvider=="string"?await p.CesiumTerrainProvider.fromUrl(a.terrainProvider,{requestVertexNormals:!0}):a.terrainProvider;i.push(new h({terrainProvider:o,tileRanges:a.tileRanges,credit:a.credit,isCustom:a.isCustom}))}return new n(r,t,i)}catch(r){throw console.error("Failed to initialize HybridTerrainProvider:",r),r}}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get terrainAreas(){return[...this._terrainAreas]}get defaultProvider(){return this._terrainProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._terrainProvider?.credit}get errorEvent(){return this._terrainProvider.errorEvent}get hasWaterMask(){return this._terrainProvider.hasWaterMask}get hasVertexNormals(){return this._terrainProvider.hasVertexNormals}loadTileDataAvailability(e,r,t){return this._terrainProvider.loadTileDataAvailability(e,r,t)}getLevelMaximumGeometricError(e){return this._terrainProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,r,t,i){if(this._ready){for(let a of this._terrainAreas)if(a.contains(e,r,t))return a.requestTileGeometry(e,r,t,i);return this._terrainProvider.getTileDataAvailable(e,r,t)?this._terrainProvider.requestTileGeometry(e,r,t,i):this._fallbackProvider.requestTileGeometry(e,r,t,i)}}getTileDataAvailable(e,r,t){for(let i of this._terrainAreas)if(i.contains(e,r,t))return i.getTileDataAvailable(e,r,t);return this._terrainProvider.getTileDataAvailable(e,r,t)}};(e=>{async function n(r,t,i){let a=await p.CesiumTerrainProvider.fromUrl(r,{credit:"custom"});return e.create({terrainAreas:[{terrainProvider:a,tileRanges:i,credit:"custom"}],terrainProvider:t,fallbackProvider:new p.EllipsoidTerrainProvider})}e.createOverlay=n})(P||={});var N=require("cesium");function D(n,e,r){let t={baseLayerPicker:n.baseLayerPicker!==void 0,geocoder:n.geocoder!==void 0,homeButton:n.homeButton!==void 0,sceneModePicker:n.sceneModePicker!==void 0,timeline:n.timeline!==void 0,navigationHelpButton:n.navigationHelpButton!==void 0,animation:n.animation!==void 0,fullscreenButton:n.fullscreenButton!==void 0,shouldAnimate:n.clock.shouldAnimate,terrainProvider:n.terrainProvider,requestRenderMode:n.scene.requestRenderMode,infoBox:n.infoBox!==void 0},i=new N.Viewer(e,{...t,...r});y(n,i);let a=n.imageryLayers;i.imageryLayers.removeAll();for(let c=0;c<a.length;c++){let d=a.get(c);i.imageryLayers.addImageryProvider(d.imageryProvider,c)}i.clock.startTime=n.clock.startTime.clone(),i.clock.stopTime=n.clock.stopTime.clone(),i.clock.currentTime=n.clock.currentTime.clone(),i.clock.multiplier=n.clock.multiplier,i.clock.clockStep=n.clock.clockStep,i.clock.clockRange=n.clock.clockRange,i.clock.shouldAnimate=n.clock.shouldAnimate,i.scene.globe.enableLighting=n.scene.globe.enableLighting,i.scene.globe.depthTestAgainstTerrain=n.scene.globe.depthTestAgainstTerrain,i.scene.screenSpaceCameraController.enableCollisionDetection=n.scene.screenSpaceCameraController.enableCollisionDetection;let o=n.scene.screenSpaceCameraController.tiltEventTypes;o&&(i.scene.screenSpaceCameraController.tiltEventTypes=Array.isArray(o)?[...o]:o);let s=n.scene.screenSpaceCameraController.zoomEventTypes;return s&&(i.scene.screenSpaceCameraController.zoomEventTypes=Array.isArray(s)?[...s]:s),i}
|
|
1
|
+
"use strict";var M=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var H=(n,e)=>{for(var r in e)M(n,r,{get:e[r],enumerable:!0})},B=(n,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of F(e))!Y.call(n,i)&&i!==r&&M(n,i,{get:()=>e[i],enumerable:!(t=j(e,i))||t.enumerable});return n};var q=n=>B(M({},"__esModule",{value:!0}),n);var W={};H(W,{Collection:()=>y,HybridTerrainProvider:()=>w,TerrainArea:()=>h,TerrainAreaCollection:()=>f,TerrainVisualizer:()=>v,cloneViewer:()=>S,computeRectangle:()=>A,isGetterOnly:()=>_,syncCamera:()=>C});module.exports=q(W);var b=require("cesium");var l=require("cesium");var v=class n{_viewer;_collection;_terrainProvider;_visible=!1;_level=15;_tileCoordinatesLayer;_colors=new Map([["custom",l.Color.RED],["default",l.Color.BLUE],["fallback",l.Color.GRAY],["grid",l.Color.YELLOW]]);constructor(e,r){this._viewer=e,this._collection=new y({collection:e.entities,tag:n.tag.default}),r&&(r.colors&&Object.entries(r.colors).forEach(([t,i])=>{this._colors.set(t,i)}),r.tile!==void 0&&(this._visible=r.tile),r.activeLevel!==void 0&&(this._level=r.activeLevel),r.terrainProvider&&this.setTerrainProvider(r.terrainProvider))}setTerrainProvider(e){this._terrainProvider=e,this.update()}update(){this.clear(),this._visible&&this.show(this._level)}clear(){this._collection.remove(this._collection.tags)}show(e=15){if(!this._terrainProvider)return;this._collection.remove(n.tag.grid),this._level=e;let r=this._terrainProvider.tilingScheme;this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new l.TileCoordinatesImageryProvider({tilingScheme:r,color:l.Color.YELLOW})));let t=(a,s,c)=>{if(this._terrainProvider){for(let d of this._terrainProvider.terrainAreas)if(d.contains(a,s,c))return d.isCustom?this._colors.get("custom")||l.Color.RED:this._colors.get("default")||l.Color.BLUE;if(this._terrainProvider.getTileDataAvailable(a,s,c))return this._colors.get("default")||l.Color.BLUE}return this._colors.get("fallback")||l.Color.TRANSPARENT},i=this._getVisibleRectangle();if(!i)return;function o(a){return a&&Number.isFinite(a.west)&&Number.isFinite(a.south)&&Number.isFinite(a.east)&&Number.isFinite(a.north)&&a.west<=a.east&&a.south<=a.north}if(!o(i)){console.warn("Invalid visible rectangle detected, skipping grid display");return}try{let a=r.positionToTileXY(l.Rectangle.northwest(i),e),s=r.positionToTileXY(l.Rectangle.southeast(i),e);if(!a||!s)return;let c=100,d=Math.min(s.x-a.x+1,c),p=Math.min(s.y-a.y+1,c);for(let m=a.x;m<=a.x+d-1;m++)for(let u=a.y;u<=a.y+p-1;u++)try{let g=r.tileXYToRectangle(m,u,e);if(!o(g)){console.warn(`Invalid rectangle for tile (${m}, ${u}, ${e}), skipping`);continue}let R=t(m,u,e),T=n.createRectangle(g,R.withAlpha(.3));T.properties?.addProperty("tileX",m),T.properties?.addProperty("tileY",u),T.properties?.addProperty("tileLevel",e),this._collection.add(T,n.tag.grid)}catch(g){console.warn(`Error creating tile (${m}, ${u}, ${e}): ${g.message}`);continue}console.log("\u{1F680} ~ TerrainVisualizer ~ showGrid ~ collection:",this._collection),this._visible=!0}catch(a){console.error("Error displaying tile grid:",a)}}hide(){this._collection.remove(n.tag.grid),this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this._visible=!1}setColors(e){Object.entries(e).forEach(([r,t])=>{this._colors.set(r,t)}),this.update()}flyTo(e,r){let{rectangle:t}=e;this._viewer.camera.flyTo({destination:t,...r,complete:()=>{this._visible&&this.update()}})}_getVisibleRectangle(){return this._viewer.camera.computeViewRectangle()}get level(){return this._level}set level(e){this._level=e,this._visible&&this.update()}get visible(){return this._visible}get collection(){return this._collection}get viewer(){return this._viewer}get colors(){return this._colors}get terrainProvider(){return this._terrainProvider}};(t=>{t.tag={default:"Terrain Visualizer",boundary:"Terrain Visualizer Boundary",grid:"Terrain Visualizer Tile Grid"};function e(i,o){return new l.Entity({rectangle:{coordinates:i,material:o,heightReference:l.HeightReference.CLAMP_TO_GROUND}})}t.createRectangle=e;function r(i,o,a){let s=a?.tag||"terrain_area_visualization",c=a?.color||l.Color.RED,d=a?.maxTilesToShow||100,p=a?.show??!0,m=a?.alpha||.7,u=a?.tileAlpha||.2,g=new y({collection:o.entities,tag:s}),{rectangle:R}=i;if(g.add(t.createRectangle(R,c.withAlpha(m)),s),p&&i.tileRanges.size>0){let{tilingScheme:T}=i.terrainProvider,I=0;i.tileRanges.forEach((P,G)=>{for(let E=P.start.x;E<=P.end.x&&I<d;E++)for(let x=P.start.y;x<=P.end.y&&I<d;x++){let z=T.tileXYToRectangle(E,x,G);g.add(e(z,c.withAlpha(u)),`${s}_tile`),I++}})}return g}t.visualize=r})(v||={});function _(n,e){let r=!1,t=Object.getOwnPropertyDescriptor(n,e);if(!t){let i=Object.getPrototypeOf(n);for(;i&&!t;)t=Object.getOwnPropertyDescriptor(i,e),i=Object.getPrototypeOf(i)}return t&&t.get&&!t.set&&(r=!0),r}var L=class n{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;constructor({collection:e,tag:r}){this.tag=r||"default",this.collection=e}[Symbol.iterator](){return this.values[Symbol.iterator]()}_emit(e,r){let t=this._eventListeners.get(e);if(t){let i={type:e,...r};t.forEach(o=>o(i))}}_addToTagMap(e,r){this._tagMap.has(r)||this._tagMap.set(r,new Set),this._tagMap.get(r)?.add(e)}_removeFromTagMap(e){let r=e[n.symbol],t=this._tagMap.get(r);t&&(t.delete(e),t.size===0&&this._tagMap.delete(r))}_invalidateCache(){this._valuesCache=null}addEventListener(e,r){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(r),this}removeEventListener(e,r){return this._eventListeners.get(e)?.delete(r),this}add(e,r=this.tag,t){return Array.isArray(e)?e.forEach(i=>{this.add(i,r)}):(Object.defineProperty(e,n.symbol,{value:r,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,t),this._addToTagMap(e,r),this._invalidateCache(),this._emit("add",{items:[e],tag:r})),e}contains(e){if(typeof e=="object")return this.collection.contains(e);let r=this._tagMap.get(e);return!!r&&r.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)){let i=this.collection.remove(e);return i&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),i}if(Array.isArray(e)){if(e.length===0)return!1;let i=!1;for(let o of e)this.remove(o)&&(i=!0);return i}let r=this.get(e);if(r.length===0)return!1;let t=!1;for(let i of r)this.remove(i)&&(t=!0);return t}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}get values(){if(this.collection instanceof b.EntityCollection)return this.collection.values;{let e=[];for(let r=0;r<this.collection.length;r++)e.push(this.collection.get(r));return e}}get length(){return this.values?.length||0}get(e){let r=this._tagMap.get(e);return r?Array.from(r):[]}first(e){let r=this._tagMap.get(e);if(r&&r.size>0)return r.values().next().value}get tags(){return Array.from(this._tagMap.keys())}update(e,r){let t=this.get(e);for(let i of t)this._removeFromTagMap(i),Object.defineProperty(i,n.symbol,{value:r,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(i,r);return t.length>0&&this._emit("update",{items:t,tag:r}),t.length}show(e){let r=this.get(e);for(let t of r)(0,b.defined)(t.show)&&(t.show=!0);return this}hide(e){let r=this.get(e);for(let t of r)(0,b.defined)(t.show)&&(t.show=!1);return this}toggle(e){let r=this.get(e);for(let t of r)(0,b.defined)(t.show)&&(t.show=!t.show);return this}setProperty(e,r,t=this.tag){let i=this.get(t);for(let o of i)if(e in o&&typeof o[e]!="function"){if(_(o,e))throw Error(`setProperty(${o}, ${e}) failed; The property is readonly.`);o[e]=r}return this}filter(e,r){return(r?this.get(r):this.values).filter(e)}forEach(e,r){(r?this.get(r):this.values).forEach((i,o)=>e(i,o))}map(e,r){return(r?this.get(r):this.values).map(e)}find(e,r){return(r?this.get(r):this.values).find(e)}},y=L;var N=require("cesium");var V=require("cesium");var O=require("cesium");function A(n,e){if(e.size===0)return new O.Rectangle;let r=Number.POSITIVE_INFINITY,t=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,o=Number.NEGATIVE_INFINITY,a=Array.from(e.keys()),s=Math.min(...a),c=e.get(s);if(c){let{start:d,end:p}=c,m=n.tileXYToRectangle(d.x,d.y,s),u=n.tileXYToRectangle(p.x,p.y,s);r=Math.min(m.west,r),t=Math.min(u.south,t),i=Math.max(u.east,i),o=Math.max(m.north,o)}return new O.Rectangle(r,t,i,o)}var h=class{_terrainProvider;_rectangle;_tileRanges;_ready=!1;_credit;_isCustom;constructor(e){this._terrainProvider=e.terrainProvider,this._tileRanges=e.tileRanges,this._credit=e.credit||"custom",this._isCustom=e.isCustom!==void 0?e.isCustom:!0,this._rectangle=A(e.terrainProvider.tilingScheme,e.tileRanges),e.tileRanges.forEach((r,t)=>{this._terrainProvider.availability?.addAvailableTileRange(t,r.start.x,r.start.y,r.end.x,r.end.y)}),this._ready=!0}contains(e,r,t){if(this._tileRanges.size===0||!this._tileRanges.has(t))return!1;let i=this._tileRanges.get(t);return e>=i.start.x&&e<=i.end.x&&r>=i.start.y&&r<=i.end.y}requestTileGeometry(e,r,t,i){if(!(!this._ready||!this.contains(e,r,t)))return this._terrainProvider.requestTileGeometry(e,r,t,i)}getTileDataAvailable(e,r,t){if(this._tileRanges.size===0||!this._tileRanges.has(t))return!1;let i=this._tileRanges.get(t);return e>=i.start.x&&e<=i.end.x&&r>=i.start.y&&r<=i.end.y}get isCustom(){return this._isCustom}get credit(){return this._credit}get terrainProvider(){return this._terrainProvider}get tileRanges(){return this._tileRanges}get rectangle(){return this._rectangle}get ready(){return this._ready}};(e=>{async function n(r,t,i){let o=i?.credit||"custom",a=await V.CesiumTerrainProvider.fromUrl(r,{...i,credit:o});return new e({terrainProvider:a,tileRanges:t,credit:o})}e.fromUrl=n})(h||={});var f=class extends Array{add(e){if(Array.isArray(e)){for(let t of e)this.add(t);return this.length}let r;return e instanceof h?r=e:r=new h(e),this.push(r)}remove(e){if(Array.isArray(e))return e.forEach(t=>this.remove(t)),this;let r=this.indexOf(e);return r>=0&&this.splice(r,1),this}removeAll(){this.length=0}};var w=class{_terrainAreas=new f;_terrainProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(e){this._terrainProvider=e.terrainProvider,this._fallbackProvider=e.fallbackProvider||new N.EllipsoidTerrainProvider,this._tilingScheme=e.terrainProvider.tilingScheme,this._terrainAreas=new f(...e.terrainAreas),this._availability=e.terrainProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get terrainAreas(){return[...this._terrainAreas]}get defaultProvider(){return this._terrainProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._terrainProvider?.credit}get errorEvent(){return this._terrainProvider.errorEvent}get hasWaterMask(){return this._terrainProvider.hasWaterMask}get hasVertexNormals(){return this._terrainProvider.hasVertexNormals}loadTileDataAvailability(e,r,t){return this._terrainProvider.loadTileDataAvailability(e,r,t)}getLevelMaximumGeometricError(e){return this._terrainProvider.getLevelMaximumGeometricError(e)}requestTileGeometry(e,r,t,i){if(this._ready){for(let o of this._terrainAreas)if(o.contains(e,r,t))return o.requestTileGeometry(e,r,t,i);return this._terrainProvider.getTileDataAvailable(e,r,t)?this._terrainProvider.requestTileGeometry(e,r,t,i):this._fallbackProvider.requestTileGeometry(e,r,t,i)}}getTileDataAvailable(e,r,t){for(let i of this._terrainAreas)if(i.contains(e,r,t))return i.getTileDataAvailable(e,r,t);return this._terrainProvider.getTileDataAvailable(e,r,t)}};var D=require("cesium");var k=require("cesium");function C(n,e){if((0,k.defined)(n)&&(0,k.defined)(e)){let{camera:r}=n;e.camera.position=r.positionWC.clone(),e.camera.direction=r.directionWC.clone(),e.camera.up=r.upWC.clone()}}function S(n,e,r){let t={baseLayerPicker:n.baseLayerPicker!==void 0,geocoder:n.geocoder!==void 0,homeButton:n.homeButton!==void 0,sceneModePicker:n.sceneModePicker!==void 0,timeline:n.timeline!==void 0,navigationHelpButton:n.navigationHelpButton!==void 0,animation:n.animation!==void 0,fullscreenButton:n.fullscreenButton!==void 0,shouldAnimate:n.clock.shouldAnimate,terrainProvider:n.terrainProvider,requestRenderMode:n.scene.requestRenderMode,infoBox:n.infoBox!==void 0},i=new D.Viewer(e,{...t,...r});C(n,i);let o=n.imageryLayers;i.imageryLayers.removeAll();for(let c=0;c<o.length;c++){let d=o.get(c);i.imageryLayers.addImageryProvider(d.imageryProvider,c)}i.clock.startTime=n.clock.startTime.clone(),i.clock.stopTime=n.clock.stopTime.clone(),i.clock.currentTime=n.clock.currentTime.clone(),i.clock.multiplier=n.clock.multiplier,i.clock.clockStep=n.clock.clockStep,i.clock.clockRange=n.clock.clockRange,i.clock.shouldAnimate=n.clock.shouldAnimate,i.scene.globe.enableLighting=n.scene.globe.enableLighting,i.scene.globe.depthTestAgainstTerrain=n.scene.globe.depthTestAgainstTerrain,i.scene.screenSpaceCameraController.enableCollisionDetection=n.scene.screenSpaceCameraController.enableCollisionDetection;let a=n.scene.screenSpaceCameraController.tiltEventTypes;a&&(i.scene.screenSpaceCameraController.tiltEventTypes=Array.isArray(a)?[...a]:a);let s=n.scene.screenSpaceCameraController.zoomEventTypes;return s&&(i.scene.screenSpaceCameraController.zoomEventTypes=Array.isArray(s)?[...s]:s),i}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { CesiumCollection, CesiumCollectionItem, Collection, CollectionEventType, EventHandler, NonFunction, Tag, WithTag } from './collection/index.cjs';
|
|
2
|
-
export { H as HybridTerrainProvider, T as TerrainArea, a as TileRange } from './hybrid-terrain-provider-
|
|
2
|
+
export { H as HybridTerrainProvider, T as TerrainArea, a as TileRange } from './hybrid-terrain-provider-CEJA1Xhw.cjs';
|
|
3
3
|
export { TerrainAreaCollection, computeRectangle } from './terrain/index.cjs';
|
|
4
|
-
export { TerrainVisualizer, isGetterOnly
|
|
5
|
-
export { cloneViewer } from './viewer/index.cjs';
|
|
4
|
+
export { TerrainVisualizer, isGetterOnly } from './utils/index.cjs';
|
|
5
|
+
export { cloneViewer, syncCamera } from './viewer/index.cjs';
|
|
6
6
|
import 'cesium';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { CesiumCollection, CesiumCollectionItem, Collection, CollectionEventType, EventHandler, NonFunction, Tag, WithTag } from './collection/index.js';
|
|
2
|
-
export { H as HybridTerrainProvider, T as TerrainArea, a as TileRange } from './hybrid-terrain-provider-
|
|
2
|
+
export { H as HybridTerrainProvider, T as TerrainArea, a as TileRange } from './hybrid-terrain-provider-CEJA1Xhw.js';
|
|
3
3
|
export { TerrainAreaCollection, computeRectangle } from './terrain/index.js';
|
|
4
|
-
export { TerrainVisualizer, isGetterOnly
|
|
5
|
-
export { cloneViewer } from './viewer/index.js';
|
|
4
|
+
export { TerrainVisualizer, isGetterOnly } from './utils/index.js';
|
|
5
|
+
export { cloneViewer, syncCamera } from './viewer/index.js';
|
|
6
6
|
import 'cesium';
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as i,b as t,c as m,d as p}from"./chunk-OFZW33MB.js";import{a as r,b as o,c as e}from"./chunk-Q4LRNVAX.js";import{a as n,b as a}from"./chunk-2JNRK7SN.js";export{e as Collection,p as HybridTerrainProvider,t as TerrainArea,m as TerrainAreaCollection,r as TerrainVisualizer,a as cloneViewer,i as computeRectangle,o as isGetterOnly,n as syncCamera};
|
package/dist/terrain/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var c=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var R=(a,r)=>{for(var e in r)c(a,e,{get:r[e],enumerable:!0})},C=(a,r,e,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of p(r))!y.call(a,t)&&t!==e&&c(a,t,{get:()=>r[t],enumerable:!(i=A(r,t))||i.enumerable});return a};var x=a=>C(c({},"__esModule",{value:!0}),a);var I={};R(I,{HybridTerrainProvider:()=>d,TerrainArea:()=>o,TerrainAreaCollection:()=>s,computeRectangle:()=>u});module.exports=x(I);var P=require("cesium");var _=require("cesium");var h=require("cesium");function u(a,r){if(r.size===0)return new h.Rectangle;let e=Number.POSITIVE_INFINITY,i=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY,n=Number.NEGATIVE_INFINITY,m=Array.from(r.keys()),l=Math.min(...m),v=r.get(l);if(v){let{start:T,end:g}=v,b=a.tileXYToRectangle(T.x,T.y,l),f=a.tileXYToRectangle(g.x,g.y,l);e=Math.min(b.west,e),i=Math.min(f.south,i),t=Math.max(f.east,t),n=Math.max(b.north,n)}return new h.Rectangle(e,i,t,n)}var o=class{_terrainProvider;_rectangle;_tileRanges;_ready=!1;_credit;_isCustom;constructor(r){this._terrainProvider=r.terrainProvider,this._tileRanges=r.tileRanges,this._credit=r.credit||"custom",this._isCustom=r.isCustom!==void 0?r.isCustom:!0,this._rectangle=u(r.terrainProvider.tilingScheme,r.tileRanges),r.tileRanges.forEach((e,i)=>{this._terrainProvider.availability?.addAvailableTileRange(i,e.start.x,e.start.y,e.end.x,e.end.y)}),this._ready=!0}contains(r,e,i){if(this._tileRanges.size===0||!this._tileRanges.has(i))return!1;let t=this._tileRanges.get(i);return r>=t.start.x&&r<=t.end.x&&e>=t.start.y&&e<=t.end.y}requestTileGeometry(r,e,i,t){if(!(!this._ready||!this.contains(r,e,i)))return this._terrainProvider.requestTileGeometry(r,e,i,t)}getTileDataAvailable(r,e,i){if(this._tileRanges.size===0||!this._tileRanges.has(i))return!1;let t=this._tileRanges.get(i);return r>=t.start.x&&r<=t.end.x&&e>=t.start.y&&e<=t.end.y}get isCustom(){return this._isCustom}get credit(){return this._credit}get terrainProvider(){return this._terrainProvider}get tileRanges(){return this._tileRanges}get rectangle(){return this._rectangle}get ready(){return this._ready}};(r=>{async function a(e,i,t){let n=t?.credit||"custom",m=await _.CesiumTerrainProvider.fromUrl(e,{...t,credit:n});return new r({terrainProvider:m,tileRanges:i,credit:n})}r.fromUrl=a})(o||={});var s=class extends Array{add(r){if(Array.isArray(r)){for(let i of r)this.add(i);return this.length}let e;return r instanceof o?e=r:e=new o(r),this.push(e)}remove(r){if(Array.isArray(r))return r.forEach(i=>this.remove(i)),this;let e=this.indexOf(r);return e>=0&&this.splice(e,1),this}removeAll(){this.length=0}};var d=class{_terrainAreas=new s;_terrainProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(r){this._terrainProvider=r.terrainProvider,this._fallbackProvider=r.fallbackProvider||new P.EllipsoidTerrainProvider,this._tilingScheme=r.terrainProvider.tilingScheme,this._terrainAreas=new s(...r.terrainAreas),this._availability=r.terrainProvider.availability,this._ready=!0}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get terrainAreas(){return[...this._terrainAreas]}get defaultProvider(){return this._terrainProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._terrainProvider?.credit}get errorEvent(){return this._terrainProvider.errorEvent}get hasWaterMask(){return this._terrainProvider.hasWaterMask}get hasVertexNormals(){return this._terrainProvider.hasVertexNormals}loadTileDataAvailability(r,e,i){return this._terrainProvider.loadTileDataAvailability(r,e,i)}getLevelMaximumGeometricError(r){return this._terrainProvider.getLevelMaximumGeometricError(r)}requestTileGeometry(r,e,i,t){if(this._ready){for(let n of this._terrainAreas)if(n.contains(r,e,i))return n.requestTileGeometry(r,e,i,t);return this._terrainProvider.getTileDataAvailable(r,e,i)?this._terrainProvider.requestTileGeometry(r,e,i,t):this._fallbackProvider.requestTileGeometry(r,e,i,t)}}getTileDataAvailable(r,e,i){for(let t of this._terrainAreas)if(t.contains(r,e,i))return t.getTileDataAvailable(r,e,i);return this._terrainProvider.getTileDataAvailable(r,e,i)}};
|
package/dist/terrain/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as TileRange, T as TerrainArea } from '../hybrid-terrain-provider-
|
|
2
|
-
export { H as HybridTerrainProvider } from '../hybrid-terrain-provider-
|
|
1
|
+
import { a as TileRange, T as TerrainArea } from '../hybrid-terrain-provider-CEJA1Xhw.cjs';
|
|
2
|
+
export { H as HybridTerrainProvider } from '../hybrid-terrain-provider-CEJA1Xhw.cjs';
|
|
3
3
|
import { TilingScheme, Rectangle } from 'cesium';
|
|
4
4
|
|
|
5
5
|
/**
|
package/dist/terrain/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as TileRange, T as TerrainArea } from '../hybrid-terrain-provider-
|
|
2
|
-
export { H as HybridTerrainProvider } from '../hybrid-terrain-provider-
|
|
1
|
+
import { a as TileRange, T as TerrainArea } from '../hybrid-terrain-provider-CEJA1Xhw.js';
|
|
2
|
+
export { H as HybridTerrainProvider } from '../hybrid-terrain-provider-CEJA1Xhw.js';
|
|
3
3
|
import { TilingScheme, Rectangle } from 'cesium';
|
|
4
4
|
|
|
5
5
|
/**
|
package/dist/terrain/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as r,b as e,c as o,d as t}from"../chunk-
|
|
1
|
+
import{a as r,b as e,c as o,d as t}from"../chunk-OFZW33MB.js";export{t as HybridTerrainProvider,e as TerrainArea,o as TerrainAreaCollection,r as computeRectangle};
|
package/dist/utils/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var I=Object.defineProperty;var
|
|
1
|
+
"use strict";var I=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var O=(n,e)=>{for(var t in e)I(n,t,{get:e[t],enumerable:!0})},S=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of A(e))!M.call(n,r)&&r!==t&&I(n,r,{get:()=>e[r],enumerable:!(i=L(e,r))||i.enumerable});return n};var V=n=>S(I({},"__esModule",{value:!0}),n);var j={};O(j,{TerrainVisualizer:()=>f,isGetterOnly:()=>y});module.exports=V(j);var s=require("cesium");var v=require("cesium");var E=class n{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;constructor({collection:e,tag:t}){this.tag=t||"default",this.collection=e}[Symbol.iterator](){return this.values[Symbol.iterator]()}_emit(e,t){let i=this._eventListeners.get(e);if(i){let r={type:e,...t};i.forEach(a=>a(r))}}_addToTagMap(e,t){this._tagMap.has(t)||this._tagMap.set(t,new Set),this._tagMap.get(t)?.add(e)}_removeFromTagMap(e){let t=e[n.symbol],i=this._tagMap.get(t);i&&(i.delete(e),i.size===0&&this._tagMap.delete(t))}_invalidateCache(){this._valuesCache=null}addEventListener(e,t){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(t),this}removeEventListener(e,t){return this._eventListeners.get(e)?.delete(t),this}add(e,t=this.tag,i){return Array.isArray(e)?e.forEach(r=>{this.add(r,t)}):(Object.defineProperty(e,n.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,i),this._addToTagMap(e,t),this._invalidateCache(),this._emit("add",{items:[e],tag:t})),e}contains(e){if(typeof e=="object")return this.collection.contains(e);let t=this._tagMap.get(e);return!!t&&t.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)){let r=this.collection.remove(e);return r&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),r}if(Array.isArray(e)){if(e.length===0)return!1;let r=!1;for(let a of e)this.remove(a)&&(r=!0);return r}let t=this.get(e);if(t.length===0)return!1;let i=!1;for(let r of t)this.remove(r)&&(i=!0);return i}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}get values(){if(this.collection instanceof v.EntityCollection)return this.collection.values;{let e=[];for(let t=0;t<this.collection.length;t++)e.push(this.collection.get(t));return e}}get length(){return this.values?.length||0}get(e){let t=this._tagMap.get(e);return t?Array.from(t):[]}first(e){let t=this._tagMap.get(e);if(t&&t.size>0)return t.values().next().value}get tags(){return Array.from(this._tagMap.keys())}update(e,t){let i=this.get(e);for(let r of i)this._removeFromTagMap(r),Object.defineProperty(r,n.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(r,t);return i.length>0&&this._emit("update",{items:i,tag:t}),i.length}show(e){let t=this.get(e);for(let i of t)(0,v.defined)(i.show)&&(i.show=!0);return this}hide(e){let t=this.get(e);for(let i of t)(0,v.defined)(i.show)&&(i.show=!1);return this}toggle(e){let t=this.get(e);for(let i of t)(0,v.defined)(i.show)&&(i.show=!i.show);return this}setProperty(e,t,i=this.tag){let r=this.get(i);for(let a of r)if(e in a&&typeof a[e]!="function"){if(y(a,e))throw Error(`setProperty(${a}, ${e}) failed; The property is readonly.`);a[e]=t}return this}filter(e,t){return(t?this.get(t):this.values).filter(e)}forEach(e,t){(t?this.get(t):this.values).forEach((r,a)=>e(r,a))}map(e,t){return(t?this.get(t):this.values).map(e)}find(e,t){return(t?this.get(t):this.values).find(e)}},P=E;var f=class n{_viewer;_collection;_terrainProvider;_visible=!1;_level=15;_tileCoordinatesLayer;_colors=new Map([["custom",s.Color.RED],["default",s.Color.BLUE],["fallback",s.Color.GRAY],["grid",s.Color.YELLOW]]);constructor(e,t){this._viewer=e,this._collection=new P({collection:e.entities,tag:n.tag.default}),t&&(t.colors&&Object.entries(t.colors).forEach(([i,r])=>{this._colors.set(i,r)}),t.tile!==void 0&&(this._visible=t.tile),t.activeLevel!==void 0&&(this._level=t.activeLevel),t.terrainProvider&&this.setTerrainProvider(t.terrainProvider))}setTerrainProvider(e){this._terrainProvider=e,this.update()}update(){this.clear(),this._visible&&this.show(this._level)}clear(){this._collection.remove(this._collection.tags)}show(e=15){if(!this._terrainProvider)return;this._collection.remove(n.tag.grid),this._level=e;let t=this._terrainProvider.tilingScheme;this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new s.TileCoordinatesImageryProvider({tilingScheme:t,color:s.Color.YELLOW})));let i=(o,l,d)=>{if(this._terrainProvider){for(let g of this._terrainProvider.terrainAreas)if(g.contains(o,l,d))return g.isCustom?this._colors.get("custom")||s.Color.RED:this._colors.get("default")||s.Color.BLUE;if(this._terrainProvider.getTileDataAvailable(o,l,d))return this._colors.get("default")||s.Color.BLUE}return this._colors.get("fallback")||s.Color.TRANSPARENT},r=this._getVisibleRectangle();if(!r)return;function a(o){return o&&Number.isFinite(o.west)&&Number.isFinite(o.south)&&Number.isFinite(o.east)&&Number.isFinite(o.north)&&o.west<=o.east&&o.south<=o.north}if(!a(r)){console.warn("Invalid visible rectangle detected, skipping grid display");return}try{let o=t.positionToTileXY(s.Rectangle.northwest(r),e),l=t.positionToTileXY(s.Rectangle.southeast(r),e);if(!o||!l)return;let d=100,g=Math.min(l.x-o.x+1,d),b=Math.min(l.y-o.y+1,d);for(let c=o.x;c<=o.x+g-1;c++)for(let h=o.y;h<=o.y+b-1;h++)try{let u=t.tileXYToRectangle(c,h,e);if(!a(u)){console.warn(`Invalid rectangle for tile (${c}, ${h}, ${e}), skipping`);continue}let _=i(c,h,e),m=n.createRectangle(u,_.withAlpha(.3));m.properties?.addProperty("tileX",c),m.properties?.addProperty("tileY",h),m.properties?.addProperty("tileLevel",e),this._collection.add(m,n.tag.grid)}catch(u){console.warn(`Error creating tile (${c}, ${h}, ${e}): ${u.message}`);continue}console.log("\u{1F680} ~ TerrainVisualizer ~ showGrid ~ collection:",this._collection),this._visible=!0}catch(o){console.error("Error displaying tile grid:",o)}}hide(){this._collection.remove(n.tag.grid),this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this._visible=!1}setColors(e){Object.entries(e).forEach(([t,i])=>{this._colors.set(t,i)}),this.update()}flyTo(e,t){let{rectangle:i}=e;this._viewer.camera.flyTo({destination:i,...t,complete:()=>{this._visible&&this.update()}})}_getVisibleRectangle(){return this._viewer.camera.computeViewRectangle()}get level(){return this._level}set level(e){this._level=e,this._visible&&this.update()}get visible(){return this._visible}get collection(){return this._collection}get viewer(){return this._viewer}get colors(){return this._colors}get terrainProvider(){return this._terrainProvider}};(i=>{i.tag={default:"Terrain Visualizer",boundary:"Terrain Visualizer Boundary",grid:"Terrain Visualizer Tile Grid"};function e(r,a){return new s.Entity({rectangle:{coordinates:r,material:a,heightReference:s.HeightReference.CLAMP_TO_GROUND}})}i.createRectangle=e;function t(r,a,o){let l=o?.tag||"terrain_area_visualization",d=o?.color||s.Color.RED,g=o?.maxTilesToShow||100,b=o?.show??!0,c=o?.alpha||.7,h=o?.tileAlpha||.2,u=new P({collection:a.entities,tag:l}),{rectangle:_}=r;if(u.add(i.createRectangle(_,d.withAlpha(c)),l),b&&r.tileRanges.size>0){let{tilingScheme:m}=r.terrainProvider,T=0;r.tileRanges.forEach((p,x)=>{for(let w=p.start.x;w<=p.end.x&&T<g;w++)for(let C=p.start.y;C<=p.end.y&&T<g;C++){let R=m.tileXYToRectangle(w,C,x);u.add(e(R,d.withAlpha(h)),`${l}_tile`),T++}})}return u}i.visualize=t})(f||={});function y(n,e){let t=!1,i=Object.getOwnPropertyDescriptor(n,e);if(!i){let r=Object.getPrototypeOf(n);for(;r&&!i;)i=Object.getOwnPropertyDescriptor(r,e),r=Object.getPrototypeOf(r)}return i&&i.get&&!i.set&&(t=!0),t}
|
package/dist/utils/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Viewer, Color, EntityCollection, Entity, Rectangle } from 'cesium';
|
|
2
|
-
import { H as HybridTerrainProvider, T as TerrainArea } from '../hybrid-terrain-provider-
|
|
2
|
+
import { H as HybridTerrainProvider, T as TerrainArea } from '../hybrid-terrain-provider-CEJA1Xhw.cjs';
|
|
3
3
|
import { Collection } from '../collection/index.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -9,7 +9,7 @@ import { Collection } from '../collection/index.cjs';
|
|
|
9
9
|
declare class TerrainVisualizer {
|
|
10
10
|
private _viewer;
|
|
11
11
|
private _collection;
|
|
12
|
-
private
|
|
12
|
+
private _terrainProvider?;
|
|
13
13
|
private _visible;
|
|
14
14
|
private _level;
|
|
15
15
|
private _tileCoordinatesLayer;
|
|
@@ -71,6 +71,10 @@ declare class TerrainVisualizer {
|
|
|
71
71
|
get collection(): Collection<EntityCollection, Entity>;
|
|
72
72
|
/** The viewer used in the visualizer */
|
|
73
73
|
get viewer(): Viewer;
|
|
74
|
+
/** The colors used in the visualizer */
|
|
75
|
+
get colors(): Map<string, Color>;
|
|
76
|
+
/** The hybrid terrain instance used in the visualizer */
|
|
77
|
+
get terrainProvider(): HybridTerrainProvider | undefined;
|
|
74
78
|
}
|
|
75
79
|
/**
|
|
76
80
|
* @namespace
|
|
@@ -81,8 +85,6 @@ declare namespace TerrainVisualizer {
|
|
|
81
85
|
interface ConstructorOptions {
|
|
82
86
|
/** Colors to use for different visualization elements */
|
|
83
87
|
colors?: Record<string, Color>;
|
|
84
|
-
/** Whether to show boundaries initially. */
|
|
85
|
-
boundaries?: boolean;
|
|
86
88
|
/** Whether to show tile grid initially. */
|
|
87
89
|
tile?: boolean;
|
|
88
90
|
/** Initial zoom level to use for visualizations. */
|
|
@@ -132,11 +134,4 @@ declare namespace TerrainVisualizer {
|
|
|
132
134
|
*/
|
|
133
135
|
declare function isGetterOnly(o: object, k: string | number | symbol): boolean;
|
|
134
136
|
|
|
135
|
-
|
|
136
|
-
* Copies camera state from source viewer to destination viewer.
|
|
137
|
-
* @param source The source viewer to copy camera states from.
|
|
138
|
-
* @param dest The destination viewer to apply camera properties from the source.
|
|
139
|
-
*/
|
|
140
|
-
declare function syncCamera(source: Viewer, dest: Viewer): void;
|
|
141
|
-
|
|
142
|
-
export { TerrainVisualizer, isGetterOnly, syncCamera };
|
|
137
|
+
export { TerrainVisualizer, isGetterOnly };
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Viewer, Color, EntityCollection, Entity, Rectangle } from 'cesium';
|
|
2
|
-
import { H as HybridTerrainProvider, T as TerrainArea } from '../hybrid-terrain-provider-
|
|
2
|
+
import { H as HybridTerrainProvider, T as TerrainArea } from '../hybrid-terrain-provider-CEJA1Xhw.js';
|
|
3
3
|
import { Collection } from '../collection/index.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -9,7 +9,7 @@ import { Collection } from '../collection/index.js';
|
|
|
9
9
|
declare class TerrainVisualizer {
|
|
10
10
|
private _viewer;
|
|
11
11
|
private _collection;
|
|
12
|
-
private
|
|
12
|
+
private _terrainProvider?;
|
|
13
13
|
private _visible;
|
|
14
14
|
private _level;
|
|
15
15
|
private _tileCoordinatesLayer;
|
|
@@ -71,6 +71,10 @@ declare class TerrainVisualizer {
|
|
|
71
71
|
get collection(): Collection<EntityCollection, Entity>;
|
|
72
72
|
/** The viewer used in the visualizer */
|
|
73
73
|
get viewer(): Viewer;
|
|
74
|
+
/** The colors used in the visualizer */
|
|
75
|
+
get colors(): Map<string, Color>;
|
|
76
|
+
/** The hybrid terrain instance used in the visualizer */
|
|
77
|
+
get terrainProvider(): HybridTerrainProvider | undefined;
|
|
74
78
|
}
|
|
75
79
|
/**
|
|
76
80
|
* @namespace
|
|
@@ -81,8 +85,6 @@ declare namespace TerrainVisualizer {
|
|
|
81
85
|
interface ConstructorOptions {
|
|
82
86
|
/** Colors to use for different visualization elements */
|
|
83
87
|
colors?: Record<string, Color>;
|
|
84
|
-
/** Whether to show boundaries initially. */
|
|
85
|
-
boundaries?: boolean;
|
|
86
88
|
/** Whether to show tile grid initially. */
|
|
87
89
|
tile?: boolean;
|
|
88
90
|
/** Initial zoom level to use for visualizations. */
|
|
@@ -132,11 +134,4 @@ declare namespace TerrainVisualizer {
|
|
|
132
134
|
*/
|
|
133
135
|
declare function isGetterOnly(o: object, k: string | number | symbol): boolean;
|
|
134
136
|
|
|
135
|
-
|
|
136
|
-
* Copies camera state from source viewer to destination viewer.
|
|
137
|
-
* @param source The source viewer to copy camera states from.
|
|
138
|
-
* @param dest The destination viewer to apply camera properties from the source.
|
|
139
|
-
*/
|
|
140
|
-
declare function syncCamera(source: Viewer, dest: Viewer): void;
|
|
141
|
-
|
|
142
|
-
export { TerrainVisualizer, isGetterOnly, syncCamera };
|
|
137
|
+
export { TerrainVisualizer, isGetterOnly };
|
package/dist/utils/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../chunk-
|
|
1
|
+
import{a,b}from"../chunk-Q4LRNVAX.js";export{a as TerrainVisualizer,b as isGetterOnly};
|
package/dist/viewer/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var m=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var T=(e,i)=>{for(var o in i)m(e,o,{get:i[o],enumerable:!0})},v=(e,i,o,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of k(i))!C.call(e,n)&&n!==o&&m(e,n,{get:()=>i[n],enumerable:!(t=g(i,n))||t.enumerable});return e};var b=e=>v(m({},"__esModule",{value:!0}),e);var h={};T(h,{cloneViewer:()=>y,syncCamera:()=>l});module.exports=b(h);var p=require("cesium");var d=require("cesium");function l(e,i){if((0,d.defined)(e)&&(0,d.defined)(i)){let{camera:o}=e;i.camera.position=o.positionWC.clone(),i.camera.direction=o.directionWC.clone(),i.camera.up=o.upWC.clone()}}function y(e,i,o){let t={baseLayerPicker:e.baseLayerPicker!==void 0,geocoder:e.geocoder!==void 0,homeButton:e.homeButton!==void 0,sceneModePicker:e.sceneModePicker!==void 0,timeline:e.timeline!==void 0,navigationHelpButton:e.navigationHelpButton!==void 0,animation:e.animation!==void 0,fullscreenButton:e.fullscreenButton!==void 0,shouldAnimate:e.clock.shouldAnimate,terrainProvider:e.terrainProvider,requestRenderMode:e.scene.requestRenderMode,infoBox:e.infoBox!==void 0},n=new p.Viewer(i,{...t,...o});l(e,n);let s=e.imageryLayers;n.imageryLayers.removeAll();for(let c=0;c<s.length;c++){let f=s.get(c);n.imageryLayers.addImageryProvider(f.imageryProvider,c)}n.clock.startTime=e.clock.startTime.clone(),n.clock.stopTime=e.clock.stopTime.clone(),n.clock.currentTime=e.clock.currentTime.clone(),n.clock.multiplier=e.clock.multiplier,n.clock.clockStep=e.clock.clockStep,n.clock.clockRange=e.clock.clockRange,n.clock.shouldAnimate=e.clock.shouldAnimate,n.scene.globe.enableLighting=e.scene.globe.enableLighting,n.scene.globe.depthTestAgainstTerrain=e.scene.globe.depthTestAgainstTerrain,n.scene.screenSpaceCameraController.enableCollisionDetection=e.scene.screenSpaceCameraController.enableCollisionDetection;let r=e.scene.screenSpaceCameraController.tiltEventTypes;r&&(n.scene.screenSpaceCameraController.tiltEventTypes=Array.isArray(r)?[...r]:r);let a=e.scene.screenSpaceCameraController.zoomEventTypes;return a&&(n.scene.screenSpaceCameraController.zoomEventTypes=Array.isArray(a)?[...a]:a),n}
|
package/dist/viewer/index.d.cts
CHANGED
|
@@ -9,4 +9,11 @@ import { Viewer } from 'cesium';
|
|
|
9
9
|
*/
|
|
10
10
|
declare function cloneViewer(source: Viewer, container: Element | string, options?: Viewer.ConstructorOptions): Viewer;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Copies camera state from source viewer to destination viewer.
|
|
14
|
+
* @param source The source viewer to copy camera states from.
|
|
15
|
+
* @param dest The destination viewer to apply camera properties from the source.
|
|
16
|
+
*/
|
|
17
|
+
declare function syncCamera(source: Viewer, dest: Viewer): void;
|
|
18
|
+
|
|
19
|
+
export { cloneViewer, syncCamera };
|
package/dist/viewer/index.d.ts
CHANGED
|
@@ -9,4 +9,11 @@ import { Viewer } from 'cesium';
|
|
|
9
9
|
*/
|
|
10
10
|
declare function cloneViewer(source: Viewer, container: Element | string, options?: Viewer.ConstructorOptions): Viewer;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Copies camera state from source viewer to destination viewer.
|
|
14
|
+
* @param source The source viewer to copy camera states from.
|
|
15
|
+
* @param dest The destination viewer to apply camera properties from the source.
|
|
16
|
+
*/
|
|
17
|
+
declare function syncCamera(source: Viewer, dest: Viewer): void;
|
|
18
|
+
|
|
19
|
+
export { cloneViewer, syncCamera };
|
package/dist/viewer/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a
|
|
1
|
+
import{a,b}from"../chunk-2JNRK7SN.js";export{b as cloneViewer,a as syncCamera};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juun-roh/cesium-utils",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"description": "Utilities to handle Cesium classes easier.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Cesium",
|
|
@@ -67,29 +67,30 @@
|
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@changesets/cli": "^2.29.
|
|
70
|
+
"@changesets/cli": "^2.29.3",
|
|
71
71
|
"@commitlint/cli": "^19.8.0",
|
|
72
72
|
"@commitlint/config-conventional": "^19.8.0",
|
|
73
73
|
"@commitlint/cz-commitlint": "^19.8.0",
|
|
74
74
|
"@commitlint/format": "^19.8.0",
|
|
75
75
|
"@commitlint/types": "^19.8.0",
|
|
76
|
-
"@eslint/js": "^9.
|
|
77
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
78
|
-
"@typescript-eslint/parser": "^8.
|
|
79
|
-
"@vitest/coverage-v8": "3.1.
|
|
80
|
-
"cesium": "^1.
|
|
81
|
-
"eslint": "^9.
|
|
76
|
+
"@eslint/js": "^9.26.0",
|
|
77
|
+
"@typescript-eslint/eslint-plugin": "^8.32.0",
|
|
78
|
+
"@typescript-eslint/parser": "^8.32.0",
|
|
79
|
+
"@vitest/coverage-v8": "3.1.3",
|
|
80
|
+
"cesium": "^1.129.0",
|
|
81
|
+
"eslint": "^9.26.0",
|
|
82
82
|
"eslint-plugin-jsdoc": "^50.6.11",
|
|
83
|
-
"eslint-plugin-prettier": "^5.
|
|
83
|
+
"eslint-plugin-prettier": "^5.4.0",
|
|
84
84
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
85
85
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
86
86
|
"husky": "^9.1.7",
|
|
87
|
+
"jsdom": "^26.1.0",
|
|
87
88
|
"rimraf": "^6.0.1",
|
|
88
89
|
"tsup": "^8.4.0",
|
|
89
|
-
"typedoc": "^0.28.
|
|
90
|
+
"typedoc": "^0.28.4",
|
|
90
91
|
"typescript": "^5.8.3",
|
|
91
|
-
"vite": "^6.3.
|
|
92
|
-
"vitest": "^3.1.
|
|
92
|
+
"vite": "^6.3.5",
|
|
93
|
+
"vitest": "^3.1.3"
|
|
93
94
|
},
|
|
94
95
|
"scripts": {
|
|
95
96
|
"build": "tsup",
|
package/dist/chunk-NBGR2C26.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Rectangle as f}from"cesium";function b(o,r){if(r.size===0)return new f;let e=Number.POSITIVE_INFINITY,i=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY,a=Number.NEGATIVE_INFINITY,l=Array.from(r.keys()),d=Math.min(...l),c=r.get(d);if(c){let{start:v,end:h}=c,T=o.tileXYToRectangle(v.x,v.y,d),g=o.tileXYToRectangle(h.x,h.y,d);e=Math.min(T.west,e),i=Math.min(g.south,i),t=Math.max(g.east,t),a=Math.max(T.north,a)}return new f(e,i,t,a)}import{CesiumTerrainProvider as _}from"cesium";var n=class{_terrainProvider;_rectangle;_tileRanges;_ready=!1;_credit;_isCustom;constructor(r){this._terrainProvider=r.terrainProvider,this._tileRanges=r.tileRanges,this._credit=r.credit||"custom",this._isCustom=r.isCustom!==void 0?r.isCustom:!0,this._rectangle=b(r.terrainProvider.tilingScheme,r.tileRanges),r.tileRanges.forEach((e,i)=>{this._terrainProvider.availability?.addAvailableTileRange(i,e.start.x,e.start.y,e.end.x,e.end.y)}),this._ready=!0}contains(r,e,i){if(this._tileRanges.size===0||!this._tileRanges.has(i))return!1;let t=this._tileRanges.get(i);return r>=t.start.x&&r<=t.end.x&&e>=t.start.y&&e<=t.end.y}requestTileGeometry(r,e,i,t){if(!(!this._ready||!this.contains(r,e,i)))return this._terrainProvider.requestTileGeometry(r,e,i,t)}getTileDataAvailable(r,e,i){if(this._tileRanges.size===0||!this._tileRanges.has(i))return!1;let t=this._tileRanges.get(i);return r>=t.start.x&&r<=t.end.x&&e>=t.start.y&&e<=t.end.y}get isCustom(){return this._isCustom}get credit(){return this._credit}get terrainProvider(){return this._terrainProvider}get tileRanges(){return this._tileRanges}get rectangle(){return this._rectangle}get ready(){return this._ready}};(r=>{async function o(e,i,t){let a=t?.credit||"custom",l=await _.fromUrl(e,{...t,credit:a});return new r({terrainProvider:l,tileRanges:i,credit:a})}r.fromUrl=o})(n||={});var s=class extends Array{add(r){if(Array.isArray(r)){for(let i of r)this.add(i);return this.length}let e;return r instanceof n?e=r:e=new n(r),this.push(e)}remove(r){if(Array.isArray(r))return r.forEach(i=>this.remove(i)),this;let e=this.indexOf(r);return e>=0&&this.splice(e,1),this}removeAll(){this.length=0}};import{CesiumTerrainProvider as u,EllipsoidTerrainProvider as P}from"cesium";var m=class o{_terrainAreas=new s;_terrainProvider;_fallbackProvider;_tilingScheme;_ready=!1;_availability;constructor(r,e,i){this._terrainProvider=r,this._fallbackProvider=e,this._tilingScheme=r.tilingScheme,this._terrainAreas=new s(...i),this._availability=r.availability,this._ready=!0}static async create(r){try{let e;typeof r.terrainProvider=="string"?e=await u.fromUrl(r.terrainProvider,{requestVertexNormals:!0}):e=r.terrainProvider;let i;r.fallbackProvider?typeof r.fallbackProvider=="string"?i=await u.fromUrl(r.fallbackProvider,{requestVertexNormals:!0}):i=r.fallbackProvider:i=new P;let t=[];for(let a of r.terrainAreas){let l=typeof a.terrainProvider=="string"?await u.fromUrl(a.terrainProvider,{requestVertexNormals:!0}):a.terrainProvider;t.push(new n({terrainProvider:l,tileRanges:a.tileRanges,credit:a.credit,isCustom:a.isCustom}))}return new o(e,i,t)}catch(e){throw console.error("Failed to initialize HybridTerrainProvider:",e),e}}get ready(){return this._ready}get tilingScheme(){return this._tilingScheme}get availability(){return this._availability}get terrainAreas(){return[...this._terrainAreas]}get defaultProvider(){return this._terrainProvider}get fallbackProvider(){return this._fallbackProvider}get credit(){return this._terrainProvider?.credit}get errorEvent(){return this._terrainProvider.errorEvent}get hasWaterMask(){return this._terrainProvider.hasWaterMask}get hasVertexNormals(){return this._terrainProvider.hasVertexNormals}loadTileDataAvailability(r,e,i){return this._terrainProvider.loadTileDataAvailability(r,e,i)}getLevelMaximumGeometricError(r){return this._terrainProvider.getLevelMaximumGeometricError(r)}requestTileGeometry(r,e,i,t){if(this._ready){for(let a of this._terrainAreas)if(a.contains(r,e,i))return a.requestTileGeometry(r,e,i,t);return this._terrainProvider.getTileDataAvailable(r,e,i)?this._terrainProvider.requestTileGeometry(r,e,i,t):this._fallbackProvider.requestTileGeometry(r,e,i,t)}}getTileDataAvailable(r,e,i){for(let t of this._terrainAreas)if(t.contains(r,e,i))return t.getTileDataAvailable(r,e,i);return this._terrainProvider.getTileDataAvailable(r,e,i)}};(r=>{async function o(e,i,t){let a=await u.fromUrl(e,{credit:"custom"});return r.create({terrainAreas:[{terrainProvider:a,tileRanges:t,credit:"custom"}],terrainProvider:i,fallbackProvider:new P})}r.createOverlay=o})(m||={});export{b as a,n as b,s as c,m as d};
|
package/dist/chunk-RJNF3DQR.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Color as l,Entity as P,HeightReference as M,Rectangle as x,TileCoordinatesImageryProvider as O}from"cesium";import{defined as w,EntityCollection as A}from"cesium";var C=class s{static symbol=Symbol("cesium-item-tag");tag;collection;_valuesCache=null;_tagMap=new Map;_eventListeners=new Map;constructor({collection:e,tag:t}){this.tag=t||"default",this.collection=e}[Symbol.iterator](){return this.values[Symbol.iterator]()}_emit(e,t){let i=this._eventListeners.get(e);if(i){let r={type:e,...t};i.forEach(n=>n(r))}}_addToTagMap(e,t){this._tagMap.has(t)||this._tagMap.set(t,new Set),this._tagMap.get(t)?.add(e)}_removeFromTagMap(e){let t=e[s.symbol],i=this._tagMap.get(t);i&&(i.delete(e),i.size===0&&this._tagMap.delete(t))}_invalidateCache(){this._valuesCache=null}addEventListener(e,t){return this._eventListeners.has(e)||this._eventListeners.set(e,new Set),this._eventListeners.get(e)?.add(t),this}removeEventListener(e,t){return this._eventListeners.get(e)?.delete(t),this}add(e,t=this.tag,i){return Array.isArray(e)?e.forEach(r=>{this.add(r,t)}):(Object.defineProperty(e,s.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this.collection.add(e,i),this._addToTagMap(e,t),this._invalidateCache(),this._emit("add",{items:[e],tag:t})),e}contains(e){if(typeof e=="object")return this.collection.contains(e);let t=this._tagMap.get(e);return!!t&&t.size>0}remove(e){if(typeof e=="object"&&!Array.isArray(e)){let r=this.collection.remove(e);return r&&(this._removeFromTagMap(e),this._invalidateCache(),this._emit("remove",{items:[e]})),r}if(Array.isArray(e)){if(e.length===0)return!1;let r=!1;for(let n of e)this.remove(n)&&(r=!0);return r}let t=this.get(e);if(t.length===0)return!1;let i=!1;for(let r of t)this.remove(r)&&(i=!0);return i}removeAll(){this._tagMap.clear(),this.collection.removeAll(),this._invalidateCache(),this._emit("clear")}get values(){if(this.collection instanceof A)return this.collection.values;{let e=[];for(let t=0;t<this.collection.length;t++)e.push(this.collection.get(t));return e}}get length(){return this.values?.length||0}get(e){let t=this._tagMap.get(e);return t?Array.from(t):[]}first(e){let t=this._tagMap.get(e);if(t&&t.size>0)return t.values().next().value}get tags(){return Array.from(this._tagMap.keys())}update(e,t){let i=this.get(e);for(let r of i)this._removeFromTagMap(r),Object.defineProperty(r,s.symbol,{value:t,enumerable:!1,writable:!0,configurable:!0}),this._addToTagMap(r,t);return i.length>0&&this._emit("update",{items:i,tag:t}),i.length}show(e){let t=this.get(e);for(let i of t)w(i.show)&&(i.show=!0);return this}hide(e){let t=this.get(e);for(let i of t)w(i.show)&&(i.show=!1);return this}toggle(e){let t=this.get(e);for(let i of t)w(i.show)&&(i.show=!i.show);return this}setProperty(e,t,i=this.tag){let r=this.get(i);for(let n of r)if(e in n&&typeof n[e]!="function"){if(I(n,e))throw Error(`setProperty(${n}, ${e}) failed; The property is readonly.`);n[e]=t}return this}filter(e,t){return(t?this.get(t):this.values).filter(e)}forEach(e,t){(t?this.get(t):this.values).forEach((r,n)=>e(r,n))}map(e,t){return(t?this.get(t):this.values).map(e)}find(e,t){return(t?this.get(t):this.values).find(e)}},E=C;var f=class s{_viewer;_collection;_hybridTerrain;_visible=!1;_level=15;_tileCoordinatesLayer;_colors=new Map([["custom",l.RED],["default",l.BLUE],["fallback",l.GRAY],["grid",l.YELLOW]]);constructor(e,t){this._viewer=e,this._collection=new E({collection:e.entities,tag:s.tag.default}),t&&(t.colors&&Object.entries(t.colors).forEach(([i,r])=>{this._colors.set(i,r)}),t.tile!==void 0&&(this._visible=t.tile),t.activeLevel!==void 0&&(this._level=t.activeLevel),t.terrainProvider&&this.setTerrainProvider(t.terrainProvider))}setTerrainProvider(e){this._hybridTerrain=e,this.update()}update(){this.clear(),this._visible&&this.show(this._level)}clear(){this._collection.remove(this._collection.tags)}show(e=15){if(!this._hybridTerrain)return;this._collection.remove(s.tag.grid),this._level=e;let t=this._hybridTerrain.tilingScheme;this._tileCoordinatesLayer||(this._tileCoordinatesLayer=this._viewer.imageryLayers.addImageryProvider(new O({tilingScheme:t,color:l.YELLOW})));let i=(o,a,d)=>{if(this._hybridTerrain){for(let m of this._hybridTerrain.terrainAreas)if(m.contains(o,a,d))return m.isCustom?this._colors.get("custom")||l.RED:this._colors.get("default")||l.BLUE;if(this._hybridTerrain.getTileDataAvailable(o,a,d))return this._colors.get("default")||l.BLUE}return this._colors.get("fallback")||l.TRANSPARENT},r=this._getVisibleRectangle();if(!r)return;function n(o){return o&&Number.isFinite(o.west)&&Number.isFinite(o.south)&&Number.isFinite(o.east)&&Number.isFinite(o.north)&&o.west<=o.east&&o.south<=o.north}if(!n(r)){console.warn("Invalid visible rectangle detected, skipping grid display");return}try{let o=t.positionToTileXY(x.northwest(r),e),a=t.positionToTileXY(x.southeast(r),e);if(!o||!a)return;let d=100,m=Math.min(a.x-o.x+1,d),p=Math.min(a.y-o.y+1,d);for(let c=o.x;c<=o.x+m-1;c++)for(let h=o.y;h<=o.y+p-1;h++)try{let u=t.tileXYToRectangle(c,h,e);if(!n(u)){console.warn(`Invalid rectangle for tile (${c}, ${h}, ${e}), skipping`);continue}let y=i(c,h,e),g=s.createRectangle(u,y.withAlpha(.3));g.properties?.addProperty("tileX",c),g.properties?.addProperty("tileY",h),g.properties?.addProperty("tileLevel",e),this._collection.add(g,s.tag.grid)}catch(u){console.warn(`Error creating tile (${c}, ${h}, ${e}): ${u.message}`);continue}console.log("\u{1F680} ~ TerrainVisualizer ~ showGrid ~ collection:",this._collection),this._visible=!0}catch(o){console.error("Error displaying tile grid:",o)}}hide(){this._collection.remove(s.tag.grid),this._tileCoordinatesLayer&&(this._viewer.imageryLayers.remove(this._tileCoordinatesLayer),this._tileCoordinatesLayer=void 0),this._visible=!1}setColors(e){Object.entries(e).forEach(([t,i])=>{this._colors.set(t,i)}),this.update()}flyTo(e,t){let{rectangle:i}=e;this._viewer.camera.flyTo({destination:i,...t,complete:()=>{this._visible&&this.update()}})}_getVisibleRectangle(){return this._viewer.camera.computeViewRectangle()}get level(){return this._level}set level(e){this._level=e,this._visible&&this.update()}get visible(){return this._visible}get collection(){return this._collection}get viewer(){return this._viewer}};(i=>{i.tag={default:"Terrain Visualizer",boundary:"Terrain Visualizer Boundary",grid:"Terrain Visualizer Tile Grid"};function e(r,n){return new P({rectangle:{coordinates:r,material:n,heightReference:M.CLAMP_TO_GROUND}})}i.createRectangle=e;function t(r,n,o){let a=o?.tag||"terrain_area_visualization",d=o?.color||l.RED,m=o?.maxTilesToShow||100,p=o?.show??!0,c=o?.alpha||.7,h=o?.tileAlpha||.2,u=new E({collection:n.entities,tag:a}),{rectangle:y}=r;if(u.add(i.createRectangle(y,d.withAlpha(c)),a),p&&r.tileRanges.size>0){let{tilingScheme:g}=r.terrainProvider,b=0;r.tileRanges.forEach((v,R)=>{for(let T=v.start.x;T<=v.end.x&&b<m;T++)for(let _=v.start.y;_<=v.end.y&&b<m;_++){let L=g.tileXYToRectangle(T,_,R);u.add(e(L,d.withAlpha(h)),`${a}_tile`),b++}})}return u}i.visualize=t})(f||={});function I(s,e){let t=!1,i=Object.getOwnPropertyDescriptor(s,e);if(!i){let r=Object.getPrototypeOf(s);for(;r&&!i;)i=Object.getOwnPropertyDescriptor(r,e),r=Object.getPrototypeOf(r)}return i&&i.get&&!i.set&&(t=!0),t}export{f as a,I as b,E as c};
|
package/dist/chunk-STARYORM.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as r}from"./chunk-YZ7AUGIO.js";import{Viewer as d}from"cesium";function f(e,a,c){let m={baseLayerPicker:e.baseLayerPicker!==void 0,geocoder:e.geocoder!==void 0,homeButton:e.homeButton!==void 0,sceneModePicker:e.sceneModePicker!==void 0,timeline:e.timeline!==void 0,navigationHelpButton:e.navigationHelpButton!==void 0,animation:e.animation!==void 0,fullscreenButton:e.fullscreenButton!==void 0,shouldAnimate:e.clock.shouldAnimate,terrainProvider:e.terrainProvider,requestRenderMode:e.scene.requestRenderMode,infoBox:e.infoBox!==void 0},n=new d(a,{...m,...c});r(e,n);let l=e.imageryLayers;n.imageryLayers.removeAll();for(let o=0;o<l.length;o++){let s=l.get(o);n.imageryLayers.addImageryProvider(s.imageryProvider,o)}n.clock.startTime=e.clock.startTime.clone(),n.clock.stopTime=e.clock.stopTime.clone(),n.clock.currentTime=e.clock.currentTime.clone(),n.clock.multiplier=e.clock.multiplier,n.clock.clockStep=e.clock.clockStep,n.clock.clockRange=e.clock.clockRange,n.clock.shouldAnimate=e.clock.shouldAnimate,n.scene.globe.enableLighting=e.scene.globe.enableLighting,n.scene.globe.depthTestAgainstTerrain=e.scene.globe.depthTestAgainstTerrain,n.scene.screenSpaceCameraController.enableCollisionDetection=e.scene.screenSpaceCameraController.enableCollisionDetection;let t=e.scene.screenSpaceCameraController.tiltEventTypes;t&&(n.scene.screenSpaceCameraController.tiltEventTypes=Array.isArray(t)?[...t]:t);let i=e.scene.screenSpaceCameraController.zoomEventTypes;return i&&(n.scene.screenSpaceCameraController.zoomEventTypes=Array.isArray(i)?[...i]:i),n}export{f as a};
|
package/dist/chunk-YZ7AUGIO.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{defined as n}from"cesium";function a(o,e){if(n(o)&&n(e)){let{camera:i}=o;e.camera.position=i.positionWC.clone(),e.camera.direction=i.directionWC.clone(),e.camera.up=i.upWC.clone()}}export{a};
|