@vcmap/core 6.1.1 → 6.1.3

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.
@@ -1,10 +1,10 @@
1
- import { Cartographic, Cartesian3, Math as CesiumMath, Cesium3DTileFeature, Cesium3DTilePointFeature, Entity, } from '@vcmap-cesium/engine';
1
+ import { Cartesian3, Cesium3DTileFeature, Cesium3DTilePointFeature, Entity, } from '@vcmap-cesium/engine';
2
2
  import AbstractInteraction from './abstractInteraction.js';
3
- import Projection from '../util/projection.js';
4
3
  import { EventType, ModificationKeyType, PointerKeyType, } from './interactionType.js';
5
4
  import { allowPicking, vcsLayerName } from '../layer/layerSymbols.js';
6
5
  import { originalFeatureSymbol, primitives } from '../layer/vectorSymbols.js';
7
6
  import { vectorClusterGroupName } from '../vectorCluster/vectorClusterSymbols.js';
7
+ import { cartesianToMercator } from '../util/math.js';
8
8
  function getFeatureFromOlMap(map, pixel, hitTolerance) {
9
9
  let feature;
10
10
  map.forEachFeatureAtPixel(pixel, (feat) => {
@@ -67,6 +67,24 @@ function getFeatureFromScene(scene, windowPosition, hitTolerance) {
67
67
  }
68
68
  return { pickObject, feature };
69
69
  }
70
+ const MAX_UNDERGROUND_FEATURE_DEPTH_SQRD = 1000 ** 2;
71
+ function getPositionFromScene(scene, windowPosition, ray, primitivesToExclude) {
72
+ if (primitivesToExclude) {
73
+ const intersection = scene.pickFromRay(ray, primitivesToExclude);
74
+ if (intersection?.position) {
75
+ if (scene.globe.translucency.enabled) {
76
+ const globeIntersection = scene.globe.pick(ray, scene);
77
+ if (globeIntersection &&
78
+ Cartesian3.distanceSquared(globeIntersection, intersection.position) >
79
+ MAX_UNDERGROUND_FEATURE_DEPTH_SQRD) {
80
+ return globeIntersection;
81
+ }
82
+ }
83
+ return intersection.position;
84
+ }
85
+ }
86
+ return scene.pickPosition(windowPosition);
87
+ }
70
88
  /**
71
89
  * @group Interaction
72
90
  */
@@ -159,29 +177,7 @@ class FeatureAtPixelInteraction extends AbstractInteraction {
159
177
  if (feature) {
160
178
  event.feature = feature;
161
179
  }
162
- let scratchCartographic = new Cartographic();
163
- let scratchCartesian = new Cartesian3();
164
- let scratchPullCartesian = new Cartesian3();
165
180
  const { pickTranslucentDepth } = scene;
166
- const handlePick = () => {
167
- if (!scratchCartesian) {
168
- scratchCartesian = new Cartesian3();
169
- return Promise.resolve(event);
170
- }
171
- if (this.pullPickedPosition && event.ray) {
172
- scratchPullCartesian = Cartesian3.multiplyByScalar(event.ray.direction, this.pullPickedPosition, scratchPullCartesian);
173
- scratchCartesian = Cartesian3.subtract(scratchCartesian, scratchPullCartesian, scratchCartesian);
174
- }
175
- scratchCartographic = Cartographic.fromCartesian(scratchCartesian, scene.globe.ellipsoid, scratchCartographic);
176
- event.position = Projection.wgs84ToMercator([
177
- CesiumMath.toDegrees(scratchCartographic.longitude),
178
- CesiumMath.toDegrees(scratchCartographic.latitude),
179
- scratchCartographic.height,
180
- ], true);
181
- event.positionOrPixel = event.position;
182
- scene.pickTranslucentDepth = pickTranslucentDepth;
183
- return Promise.resolve(event);
184
- };
185
181
  if (!(event.type & this.pickPosition)) {
186
182
  return Promise.resolve(event);
187
183
  }
@@ -190,21 +186,27 @@ class FeatureAtPixelInteraction extends AbstractInteraction {
190
186
  scene.pickTranslucentDepth = true;
191
187
  event.exactPosition = true;
192
188
  }
189
+ let primitivesToExclude;
193
190
  if (feature &&
194
191
  feature[primitives] &&
195
192
  this._excludeFromPickPosition.has(feature)) {
196
- const primitivesToExclude = [...this._excludeFromPickPosition]
193
+ primitivesToExclude = [...this._excludeFromPickPosition]
197
194
  .flatMap((f) => f[primitives])
198
195
  .filter((f) => !!f);
199
- const intersection = scene.pickFromRay(event.ray, primitivesToExclude);
200
- if (intersection?.position) {
201
- scratchCartesian = intersection.position;
202
- }
203
196
  }
204
- else {
205
- scratchCartesian = scene.pickPosition(event.windowPosition, scratchCartesian);
197
+ const cartesianPosition = getPositionFromScene(scene, event.windowPosition, event.ray, primitivesToExclude);
198
+ if (!cartesianPosition ||
199
+ Cartesian3.equals(cartesianPosition, Cartesian3.ZERO)) {
200
+ return Promise.resolve(event);
201
+ }
202
+ if (this.pullPickedPosition && event.ray) {
203
+ const pulledCartesian = Cartesian3.multiplyByScalar(event.ray.direction, this.pullPickedPosition, new Cartesian3());
204
+ Cartesian3.subtract(cartesianPosition, pulledCartesian, cartesianPosition);
206
205
  }
207
- return handlePick();
206
+ event.position = cartesianToMercator(cartesianPosition);
207
+ event.positionOrPixel = event.position.slice();
208
+ scene.pickTranslucentDepth = pickTranslucentDepth;
209
+ return Promise.resolve(event);
208
210
  }
209
211
  return Promise.resolve(event);
210
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"featureAtPixelInteraction.js","sourceRoot":"","sources":["../../../src/interaction/featureAtPixelInteraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"featureAtPixelInteraction.js","sourceRoot":"","sources":["../../../src/interaction/featureAtPixelInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,wBAAwB,EACxB,MAAM,GAMP,MAAM,sBAAsB,CAAC;AAG9B,OAAO,mBAGN,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAkBtD,SAAS,mBAAmB,CAC1B,GAAU,EACV,KAAuB,EACvB,YAAoB;IAEpB,IAAI,OAA4B,CAAC;IACjC,GAAG,CAAC,qBAAqB,CACvB,KAAK,EACL,CAAC,IAAI,EAAE,EAAE;QACP,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,IACE,gBAAgB;YAChB,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,IAAI;gBAChD,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC,EACrD,CAAC;YACD,IAAK,gBAA4B,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAc,CAAC;gBAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,OAAO;gBACJ,gBAA4B,CAAC,qBAAqB,CAAC;oBACnD,gBAA4B,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,YAAY,EAAE,CACjB,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAwB;IAExB,IAAI,OAAiC,CAAC;IACtC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACnD,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;IACvC,CAAC;SAAM,IACL,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;QAC9B,CAAC,MAAM,YAAY,mBAAmB;YACpC,MAAM,YAAY,wBAAwB,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,KAAK,EACxC,CAAC;QACD,oBAAoB;QACpB,OAAO,GAAG,MAAM,CAAC;QACjB,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,6DAA6D;YAC7D,aAAa;YACb,mEAAmE;YACnE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;QAC5C,qBAAqB;QACrB,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;IAChC,CAAC;SAAM,IACL,MAAM,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,MAAM,EAC3B,CAAC;QACD,SAAS;QACT,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAY,EACZ,cAA0B,EAC1B,YAAoB;IAEpB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,CAE3D,CAAC;IAEd,IAAI,OAAiC,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,kCAAkC,GAAG,IAAI,IAAI,CAAC,CAAC;AACrD,SAAS,oBAAoB,CAC3B,KAAY,EACZ,cAA0B,EAC1B,GAAQ,EACR,mBAAoE;IAEpE,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QACjE,IAAI,YAAY,EAAE,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvD,IACE,iBAAiB;oBACjB,UAAU,CAAC,eAAe,CAAC,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC;wBAClE,kCAAkC,EACpC,CAAC;oBACD,OAAO,iBAAiB,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,OAAO,YAAY,CAAC,QAAQ,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,yBAA0B,SAAQ,mBAAmB;IACzD;;OAEG;IACH,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;IAE/B;;OAEG;IACH,eAAe,GAAG,IAAI,CAAC;IAEvB;;OAEG;IACH,kBAAkB,GAAG,CAAC,CAAC;IAEvB;;OAEG;IACH,YAAY,GAAG,EAAE,CAAC;IAEV,gBAAgB,CAA2B;IAE3C,wBAAwB,GAAiB,IAAI,GAAG,EAAE,CAAC;IAE3D;QACE,KAAK,CACH,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,EAC9B,mBAAmB,CAAC,GAAG,EACvB,cAAc,CAAC,GAAG,CACnB,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAuB;QAChC,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACzE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACxC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACtD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC;QACxC,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACxC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,CAAC,MAAyB;QACjC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;YACpC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,uBAAuB,CAAC,OAAgB;QACtC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,qBAAqB,CAAC,OAAgB;QACpC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAEO,kBAAkB,CACxB,KAAuB;QAEvB,MAAM,OAAO,GAAG,mBAAmB,CAChC,KAAK,CAAC,GAAqB,CAAC,KAAM,EACnC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAChD,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEO,eAAe,CAAC,KAAuB;QAC7C,MAAM,OAAO,GAAG,mBAAmB,CAChC,KAAK,CAAC,GAAkB,CAAC,KAAM,EAChC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAChD,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEO,cAAc,CAAC,KAAuB;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAgB,CAAC;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAEnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,mBAAmB,CACjD,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,CAAC;QAED,MAAM,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,UAAU,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBAClC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC7B,CAAC;YAED,IAAI,mBAAmB,CAAC;YACxB,IACE,OAAO;gBACN,OAAmB,CAAC,UAAU,CAAC;gBAChC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAkB,CAAC,EACrD,CAAC;gBACD,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;qBACrD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;qBAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;YAED,MAAM,iBAAiB,GAAG,oBAAoB,CAC5C,KAAK,EACL,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,GAAI,EACV,mBAAmB,CACpB,CAAC;YAEF,IACE,CAAC,iBAAiB;gBAClB,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,IAAI,CAAC,EACrD,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACzC,MAAM,eAAe,GAAG,UAAU,CAAC,gBAAgB,CACjD,KAAK,CAAC,GAAG,CAAC,SAAS,EACnB,IAAI,CAAC,kBAAkB,EACvB,IAAI,UAAU,EAAE,CACjB,CAAC;gBAEF,UAAU,CAAC,QAAQ,CACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,CAClB,CAAC;YACJ,CAAC;YAED,KAAK,CAAC,QAAQ,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YACxD,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC/C,KAAK,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;YAClD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AAED,eAAe,yBAAyB,CAAC"}
@@ -80,6 +80,9 @@ export default class VectorClusterGroupCesiumImpl extends VectorClusterGroupImpl
80
80
  this._context = new VectorClusterCesiumContext(this._rootCollection);
81
81
  this._rootCollection[vectorClusterGroupName] = this.name;
82
82
  await this.map.addClusterDataSource(this._rootCollection);
83
+ if (this.isDestroyed) {
84
+ return;
85
+ }
83
86
  this._sourceVectorContextSync = createSourceVectorContextSync(this._source, this._context, this.map.getScene(), this.style, (f) => this._getLayerByName(f[vcsLayerName])?.vectorProperties ??
84
87
  this.vectorProperties);
85
88
  this._removeClusterEventListener =
@@ -1 +1 @@
1
- {"version":3,"file":"vectorClusterGroupCesiumImpl.js","sourceRoot":"","sources":["../../../src/vectorCluster/vectorClusterGroupCesiumImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vectorClusterGroupCesiumImpl.js","sourceRoot":"","sources":["../../../src/vectorCluster/vectorClusterGroupCesiumImpl.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/core",
3
- "version": "6.1.1",
3
+ "version": "6.1.3",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -1,12 +1,13 @@
1
1
  import {
2
- Cartographic,
3
2
  Cartesian3,
4
- Math as CesiumMath,
5
3
  Cesium3DTileFeature,
6
4
  Cesium3DTilePointFeature,
7
5
  Entity,
8
6
  Scene,
9
7
  Cartesian2,
8
+ Ray,
9
+ type Label,
10
+ Billboard,
10
11
  } from '@vcmap-cesium/engine';
11
12
  import OLMap from 'ol/Map.js';
12
13
  import type { Feature } from 'ol/index.js';
@@ -14,7 +15,6 @@ import AbstractInteraction, {
14
15
  type EventFeature,
15
16
  type InteractionEvent,
16
17
  } from './abstractInteraction.js';
17
- import Projection from '../util/projection.js';
18
18
  import {
19
19
  EventType,
20
20
  ModificationKeyType,
@@ -26,6 +26,8 @@ import type OpenlayersMap from '../map/openlayersMap.js';
26
26
  import type ObliqueMap from '../map/obliqueMap.js';
27
27
  import type CesiumMap from '../map/cesiumMap.js';
28
28
  import { vectorClusterGroupName } from '../vectorCluster/vectorClusterSymbols.js';
29
+ import { cartesianToMercator } from '../util/math.js';
30
+ import { PrimitiveType } from '../util/featureconverter/convert.js';
29
31
 
30
32
  /**
31
33
  * This is the return from cesium scene.pick and scene.drillPick, which returns "any". We cast to this type.
@@ -130,6 +132,33 @@ function getFeatureFromScene(
130
132
  return { pickObject, feature };
131
133
  }
132
134
 
135
+ const MAX_UNDERGROUND_FEATURE_DEPTH_SQRD = 1000 ** 2;
136
+ function getPositionFromScene(
137
+ scene: Scene,
138
+ windowPosition: Cartesian2,
139
+ ray: Ray,
140
+ primitivesToExclude?: (PrimitiveType | Label | Billboard | Entity)[],
141
+ ): Cartesian3 | undefined {
142
+ if (primitivesToExclude) {
143
+ const intersection = scene.pickFromRay(ray, primitivesToExclude);
144
+ if (intersection?.position) {
145
+ if (scene.globe.translucency.enabled) {
146
+ const globeIntersection = scene.globe.pick(ray, scene);
147
+ if (
148
+ globeIntersection &&
149
+ Cartesian3.distanceSquared(globeIntersection, intersection.position) >
150
+ MAX_UNDERGROUND_FEATURE_DEPTH_SQRD
151
+ ) {
152
+ return globeIntersection;
153
+ }
154
+ }
155
+
156
+ return intersection.position;
157
+ }
158
+ }
159
+ return scene.pickPosition(windowPosition);
160
+ }
161
+
133
162
  /**
134
163
  * @group Interaction
135
164
  */
@@ -260,49 +289,7 @@ class FeatureAtPixelInteraction extends AbstractInteraction {
260
289
  event.feature = feature;
261
290
  }
262
291
 
263
- let scratchCartographic = new Cartographic();
264
- let scratchCartesian = new Cartesian3();
265
- let scratchPullCartesian = new Cartesian3();
266
292
  const { pickTranslucentDepth } = scene;
267
-
268
- const handlePick = (): Promise<InteractionEvent> => {
269
- if (!scratchCartesian) {
270
- scratchCartesian = new Cartesian3();
271
- return Promise.resolve(event);
272
- }
273
-
274
- if (this.pullPickedPosition && event.ray) {
275
- scratchPullCartesian = Cartesian3.multiplyByScalar(
276
- event.ray.direction,
277
- this.pullPickedPosition,
278
- scratchPullCartesian,
279
- );
280
-
281
- scratchCartesian = Cartesian3.subtract(
282
- scratchCartesian,
283
- scratchPullCartesian,
284
- scratchCartesian,
285
- );
286
- }
287
- scratchCartographic = Cartographic.fromCartesian(
288
- scratchCartesian,
289
- scene.globe.ellipsoid,
290
- scratchCartographic,
291
- );
292
-
293
- event.position = Projection.wgs84ToMercator(
294
- [
295
- CesiumMath.toDegrees(scratchCartographic.longitude),
296
- CesiumMath.toDegrees(scratchCartographic.latitude),
297
- scratchCartographic.height,
298
- ],
299
- true,
300
- );
301
- event.positionOrPixel = event.position;
302
- scene.pickTranslucentDepth = pickTranslucentDepth;
303
- return Promise.resolve(event);
304
- };
305
-
306
293
  if (!(event.type & this.pickPosition)) {
307
294
  return Promise.resolve(event);
308
295
  }
@@ -313,25 +300,49 @@ class FeatureAtPixelInteraction extends AbstractInteraction {
313
300
  event.exactPosition = true;
314
301
  }
315
302
 
303
+ let primitivesToExclude;
316
304
  if (
317
305
  feature &&
318
306
  (feature as Feature)[primitives] &&
319
307
  this._excludeFromPickPosition.has(feature as Feature)
320
308
  ) {
321
- const primitivesToExclude = [...this._excludeFromPickPosition]
309
+ primitivesToExclude = [...this._excludeFromPickPosition]
322
310
  .flatMap((f) => f[primitives])
323
311
  .filter((f) => !!f);
324
- const intersection = scene.pickFromRay(event.ray!, primitivesToExclude);
325
- if (intersection?.position) {
326
- scratchCartesian = intersection.position;
327
- }
328
- } else {
329
- scratchCartesian = scene.pickPosition(
330
- event.windowPosition,
331
- scratchCartesian,
312
+ }
313
+
314
+ const cartesianPosition = getPositionFromScene(
315
+ scene,
316
+ event.windowPosition,
317
+ event.ray!,
318
+ primitivesToExclude,
319
+ );
320
+
321
+ if (
322
+ !cartesianPosition ||
323
+ Cartesian3.equals(cartesianPosition, Cartesian3.ZERO)
324
+ ) {
325
+ return Promise.resolve(event);
326
+ }
327
+
328
+ if (this.pullPickedPosition && event.ray) {
329
+ const pulledCartesian = Cartesian3.multiplyByScalar(
330
+ event.ray.direction,
331
+ this.pullPickedPosition,
332
+ new Cartesian3(),
333
+ );
334
+
335
+ Cartesian3.subtract(
336
+ cartesianPosition,
337
+ pulledCartesian,
338
+ cartesianPosition,
332
339
  );
333
340
  }
334
- return handlePick();
341
+
342
+ event.position = cartesianToMercator(cartesianPosition);
343
+ event.positionOrPixel = event.position.slice();
344
+ scene.pickTranslucentDepth = pickTranslucentDepth;
345
+ return Promise.resolve(event);
335
346
  }
336
347
 
337
348
  return Promise.resolve(event);
@@ -130,6 +130,9 @@ export default class VectorClusterGroupCesiumImpl extends VectorClusterGroupImpl
130
130
  this._context = new VectorClusterCesiumContext(this._rootCollection);
131
131
  this._rootCollection[vectorClusterGroupName] = this.name;
132
132
  await this.map.addClusterDataSource(this._rootCollection);
133
+ if (this.isDestroyed) {
134
+ return;
135
+ }
133
136
  this._sourceVectorContextSync = createSourceVectorContextSync(
134
137
  this._source,
135
138
  this._context,