jgis 1.0.5 → 1.0.6

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 CHANGED
@@ -64,7 +64,7 @@ import { useMap } from 'jgis/2d';
64
64
 
65
65
  onMounted(() => {
66
66
  // 初始化地图,会自动注册为全局激活实例
67
- const { instance, addMarker, createLayer } = useMap('map-container', {
67
+ const { getInstance, addMarker, createLayer } = useMap('map-container', {
68
68
  center: [116.4, 39.9],
69
69
  zoom: 10
70
70
  });
@@ -164,12 +164,12 @@ onHover(data => {
164
164
  ```
165
165
 
166
166
 
167
- ### 3. 异步调用
167
+ ### 3. 异步获取
168
168
 
169
169
  如果创建地图的`useMap`在一个文件,而选择交互在另一个文件,可以使用异步调用。在文件中使用`onMapReady`和`getMapContext`方法来获取地图方法,而不需要传递跟地图相关的任何参数,但是必须指定地图容器的 id。例如:
170
170
 
171
171
  ```js
172
- import { onMapReady, getMapContext } from 'jgis/2d';
172
+ import { onMapReady, getMapContext, getMapContextAsync } from 'jgis/2d';
173
173
 
174
174
  // 'map-container' 是地图容器的 id
175
175
  onMapReady('map-container', ({ createLayer, flyTo }) => {
@@ -177,10 +177,31 @@ onMapReady('map-container', ({ createLayer, flyTo }) => {
177
177
  })
178
178
 
179
179
 
180
- getMapContext('map-container').then(({ createLayer, flyTo }) => {
180
+ getMapContextAsync('map-container').then(({ createLayer, flyTo }) => {
181
181
 
182
182
  })
183
183
 
184
+
185
+ const { createLayer, flyTo,getZoom } = getMapContext('map-container');
186
+
187
+
188
+ ```
189
+ **注意:**⚠️ 所有通过 `getMapContext` 获取的 API 都是异步的。
190
+
191
+ - 当你需要返回值或严格的执行顺序时,请使用 await
192
+ - 当你只是触发行为时,可以直接调用
193
+
194
+ 例如:
195
+
196
+ ```js
197
+ import { onMapReady, getMapContext, getMapContextAsync } from 'jgis/2d';
198
+
199
+
200
+ const { createLayer, flyTo, getZoom } = getMapContext('map-container');
201
+
202
+ const zoom = await getZoom();
203
+ await createLayer({ ... });
204
+
184
205
  ```
185
206
 
186
207
 
@@ -266,12 +287,12 @@ onHover((data) => {
266
287
 
267
288
 
268
289
 
269
- ### 3. 异步调用
290
+ ### 3. 异步获取
270
291
 
271
- 如果创建地图的`useMap`在一个文件,而选择交互在另一个文件,可以使用异步调用。在文件中使用`onMapReady`和`getMapContext`方法来获取地图方法,而不需要传递跟地图相关的任何参数,但是必须指定地图容器的 id。例如:
292
+ 如果创建地图的`useMap`在一个文件,而选择交互在另一个文件,可以使用异步调用。在文件中使用`onMapReady`和`getMapContext`方法来获取地图方法,而不需要传递跟地图相关的任何参数,但是必须指定地图容器的 id。可以在单文件中使用,例如:
272
293
 
273
294
  ```js
274
- import { onMapReady, getMapContext } from 'jgis/3d';
295
+ import { onMapReady, getMapContext, getMapContextAsync } from 'jgis/3d';
275
296
 
276
297
  // 'map-container' 是地图容器的 id
277
298
  onMapReady('map-container', ({ createLayer, flyTo }) => {
@@ -279,10 +300,32 @@ onMapReady('map-container', ({ createLayer, flyTo }) => {
279
300
  })
280
301
 
281
302
 
282
- getMapContext('map-container').then(({ createLayer, flyTo }) => {
303
+ getMapContextAsync('map-container').then(({ createLayer, flyTo }) => {
283
304
 
284
305
  })
285
306
 
307
+
308
+ const { createLayer, flyTo,getZoom } = getMapContext('map-container');
309
+
310
+
311
+ ```
312
+
313
+ **注意:**⚠️ 所有通过 `getMapContext` 获取的 API 都是异步的。
314
+
315
+ - 当你需要返回值或严格的执行顺序时,请使用 await
316
+ - 当你只是触发行为时,可以直接调用
317
+
318
+ 例如:
319
+
320
+ ```js
321
+ import { onMapReady, getMapContext, getMapContextAsync } from 'jgis/3d';
322
+
323
+
324
+ const { createLayer, flyTo, getLayerByName } = getMapContext('map-container');
325
+
326
+ const zoom = await getLayerByName('layer-name');
327
+ await createLayer({ ... });
328
+
286
329
  ```
287
330
 
288
331
 
package/dist/3d/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var C=Object.defineProperty,L=Object.defineProperties;var I=Object.getOwnPropertyDescriptors;var v=Object.getOwnPropertySymbols;var k=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var b=(t,r,e)=>r in t?C(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,m=(t,r)=>{for(var e in r||(r={}))k.call(r,e)&&b(t,e,r[e]);if(v)for(var e of v(r))O.call(r,e)&&b(t,e,r[e]);return t},p=(t,r)=>L(t,I(r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("cesium"),P=require("../index.js");function _(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const a=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,a.get?a:{enumerable:!0,get:()=>t[e]})}}return r.default=t,Object.freeze(r)}const c=_(x);function B(t,r){const e={baseType:"img",noteType:"cia",token:"dadcbbdb5206b626a29ca739686b3087"},{baseType:a,noteType:n,token:i}=Object.assign(e,r),o="https://t{s}.tianditu.gov.cn",s=["0","1","2","3","4","5","6","7"],l=new c.UrlTemplateImageryProvider({url:`${o}/DataServer?T=${a}_w&x={x}&y={y}&l={z}&tk=${i}`,subdomains:s,tilingScheme:new c.WebMercatorTilingScheme});let u=t.imageryLayers.addImageryProvider(l);u.gamma=1;const f=new c.UrlTemplateImageryProvider({url:`${o}/DataServer?T=ibo_w&x={x}&y={y}&l={z}&tk=${i}`,subdomains:s,tilingScheme:new c.WebMercatorTilingScheme});t.imageryLayers.addImageryProvider(f);const T=new c.UrlTemplateImageryProvider({url:`${o}/DataServer?T=${n}_w&x={x}&y={y}&l={z}&tk=${i}`,subdomains:s,tilingScheme:new c.WebMercatorTilingScheme});t.imageryLayers.addImageryProvider(T)}function E(t,r){B(t,r)}function S(t,r,e,a){(!a||!a.type)&&(a=Object.assign({},e,a));const n=a.type||"Point";let i;switch(n){case"Point":i=D(t,r,e,a);break;case"MultiLineString":case"LineString":i=R(t,r,e,a);break;case"Wms":e=e||a,i=H(t,r,e);break}return i}function D(t,r,e,a){const n=t.scene.primitives.add(new c.BillboardCollection);return n._layerName=r,e.forEach((i,o)=>{const s={scale:1,verticalOrigin:c.VerticalOrigin.BOTTOM,show:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new c.NearFarScalar(1,1,1e5,.2)},l={position:c.Cartesian3.fromDegrees(...P.getLonLat(i),1),image:a.image||a.getImage(i),id:i.id||`point_${o}`},u=n.add(m(m(m({},s),a),l));u._originStyle=p(m(m(m({},s),a),l),{color:c.Color.WHITE}),u.properties=i}),t.scene.requestRender(),n}function R(t,r,e,a){if(e.length<2)return;const n=j(e,a),i=new c.GroundPolylinePrimitive({geometryInstances:n,appearance:new c.PolylineColorAppearance({translucent:!0}),interleave:!0,allowPicking:!0,asynchronous:!1});return i._layerName=r,t.scene.groundPrimitives.add(i),i}function j(t,r){const e=[],a=t.map(o=>c.Cartesian3.fromDegrees(...P.getLonLat(o),0)),n=new c.GroundPolylineGeometry({positions:a,width:r.width||4,granularity:r.granularity||2e3}),i=new c.GeometryInstance({id:"pipeLine",geometry:n,attributes:{color:c.ColorGeometryInstanceAttribute.fromColor(c.Color.fromCssColorString(r.color))}});return e.push(i),e}function H(t,r,e){const a=new c.WebMapServiceImageryProvider({url:e.url,layers:e.layers,parameters:{service:"WMS",version:"1.1.1",request:"GetMap",transparent:!0,format:"image/png"}});a._layerName=r;const n=t.imageryLayers.addImageryProvider(a);return n.alpha=e.alpha||.5,n.brightness=e.brightness||1,n.contrast=e.contrast||1,n.gamma=e.gamma||0,n}function N(t,r){const e=t.scene.primitives.add(new c.BillboardCollection);return e._layerName=r,e}function h(t,r){const e=t.scene.primitives,a=e.length;for(let n=0;n<a;n++){const i=e.get(n);if(i._layerName===r)return i}return null}function $(t,r){const e=h(t,r);e?t.scene.primitives.remove(e):console.warn("Layer not found:",r)}function q(t,r,e){const a=h(t,r);a?a.show=e:console.warn("Primitive not found:",r)}const g=new Map,d={},y={},W=(t,r)=>{g.has(t)&&console.warn(`Map with target '${t}' already exists. Overwriting...`),g.set(t,r),d[t]&&(d[t].forEach(e=>e(r)),delete d[t]),y[t]&&(y[t].forEach(e=>e(r)),delete y[t])};function w(t){const r=g.get(t);return r?Promise.resolve(r):new Promise(e=>{y[t]=y[t]||[],y[t].push(e)})}const V=t=>{g.has(t)&&(g.delete(t),delete d[t])},M=(t,r)=>{const e=g.get(t);if(e){r(e);return}d[t]||(d[t]=[]),d[t].push(r)};function G(t,r={}){const e=new c.Viewer(t,{requestRenderMode:!0,maximumRenderTimeChange:1/0,selectionIndicator:!1,animation:!1,timeline:!1,geocoder:!1,homeButton:!1,baseLayerPicker:!1,sceneModePicker:!1,navigationHelpButton:!1,infoBox:!1,fullscreenButton:!1,shouldAnimate:!0,contextOptions:{webgl:{preserveDrawingBuffer:!0,alpha:!0}}});let a;return c.defined(r.terrainUrl)?c.CesiumTerrainProvider.fromUrl(r.terrainUrl,{requestVertexNormals:!0,requestWaterMask:!0}).then(n=>{a=n,e.terrainProvider=a}):a=new c.EllipsoidTerrainProvider,e.terrainProvider=a,e._cesiumWidget._creditContainer.style.display="none",e.scene.globe.baseColor=new c.Color(0,0,0,0),e.scene.screenSpaceCameraController.minimumZoomDistance=r.minZoom||1,e.scene.screenSpaceCameraController.maximumZoomDistance=r.maxZoom||1e7,e.resolutionScale=window.devicePixelRatio>2?2:window.devicePixelRatio,e}function U(t,r,e,a){S(t,r,e,p(m({},a),{type:"Point"}))}function A(t,r,e){return new Promise((a,n)=>{t.camera.flyTo({destination:c.Cartesian3.fromDegrees(...r),duration:e.duration||1.2,orientation:{heading:e.heading||0,pitch:e.pitch||-Math.PI/2,roll:e.roll||0},easingFunction:e.easing||c.EasingFunction.LINEAR_NONE,maximumHeight:e.maxHeight||1e6,complete:()=>{a(!0)},cancel:()=>{a(!1)}})})}function F(t,r=1){return t.camera.flyHome(r)}function z(t,r,e){return new Promise((a,n)=>{t.camera.flyToBoundingSphere(r,{duration:e.duration||1e3,offset:new c.HeadingPitchRange(e.heading||0,e.pitch||-Math.PI/4,e.roll||0),easingFunction:e.easing,maximumHeight:e.maxHeight||1e6,complete:()=>{a(!0)},cancel:()=>{a(!1)}})})}function Z(t,r,e){t.camera.setView({destination:c.Cartesian3.fromDegrees(...r),orientation:{heading:e.heading||0,pitch:e.pitch||-Math.PI/2,roll:e.roll||0}})}function K(t,r){t.destroy(),V(r)}function Y(t,r=500){let e=0;return function(...a){const n=Date.now();n-e>=r&&(e=n,t.apply(this,a))}}function J(t,r){const e=new Set,a=new c.ScreenSpaceEventHandler(t.scene.canvas);let n=null;a.setInputAction(o=>{const s=t.scene.pick(o.position);if(n&&(Object.assign(n,n._originStyle),n=null,t.scene.requestRender()),c.defined(s)&&s.primitive instanceof c.Billboard){const l=s.primitive,u={primitive:l,properties:l.properties,event:o,pick:s};n=l,i(u),Object.assign(l,r.style||r.getStyle(l)),t.scene.requestRender()}},c.ScreenSpaceEventType.LEFT_CLICK);const i=o=>e.forEach(s=>s(o));return{onSelect:o=>(e.add(o),()=>e.delete(o)),clear(){e.clear()},destroy(){e.clear()}}}function Q(t,r){const e=new Set,a=s=>e.forEach(l=>l(s)),n=new c.ScreenSpaceEventHandler(t.scene.canvas);let i=null;const o=Y(a,r.delay||500);return n.setInputAction(s=>{const l=t.scene.pick(s.endPosition);if(i&&(Object.assign(i,i._originStyle),i=null,t.scene.requestRender()),c.defined(l)&&l.primitive instanceof c.Billboard){const u=l.primitive,f={primitive:u,properties:u.properties,event:s,pick:l};o(f),i=u,Object.assign(u,r.style||r.getStyle(u)),t.scene.requestRender()}},c.ScreenSpaceEventType.MOUSE_MOVE),{onHover:s=>(e.add(s),()=>e.delete(s)),clear:()=>{e.clear()},destroy:()=>{e.clear()}}}function X(t,r){const e=G(t,r);E(e,r);const a={targetId:t,instance:e,addMarker:(n,i,o)=>U(e,n,i,o),createLayer:(n,i,o)=>S(e,n,i,o),removeLayer:n=>$(e,n),visibleLayer:(n,i)=>q(e,n,i),getLayerByName:n=>h(e,n),createBlankLayer:n=>N(e,n),createSelect:n=>J(e,n),createHover:n=>Q(e,n),flyTo:(n,i)=>A(e,n,i),flyHome:n=>F(e,n),flyToBoundingSphere:(n,i)=>z(e,n,i),setView:(n,i)=>Z(e,n,i),getMapContext:n=>w(n),onMapReady:(n,i)=>M(n,i),destroyMap:n=>K(e,n)};return W(t,a),a}function ee(t,r){M(t,r)}function te(t){return w(t)}exports.getMapContext=te;exports.onMapReady=ee;exports.useMap=X;
1
+ "use strict";var C=Object.defineProperty,L=Object.defineProperties;var I=Object.getOwnPropertyDescriptors;var v=Object.getOwnPropertySymbols;var k=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var b=(t,r,e)=>r in t?C(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,m=(t,r)=>{for(var e in r||(r={}))k.call(r,e)&&b(t,e,r[e]);if(v)for(var e of v(r))O.call(r,e)&&b(t,e,r[e]);return t},p=(t,r)=>L(t,I(r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("cesium"),S=require("../index.js");function _(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const a=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,a.get?a:{enumerable:!0,get:()=>t[e]})}}return r.default=t,Object.freeze(r)}const c=_(x);function B(t,r){const e={baseType:"img",noteType:"cia",token:"dadcbbdb5206b626a29ca739686b3087"},{baseType:a,noteType:n,token:i}=Object.assign(e,r),o="https://t{s}.tianditu.gov.cn",s=["0","1","2","3","4","5","6","7"],l=new c.UrlTemplateImageryProvider({url:`${o}/DataServer?T=${a}_w&x={x}&y={y}&l={z}&tk=${i}`,subdomains:s,tilingScheme:new c.WebMercatorTilingScheme});let u=t.imageryLayers.addImageryProvider(l);u.gamma=1;const f=new c.UrlTemplateImageryProvider({url:`${o}/DataServer?T=ibo_w&x={x}&y={y}&l={z}&tk=${i}`,subdomains:s,tilingScheme:new c.WebMercatorTilingScheme});t.imageryLayers.addImageryProvider(f);const T=new c.UrlTemplateImageryProvider({url:`${o}/DataServer?T=${n}_w&x={x}&y={y}&l={z}&tk=${i}`,subdomains:s,tilingScheme:new c.WebMercatorTilingScheme});t.imageryLayers.addImageryProvider(T)}function E(t,r){B(t,r)}function P(t,r,e,a){(!a||!a.type)&&(a=Object.assign({},e,a));const n=a.type||"Point";let i;switch(n){case"Point":i=D(t,r,e,a);break;case"MultiLineString":case"LineString":i=R(t,r,e,a);break;case"Wms":e=e||a,i=H(t,r,e);break}return i}function D(t,r,e,a){const n=t.scene.primitives.add(new c.BillboardCollection);return n._layerName=r,e.forEach((i,o)=>{const s={scale:1,verticalOrigin:c.VerticalOrigin.BOTTOM,show:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new c.NearFarScalar(1,1,1e5,.2)},l={position:c.Cartesian3.fromDegrees(...S.getLonLat(i),1),image:a.image||a.getImage(i),id:i.id||`point_${o}`},u=n.add(m(m(m({},s),a),l));u._originStyle=p(m(m(m({},s),a),l),{color:c.Color.WHITE}),u.properties=i}),t.scene.requestRender(),n}function R(t,r,e,a){if(e.length<2)return;const n=j(e,a),i=new c.GroundPolylinePrimitive({geometryInstances:n,appearance:new c.PolylineColorAppearance({translucent:!0}),interleave:!0,allowPicking:!0,asynchronous:!1});return i._layerName=r,t.scene.groundPrimitives.add(i),i}function j(t,r){const e=[],a=t.map(o=>c.Cartesian3.fromDegrees(...S.getLonLat(o),0)),n=new c.GroundPolylineGeometry({positions:a,width:r.width||4,granularity:r.granularity||2e3}),i=new c.GeometryInstance({id:"pipeLine",geometry:n,attributes:{color:c.ColorGeometryInstanceAttribute.fromColor(c.Color.fromCssColorString(r.color))}});return e.push(i),e}function H(t,r,e){const a=new c.WebMapServiceImageryProvider({url:e.url,layers:e.layers,parameters:{service:"WMS",version:"1.1.1",request:"GetMap",transparent:!0,format:"image/png"}});a._layerName=r;const n=t.imageryLayers.addImageryProvider(a);return n.alpha=e.alpha||.5,n.brightness=e.brightness||1,n.contrast=e.contrast||1,n.gamma=e.gamma||1,n}function N(t,r){const e=t.scene.primitives.add(new c.BillboardCollection);return e._layerName=r,e}function h(t,r){const e=t.scene.primitives,a=e.length;for(let n=0;n<a;n++){const i=e.get(n);if(i._layerName===r)return i}return null}function $(t,r){const e=h(t,r);e?t.scene.primitives.remove(e):console.warn("Layer not found:",r)}function q(t,r,e){const a=h(t,r);a?a.show=e:console.warn("Primitive not found:",r)}const g=new Map,d={},y={},W=(t,r)=>{g.has(t)&&console.warn(`Map with target '${t}' already exists. Overwriting...`),g.set(t,r),d[t]&&(d[t].forEach(e=>e(r)),delete d[t]),y[t]&&(y[t].forEach(e=>e(r)),delete y[t])};function w(t){const r=g.get(t);return r?Promise.resolve(r):new Promise(e=>{y[t]=y[t]||[],y[t].push(e)})}const V=t=>{g.has(t)&&(g.delete(t),delete d[t])},M=(t,r)=>{const e=g.get(t);if(e){r(e);return}d[t]||(d[t]=[]),d[t].push(r)};function G(t,r={}){const e=new c.Viewer(t,{requestRenderMode:!0,maximumRenderTimeChange:1/0,selectionIndicator:!1,animation:!1,timeline:!1,geocoder:!1,homeButton:!1,baseLayerPicker:!1,sceneModePicker:!1,navigationHelpButton:!1,infoBox:!1,fullscreenButton:!1,shouldAnimate:!0,contextOptions:{webgl:{preserveDrawingBuffer:!0,alpha:!0}}});let a;return c.defined(r.terrainUrl)?c.CesiumTerrainProvider.fromUrl(r.terrainUrl,{requestVertexNormals:!0,requestWaterMask:!0}).then(n=>{a=n,e.terrainProvider=a}):a=new c.EllipsoidTerrainProvider,e.terrainProvider=a,e._cesiumWidget._creditContainer.style.display="none",e.scene.globe.baseColor=new c.Color(0,0,0,0),e.scene.screenSpaceCameraController.minimumZoomDistance=r.minZoom||1,e.scene.screenSpaceCameraController.maximumZoomDistance=r.maxZoom||1e7,e.resolutionScale=window.devicePixelRatio>2?2:window.devicePixelRatio,e}function U(t,r,e,a){P(t,r,e,p(m({},a),{type:"Point"}))}function A(t,r,e){return new Promise((a,n)=>{t.camera.flyTo({destination:c.Cartesian3.fromDegrees(...r),duration:e.duration||1.2,orientation:{heading:e.heading||0,pitch:e.pitch||-Math.PI/2,roll:e.roll||0},easingFunction:e.easing||c.EasingFunction.LINEAR_NONE,maximumHeight:e.maxHeight||1e6,complete:()=>{a(!0)},cancel:()=>{a(!1)}})})}function F(t,r=1){return t.camera.flyHome(r)}function z(t,r,e){return new Promise((a,n)=>{t.camera.flyToBoundingSphere(r,{duration:e.duration||1e3,offset:new c.HeadingPitchRange(e.heading||0,e.pitch||-Math.PI/4,e.roll||0),easingFunction:e.easing,maximumHeight:e.maxHeight||1e6,complete:()=>{a(!0)},cancel:()=>{a(!1)}})})}function Z(t,r,e){t.camera.setView({destination:c.Cartesian3.fromDegrees(...r),orientation:{heading:e.heading||0,pitch:e.pitch||-Math.PI/2,roll:e.roll||0}})}function K(t,r){t.destroy(),V(r)}function Y(t,r=500){let e=0;return function(...a){const n=Date.now();n-e>=r&&(e=n,t.apply(this,a))}}function J(t,r){const e=new Set,a=new c.ScreenSpaceEventHandler(t.scene.canvas);let n=null;a.setInputAction(o=>{const s=t.scene.pick(o.position);if(n&&(Object.assign(n,n._originStyle),n.isSelected=!1,n=null,t.scene.requestRender()),c.defined(s)&&s.primitive instanceof c.Billboard){const l=s.primitive;l.isSelected=!0;const u={primitive:l,properties:l.properties,event:o,pick:s};n=l,i(u),Object.assign(l,r.style||r.getStyle(l)),t.scene.requestRender()}},c.ScreenSpaceEventType.LEFT_CLICK);const i=o=>e.forEach(s=>s(o));return{onSelect:o=>(e.add(o),()=>e.delete(o)),clear(){e.clear()},destroy(){e.clear()}}}function Q(t,r){const e=new Set,a=s=>e.forEach(l=>l(s)),n=new c.ScreenSpaceEventHandler(t.scene.canvas);let i=null;const o=Y(a,r.delay||500);return n.setInputAction(s=>{const l=t.scene.pick(s.endPosition);if(i&&!i.isSelected&&(Object.assign(i,i._originStyle),i=null,t.scene.requestRender()),c.defined(l)&&l.primitive instanceof c.Billboard){const u=l.primitive,f={primitive:u,properties:u.properties,event:s,pick:l};o(f),i=u,u.isSelected||(Object.assign(u,r.style||r.getStyle(u)),t.scene.requestRender())}},c.ScreenSpaceEventType.MOUSE_MOVE),{onHover:s=>(e.add(s),()=>e.delete(s)),clear:()=>{e.clear()},destroy:()=>{e.clear()}}}function X(t,r){const e=G(t,r);E(e,r);const a={targetId:t,instance:e,addMarker:(n,i,o)=>U(e,n,i,o),createLayer:(n,i,o)=>P(e,n,i,o),removeLayer:n=>$(e,n),visibleLayer:(n,i)=>q(e,n,i),getLayerByName:n=>h(e,n),createBlankLayer:n=>N(e,n),createSelect:n=>J(e,n),createHover:n=>Q(e,n),flyTo:(n,i)=>A(e,n,i),flyHome:n=>F(e,n),flyToBoundingSphere:(n,i)=>z(e,n,i),setView:(n,i)=>Z(e,n,i),getMapContext:n=>w(n),onMapReady:(n,i)=>M(n,i),destroyMap:n=>K(e,n)};return W(t,a),a}function ee(t,r){M(t,r)}function te(t){return w(t)}exports.getMapContext=te;exports.onMapReady=ee;exports.useMap=X;
package/dist/3d/index.mjs CHANGED
@@ -11,7 +11,7 @@ var P = (r, t, e) => t in r ? C(r, t, { enumerable: !0, configurable: !0, writab
11
11
  return r;
12
12
  }, p = (r, t) => I(r, L(t));
13
13
  import * as c from "cesium";
14
- import { getLonLat as b } from "../index.mjs";
14
+ import { getLonLat as S } from "../index.mjs";
15
15
  function O(r, t) {
16
16
  const e = {
17
17
  baseType: "img",
@@ -41,7 +41,7 @@ function O(r, t) {
41
41
  function B(r, t) {
42
42
  O(r, t);
43
43
  }
44
- function w(r, t, e, a) {
44
+ function b(r, t, e, a) {
45
45
  (!a || !a.type) && (a = Object.assign({}, e, a));
46
46
  const n = a.type || "Point";
47
47
  let i;
@@ -73,7 +73,7 @@ function _(r, t, e, a) {
73
73
  scaleByDistance: new c.NearFarScalar(1, 1, 1e5, 0.2)
74
74
  // 根据相机距离缩放
75
75
  }, l = {
76
- position: c.Cartesian3.fromDegrees(...b(i), 1),
76
+ position: c.Cartesian3.fromDegrees(...S(i), 1),
77
77
  image: a.image || a.getImage(i),
78
78
  id: i.id || `point_${o}`
79
79
  }, u = n.add(m(m(m({}, s), a), l));
@@ -94,7 +94,7 @@ function E(r, t, e, a) {
94
94
  return i._layerName = t, r.scene.groundPrimitives.add(i), i;
95
95
  }
96
96
  function D(r, t) {
97
- const e = [], a = r.map((o) => c.Cartesian3.fromDegrees(...b(o), 0)), n = new c.GroundPolylineGeometry({
97
+ const e = [], a = r.map((o) => c.Cartesian3.fromDegrees(...S(o), 0)), n = new c.GroundPolylineGeometry({
98
98
  positions: a,
99
99
  width: t.width || 4,
100
100
  granularity: t.granularity || 2e3
@@ -121,7 +121,7 @@ function H(r, t, e) {
121
121
  });
122
122
  a._layerName = t;
123
123
  const n = r.imageryLayers.addImageryProvider(a);
124
- return n.alpha = e.alpha || 0.5, n.brightness = e.brightness || 1, n.contrast = e.contrast || 1, n.gamma = e.gamma || 0, n;
124
+ return n.alpha = e.alpha || 0.5, n.brightness = e.brightness || 1, n.contrast = e.contrast || 1, n.gamma = e.gamma || 1, n;
125
125
  }
126
126
  function R(r, t) {
127
127
  const e = r.scene.primitives.add(new c.BillboardCollection());
@@ -147,7 +147,7 @@ function N(r, t, e) {
147
147
  const g = /* @__PURE__ */ new Map(), d = {}, y = {}, j = (r, t) => {
148
148
  g.has(r) && console.warn(`Map with target '${r}' already exists. Overwriting...`), g.set(r, t), d[r] && (d[r].forEach((e) => e(t)), delete d[r]), y[r] && (y[r].forEach((e) => e(t)), delete y[r]);
149
149
  };
150
- function S(r) {
150
+ function w(r) {
151
151
  const t = g.get(r);
152
152
  return t ? Promise.resolve(t) : new Promise((e) => {
153
153
  y[r] = y[r] || [], y[r].push(e);
@@ -207,7 +207,7 @@ function q(r, t = {}) {
207
207
  }) : a = new c.EllipsoidTerrainProvider(), e.terrainProvider = a, e._cesiumWidget._creditContainer.style.display = "none", e.scene.globe.baseColor = new c.Color(0, 0, 0, 0), e.scene.screenSpaceCameraController.minimumZoomDistance = t.minZoom || 1, e.scene.screenSpaceCameraController.maximumZoomDistance = t.maxZoom || 1e7, e.resolutionScale = window.devicePixelRatio > 2 ? 2 : window.devicePixelRatio, e;
208
208
  }
209
209
  function V(r, t, e, a) {
210
- w(r, t, e, p(m({}, a), { type: "Point" }));
210
+ b(r, t, e, p(m({}, a), { type: "Point" }));
211
211
  }
212
212
  function G(r, t, e) {
213
213
  return new Promise((a, n) => {
@@ -280,8 +280,10 @@ function K(r, t) {
280
280
  let n = null;
281
281
  a.setInputAction((o) => {
282
282
  const s = r.scene.pick(o.position);
283
- if (n && (Object.assign(n, n._originStyle), n = null, r.scene.requestRender()), c.defined(s) && s.primitive instanceof c.Billboard) {
284
- const l = s.primitive, u = {
283
+ if (n && (Object.assign(n, n._originStyle), n.isSelected = !1, n = null, r.scene.requestRender()), c.defined(s) && s.primitive instanceof c.Billboard) {
284
+ const l = s.primitive;
285
+ l.isSelected = !0;
286
+ const u = {
285
287
  primitive: l,
286
288
  properties: l.properties,
287
289
  event: o,
@@ -307,14 +309,14 @@ function Y(r, t) {
307
309
  const o = z(a, t.delay || 500);
308
310
  return n.setInputAction((s) => {
309
311
  const l = r.scene.pick(s.endPosition);
310
- if (i && (Object.assign(i, i._originStyle), i = null, r.scene.requestRender()), c.defined(l) && l.primitive instanceof c.Billboard) {
312
+ if (i && !i.isSelected && (Object.assign(i, i._originStyle), i = null, r.scene.requestRender()), c.defined(l) && l.primitive instanceof c.Billboard) {
311
313
  const u = l.primitive, f = {
312
314
  primitive: u,
313
315
  properties: u.properties,
314
316
  event: s,
315
317
  pick: l
316
318
  };
317
- o(f), i = u, Object.assign(u, t.style || t.getStyle(u)), r.scene.requestRender();
319
+ o(f), i = u, u.isSelected || (Object.assign(u, t.style || t.getStyle(u)), r.scene.requestRender());
318
320
  }
319
321
  }, c.ScreenSpaceEventType.MOUSE_MOVE), {
320
322
  onHover: (s) => (e.add(s), () => e.delete(s)),
@@ -333,7 +335,7 @@ function X(r, t) {
333
335
  targetId: r,
334
336
  instance: e,
335
337
  addMarker: (n, i, o) => V(e, n, i, o),
336
- createLayer: (n, i, o) => w(e, n, i, o),
338
+ createLayer: (n, i, o) => b(e, n, i, o),
337
339
  removeLayer: (n) => $(e, n),
338
340
  visibleLayer: (n, i) => N(e, n, i),
339
341
  getLayerByName: (n) => h(e, n),
@@ -344,7 +346,7 @@ function X(r, t) {
344
346
  flyHome: (n) => U(e, n),
345
347
  flyToBoundingSphere: (n, i) => A(e, n, i),
346
348
  setView: (n, i) => F(e, n, i),
347
- getMapContext: (n) => S(n),
349
+ getMapContext: (n) => w(n),
348
350
  onMapReady: (n, i) => T(n, i),
349
351
  destroyMap: (n) => Z(e, n)
350
352
  };
@@ -354,7 +356,7 @@ function ee(r, t) {
354
356
  T(r, t);
355
357
  }
356
358
  function re(r) {
357
- return S(r);
359
+ return w(r);
358
360
  }
359
361
  export {
360
362
  re as getMapContext,
@@ -14,7 +14,7 @@ export declare function createBaseLayer(viewer: Cesium.Viewer, options: any): vo
14
14
  * @param options 配置项
15
15
  * @returns 图层
16
16
  */
17
- export declare function createLayer<K extends keyof optionsMap>(viewer: Cesium.Viewer, layerName: string, data: any, options: optionsMap[K] & {
17
+ export declare function createLayer<K extends keyof optionsMap>(viewer: Cesium.Viewer, layerName: string, data: any, options?: optionsMap[K] & {
18
18
  type?: K;
19
19
  }): any;
20
20
  /**
@@ -48,7 +48,7 @@ export type Coordinates = [number, number, number];
48
48
  export interface MapContext {
49
49
  targetId: string;
50
50
  instance: Cesium.Viewer;
51
- addMarker: (layerName: string, data: any, options?: optionsMap['Point']) => void;
51
+ addMarker: (layerName: string, data: any, options: optionsMap['Point']) => void;
52
52
  createLayer: <K extends keyof optionsMap>(layerName: string, data: any, options?: optionsMap[K] & {
53
53
  type?: K;
54
54
  }) => Cesium.Primitive;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jgis",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "快速创建二维、三维工具库",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",