jgis 1.0.4 → 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 +53 -10
- package/dist/3d/index.js +1 -1
- package/dist/3d/index.mjs +16 -14
- package/dist/3d/layer.d.ts +1 -1
- package/dist/3d/types.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* 按需引入 `jgis/2d` 或 `jgis/3d`。
|
|
16
16
|
* 使用 2D 功能时绝不会打包 Cesium 代码,保持体积轻量。
|
|
17
17
|
* **🚀 函数式编程 (Functional)**:
|
|
18
|
-
* 摒弃复杂的类继承,使用 Hooks 风格(如 `
|
|
18
|
+
* 摒弃复杂的类继承,使用 Hooks 风格(如 `createSelect`, `useMap`)。
|
|
19
19
|
* 支持**隐式上下文**:初始化地图后,功能函数自动绑定当前地图实例,无需重复传参。
|
|
20
20
|
* **⚡️ 全能拾取器 (Universal Picker)**:
|
|
21
21
|
* **Hybrid Select**:一套 API 同时支持本地 Vector 图层和远程 WMS 服务(自动解析 GetFeatureInfo)。
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* **🎨 灵活的样式系统**:
|
|
24
24
|
* 支持根据图层、属性动态渲染高亮样式,完全控制权交给用户。
|
|
25
25
|
* **🗺️ 二三维API风格一致**:
|
|
26
|
-
* 二三维API
|
|
26
|
+
* 二三维API风格一致,方便会一种框架的开发者快速理解和上手开发另一种框架。
|
|
27
27
|
* **🗺️ 完全兼容openlayers/cesium**:
|
|
28
28
|
* 导出`instance`地图实例,可自己操作原生API。
|
|
29
29
|
* 如果有特殊需求,完全可以自己用原生实现,没有任何违和感。
|
|
@@ -64,7 +64,7 @@ import { useMap } from 'jgis/2d';
|
|
|
64
64
|
|
|
65
65
|
onMounted(() => {
|
|
66
66
|
// 初始化地图,会自动注册为全局激活实例
|
|
67
|
-
const {
|
|
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
|
-
|
|
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
|
-
|
|
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"),
|
|
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
|
|
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
|
|
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(...
|
|
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(...
|
|
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 ||
|
|
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
|
|
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
|
-
|
|
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
|
|
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) =>
|
|
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) =>
|
|
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
|
|
359
|
+
return w(r);
|
|
358
360
|
}
|
|
359
361
|
export {
|
|
360
362
|
re as getMapContext,
|
package/dist/3d/layer.d.ts
CHANGED
|
@@ -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
|
|
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
|
/**
|
package/dist/3d/types.d.ts
CHANGED
|
@@ -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
|
|
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;
|