@vcmap/core 6.3.0-rc.1 → 6.3.0-rc.2

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.
Files changed (159) hide show
  1. package/dist/cesium.d.ts +12 -0
  2. package/dist/index.d.ts +10 -2
  3. package/dist/index.js +9 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/ol.d.ts +13 -2
  6. package/dist/src/cesium/cesium3DTileFeature.d.ts +1 -0
  7. package/dist/src/cesium/cesium3DTileFeature.js +16 -3
  8. package/dist/src/cesium/cesium3DTileFeature.js.map +1 -1
  9. package/dist/src/cesium/cesium3DTilePointFeature.js +2 -1
  10. package/dist/src/cesium/cesium3DTilePointFeature.js.map +1 -1
  11. package/dist/src/classRegistry.d.ts +7 -1
  12. package/dist/src/classRegistry.js.map +1 -1
  13. package/dist/src/featureProvider/abstractAttributeProvider.d.ts +62 -0
  14. package/dist/src/featureProvider/abstractAttributeProvider.js +129 -0
  15. package/dist/src/featureProvider/abstractAttributeProvider.js.map +1 -0
  16. package/dist/src/featureProvider/abstractFeatureProvider.d.ts +9 -18
  17. package/dist/src/featureProvider/abstractFeatureProvider.js +7 -38
  18. package/dist/src/featureProvider/abstractFeatureProvider.js.map +1 -1
  19. package/dist/src/featureProvider/compositeFeatureProvider.d.ts +27 -0
  20. package/dist/src/featureProvider/compositeFeatureProvider.js +53 -0
  21. package/dist/src/featureProvider/compositeFeatureProvider.js.map +1 -0
  22. package/dist/src/featureProvider/csvAttributeProvider.d.ts +41 -0
  23. package/dist/src/featureProvider/csvAttributeProvider.js +126 -0
  24. package/dist/src/featureProvider/csvAttributeProvider.js.map +1 -0
  25. package/dist/src/featureProvider/featureProviderFactory.d.ts +3 -0
  26. package/dist/src/featureProvider/featureProviderFactory.js +17 -0
  27. package/dist/src/featureProvider/featureProviderFactory.js.map +1 -0
  28. package/dist/src/featureProvider/i3sAttributeProvider.d.ts +7 -0
  29. package/dist/src/featureProvider/i3sAttributeProvider.js +43 -0
  30. package/dist/src/featureProvider/i3sAttributeProvider.js.map +1 -0
  31. package/dist/src/featureProvider/jsonAttributeProvider.d.ts +26 -0
  32. package/dist/src/featureProvider/jsonAttributeProvider.js +73 -0
  33. package/dist/src/featureProvider/jsonAttributeProvider.js.map +1 -0
  34. package/dist/src/featureProvider/tileProviderFeatureProvider.d.ts +4 -6
  35. package/dist/src/featureProvider/tileProviderFeatureProvider.js +9 -11
  36. package/dist/src/featureProvider/tileProviderFeatureProvider.js.map +1 -1
  37. package/dist/src/featureProvider/urlIdAttributeProvider.d.ts +28 -0
  38. package/dist/src/featureProvider/urlIdAttributeProvider.js +50 -0
  39. package/dist/src/featureProvider/urlIdAttributeProvider.js.map +1 -0
  40. package/dist/src/featureProvider/wmsFeatureProvider.d.ts +12 -3
  41. package/dist/src/featureProvider/wmsFeatureProvider.js +17 -6
  42. package/dist/src/featureProvider/wmsFeatureProvider.js.map +1 -1
  43. package/dist/src/interaction/featureAtPixelInteraction.d.ts +15 -3
  44. package/dist/src/interaction/featureAtPixelInteraction.js +41 -1
  45. package/dist/src/interaction/featureAtPixelInteraction.js.map +1 -1
  46. package/dist/src/interaction/featureProviderInteraction.js +42 -26
  47. package/dist/src/interaction/featureProviderInteraction.js.map +1 -1
  48. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.d.ts +14 -5
  49. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js +243 -128
  50. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js.map +1 -1
  51. package/dist/src/layer/cesium/i3sCesiumImpl.d.ts +33 -0
  52. package/dist/src/layer/cesium/i3sCesiumImpl.js +107 -0
  53. package/dist/src/layer/cesium/i3sCesiumImpl.js.map +1 -0
  54. package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js +2 -1
  55. package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js.map +1 -1
  56. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js +7 -6
  57. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js.map +1 -1
  58. package/dist/src/layer/cesium/vectorTileImageryProvider.js +2 -2
  59. package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +1 -1
  60. package/dist/src/layer/cesiumTilesetLayer.d.ts +9 -0
  61. package/dist/src/layer/cesiumTilesetLayer.js +26 -1
  62. package/dist/src/layer/cesiumTilesetLayer.js.map +1 -1
  63. package/dist/src/layer/i3sLayer.d.ts +80 -0
  64. package/dist/src/layer/i3sLayer.js +242 -0
  65. package/dist/src/layer/i3sLayer.js.map +1 -0
  66. package/dist/src/layer/layer.d.ts +8 -3
  67. package/dist/src/layer/layer.js +7 -1
  68. package/dist/src/layer/layer.js.map +1 -1
  69. package/dist/src/layer/layerSymbols.d.ts +4 -0
  70. package/dist/src/layer/layerSymbols.js +4 -0
  71. package/dist/src/layer/layerSymbols.js.map +1 -1
  72. package/dist/src/layer/panoramaDatasetLayer.d.ts +2 -0
  73. package/dist/src/layer/panoramaDatasetLayer.js +33 -13
  74. package/dist/src/layer/panoramaDatasetLayer.js.map +1 -1
  75. package/dist/src/layer/tileProvider/flatGeobufTileProvider.js +3 -2
  76. package/dist/src/layer/tileProvider/flatGeobufTileProvider.js.map +1 -1
  77. package/dist/src/layer/tileProvider/mvtTileProvider.js +3 -2
  78. package/dist/src/layer/tileProvider/mvtTileProvider.js.map +1 -1
  79. package/dist/src/layer/tileProvider/tileProvider.d.ts +6 -0
  80. package/dist/src/layer/tileProvider/tileProvider.js +12 -1
  81. package/dist/src/layer/tileProvider/tileProvider.js.map +1 -1
  82. package/dist/src/layer/vectorLayer.js +2 -2
  83. package/dist/src/layer/vectorLayer.js.map +1 -1
  84. package/dist/src/layer/vectorProperties.js +10 -1
  85. package/dist/src/layer/vectorProperties.js.map +1 -1
  86. package/dist/src/layer/vectorTileLayer.d.ts +14 -5
  87. package/dist/src/layer/vectorTileLayer.js +78 -26
  88. package/dist/src/layer/vectorTileLayer.js.map +1 -1
  89. package/dist/src/layer/wmsLayer.d.ts +3 -0
  90. package/dist/src/layer/wmsLayer.js +62 -32
  91. package/dist/src/layer/wmsLayer.js.map +1 -1
  92. package/dist/src/map/baseCesiumMap.d.ts +4 -4
  93. package/dist/src/map/baseCesiumMap.js +12 -0
  94. package/dist/src/map/baseCesiumMap.js.map +1 -1
  95. package/dist/src/map/cesiumMap.js +0 -11
  96. package/dist/src/map/cesiumMap.js.map +1 -1
  97. package/dist/src/map/obliqueMap.js +11 -4
  98. package/dist/src/map/obliqueMap.js.map +1 -1
  99. package/dist/src/map/panoramaMap.js +1 -1
  100. package/dist/src/panorama/panoramaImage.js +6 -5
  101. package/dist/src/panorama/panoramaImage.js.map +1 -1
  102. package/dist/src/style/declarativeStyleItem.js +7 -8
  103. package/dist/src/style/declarativeStyleItem.js.map +1 -1
  104. package/dist/src/util/fetch.d.ts +7 -0
  105. package/dist/src/util/fetch.js +7 -0
  106. package/dist/src/util/fetch.js.map +1 -1
  107. package/dist/src/vcsApp.d.ts +2 -3
  108. package/dist/src/vcsApp.js.map +1 -1
  109. package/dist/src/vcsModuleHelpers.d.ts +5 -2
  110. package/dist/src/vcsModuleHelpers.js +27 -1
  111. package/dist/src/vcsModuleHelpers.js.map +1 -1
  112. package/dist/tests/unit/helpers/cesiumHelpers.js +7 -1
  113. package/dist/tests/unit/helpers/cesiumHelpers.js.map +1 -1
  114. package/index.ts +27 -0
  115. package/package.json +2 -2
  116. package/src/cesium/cesium.d.ts +12 -0
  117. package/src/cesium/cesium3DTileFeature.ts +25 -3
  118. package/src/cesium/cesium3DTilePointFeature.ts +3 -1
  119. package/src/classRegistry.ts +8 -3
  120. package/src/featureProvider/abstractAttributeProvider.ts +201 -0
  121. package/src/featureProvider/abstractFeatureProvider.ts +27 -47
  122. package/src/featureProvider/compositeFeatureProvider.ts +103 -0
  123. package/src/featureProvider/csvAttributeProvider.ts +186 -0
  124. package/src/featureProvider/featureProviderFactory.ts +31 -0
  125. package/src/featureProvider/i3sAttributeProvider.ts +60 -0
  126. package/src/featureProvider/jsonAttributeProvider.ts +109 -0
  127. package/src/featureProvider/tileProviderFeatureProvider.ts +13 -14
  128. package/src/featureProvider/urlIdAttributeProvider.ts +82 -0
  129. package/src/featureProvider/wmsFeatureProvider.ts +24 -7
  130. package/src/global.d.ts +2 -0
  131. package/src/interaction/featureAtPixelInteraction.ts +53 -3
  132. package/src/interaction/featureProviderInteraction.ts +59 -38
  133. package/src/layer/cesium/cesiumTilesetCesiumImpl.ts +296 -157
  134. package/src/layer/cesium/i3sCesiumImpl.ts +141 -0
  135. package/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.ts +4 -3
  136. package/src/layer/cesium/vectorRasterTileCesiumImpl.ts +7 -6
  137. package/src/layer/cesium/vectorTileImageryProvider.ts +2 -2
  138. package/src/layer/cesiumTilesetLayer.ts +51 -1
  139. package/src/layer/i3sLayer.ts +343 -0
  140. package/src/layer/layer.ts +30 -3
  141. package/src/layer/layerSymbols.ts +5 -0
  142. package/src/layer/panoramaDatasetLayer.ts +44 -13
  143. package/src/layer/tileProvider/flatGeobufTileProvider.ts +3 -2
  144. package/src/layer/tileProvider/mvtTileProvider.ts +3 -2
  145. package/src/layer/tileProvider/tileProvider.ts +13 -1
  146. package/src/layer/vectorLayer.ts +4 -2
  147. package/src/layer/vectorProperties.ts +10 -1
  148. package/src/layer/vectorTileLayer.ts +135 -47
  149. package/src/layer/wmsLayer.ts +77 -44
  150. package/src/map/baseCesiumMap.ts +29 -5
  151. package/src/map/cesiumMap.ts +0 -15
  152. package/src/map/obliqueMap.ts +13 -6
  153. package/src/map/panoramaMap.ts +1 -1
  154. package/src/ol/ol.d.ts +13 -2
  155. package/src/panorama/panoramaImage.ts +8 -5
  156. package/src/style/declarativeStyleItem.ts +7 -9
  157. package/src/util/fetch.ts +7 -0
  158. package/src/vcsApp.ts +7 -8
  159. package/src/vcsModuleHelpers.ts +62 -4
@@ -3,6 +3,10 @@ import Feature from 'ol/Feature.js';
3
3
  import AbstractInteraction from './abstractInteraction.js';
4
4
  import { EventType, ModificationKeyType, PointerKeyType, } from './interactionType.js';
5
5
  import { isProvidedClusterFeature, isProvidedFeature, } from '../featureProvider/featureProviderSymbols.js';
6
+ import AbstractFeatureProvider from '../featureProvider/abstractFeatureProvider.js';
7
+ import { vcsLayerName } from '../layer/layerSymbols.js';
8
+ import CompositeFeatureProvider from '../featureProvider/compositeFeatureProvider.js';
9
+ import AbstractAttributeProvider from '../featureProvider/abstractAttributeProvider.js';
6
10
  /**
7
11
  * @group Interaction
8
12
  */
@@ -13,34 +17,46 @@ class FeatureProviderInteraction extends AbstractInteraction {
13
17
  }
14
18
  // eslint-disable-next-line class-methods-use-this
15
19
  async pipe(event) {
16
- if (event.feature) {
17
- return event;
18
- }
19
- const layersWithProvider = [...event.map.layerCollection]
20
- .filter((l) => {
21
- return (l.featureProvider &&
22
- l.active &&
23
- l.isSupported(event.map) &&
24
- l.featureProvider.isSupported(event.map));
25
- })
26
- .reverse();
27
- if (layersWithProvider.length > 0) {
28
- const resolution = event.map.getCurrentResolution(event.position);
29
- // TODO make sure the layers are rendered, check min/max RenderingResolution
30
- const features = (await Promise.all(layersWithProvider.map((l) => l.featureProvider?.getFeaturesByCoordinate?.(event.position, resolution, l.headers))))
31
- .filter((f) => !!f)
32
- .flat();
33
- if (features.length === 1) {
34
- event.feature = features[0];
35
- }
36
- else if (features.length > 1) {
37
- const feature = new Feature({ features });
38
- feature[isProvidedFeature] = true; // backward compatibility, may remove in future
39
- feature[isProvidedClusterFeature] = true;
40
- feature.setGeometry(new Point(event.position));
41
- event.feature = feature;
20
+ if (!event.feature) {
21
+ const layersWithProvider = [...event.map.layerCollection]
22
+ .filter((l) => {
23
+ return (l.featureProvider instanceof AbstractFeatureProvider &&
24
+ l.active &&
25
+ l.isSupported(event.map) &&
26
+ l.featureProvider.isSupported(event.map));
27
+ })
28
+ .reverse();
29
+ if (layersWithProvider.length > 0) {
30
+ const resolution = event.map.getCurrentResolution(event.position);
31
+ // TODO make sure the layers are rendered, check min/max RenderingResolution
32
+ const features = (await Promise.all(layersWithProvider.map((l) => l.featureProvider.getFeaturesByCoordinate?.(event.position, resolution, l))))
33
+ .filter((f) => !!f)
34
+ .flat();
35
+ if (features.length === 1) {
36
+ event.feature = features[0];
37
+ }
38
+ else if (features.length > 1) {
39
+ const feature = new Feature({ features });
40
+ feature[isProvidedFeature] = true; // backward compatibility, may remove in future
41
+ feature[isProvidedClusterFeature] = true;
42
+ feature.setGeometry(new Point(event.position));
43
+ event.feature = feature;
44
+ }
42
45
  }
43
46
  }
47
+ if (event.feature) {
48
+ const features = event.feature[isProvidedClusterFeature]
49
+ ? event.feature.get('features')
50
+ : [event.feature];
51
+ const promises = features.map(async (feature) => {
52
+ const layer = event.map.layerCollection.getByKey(feature[vcsLayerName]);
53
+ if (layer?.featureProvider instanceof AbstractAttributeProvider ||
54
+ layer?.featureProvider instanceof CompositeFeatureProvider) {
55
+ await layer.featureProvider.augmentFeature(feature);
56
+ }
57
+ });
58
+ await Promise.all(promises);
59
+ }
44
60
  return event;
45
61
  }
46
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"featureProviderInteraction.js","sourceRoot":"","sources":["../../../src/interaction/featureProviderInteraction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,kBAAkB,CAAC;AACrC,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,mBAEN,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,8CAA8C,CAAC;AAEtD;;GAEG;AACH,MAAM,0BAA2B,SAAQ,mBAAmB;IAC1D;QACE,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAEpE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,IAAI,CAAC,KAAuB;QAChC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;aACtD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,OAAO,CACL,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;gBACxB,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CACzC,CAAC;QACJ,CAAC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAC/C,KAAK,CAAC,QAAsB,CAC7B,CAAC;YACF,4EAA4E;YAC5E,MAAM,QAAQ,GAAG,CACf,MAAM,OAAO,CAAC,GAAG,CACf,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3B,CAAC,CAAC,eAAe,EAAE,uBAAuB,EAAE,CAC1C,KAAK,CAAC,QAAsB,EAC5B,UAAU,EACV,CAAC,CAAC,OAAO,CACV,CACF,CACF,CACF;iBACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAClB,IAAI,EAAE,CAAC;YACV,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,+CAA+C;gBAClF,OAAO,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC;gBACzC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAsB,CAAC,CAAC,CAAC;gBAC7D,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"featureProviderInteraction.js","sourceRoot":"","sources":["../../../src/interaction/featureProviderInteraction.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,18 @@ import type { FeatureLayerImplementation } from '../featureLayer.js';
9
9
  import type StyleItem from '../../style/styleItem.js';
10
10
  import type GlobalHider from '../globalHider.js';
11
11
  import type BaseCesiumMap from '../../map/baseCesiumMap.js';
12
+ import type { AttributeProvider } from '../../featureProvider/abstractAttributeProvider.js';
13
+ import type I3SCesiumImpl from './i3sCesiumImpl.js';
12
14
  export declare const cesiumTilesetLastUpdated: unique symbol;
13
15
  export declare const updateFeatureOverride: unique symbol;
14
16
  export declare function getExtentFromTileset(cesium3DTileset?: Cesium3DTileset): OLExtent;
17
+ export declare function createCesiumStylingContext(impl: CesiumTilesetCesiumImpl | I3SCesiumImpl): {
18
+ styleContent: (content: Cesium3DTileContent) => void;
19
+ updateStyle: (style: StyleItem) => void;
20
+ applyStyle: (tile: Cesium3DTile) => void;
21
+ destroy: () => void;
22
+ };
23
+ export declare function createTilesetEventListeners(impl: CesiumTilesetCesiumImpl | I3SCesiumImpl, tileset: Cesium3DTileset): void;
15
24
  /**
16
25
  * represents the cesium implementation for a {@link CesiumTilesetLayer} layer.
17
26
  */
@@ -27,11 +36,14 @@ declare class CesiumTilesetCesiumImpl extends LayerImplementation<BaseCesiumMap>
27
36
  modelMatrix: Matrix4 | undefined;
28
37
  offset: Coordinate | undefined;
29
38
  allowPicking: boolean;
39
+ attributeProvider?: AttributeProvider;
30
40
  private _initializedPromise;
31
41
  private _originalOrigin;
32
- private _styleLastUpdated;
33
- private _onStyleChangeRemover;
42
+ private _destroyStyle;
34
43
  private _customShader;
44
+ styleContent: (content: Cesium3DTileContent) => void;
45
+ updateStyle: (style: StyleItem) => void;
46
+ applyStyle: (tile: Cesium3DTile) => void;
35
47
  constructor(map: BaseCesiumMap, options: CesiumTilesetImplementationOptions);
36
48
  get customShader(): CustomShader | undefined;
37
49
  initialize(): Promise<void>;
@@ -41,10 +53,7 @@ declare class CesiumTilesetCesiumImpl extends LayerImplementation<BaseCesiumMap>
41
53
  updateCustomShader(shader?: CustomShader): void;
42
54
  activate(): Promise<void>;
43
55
  deactivate(): void;
44
- updateStyle(style: StyleItem): void;
45
56
  updateSplitDirection(splitDirection: SplitDirection): void;
46
- applyStyle(tile: Cesium3DTile): void;
47
- styleContent(content: Cesium3DTileContent): void;
48
57
  destroy(): void;
49
58
  }
50
59
  export default CesiumTilesetCesiumImpl;
@@ -8,11 +8,8 @@ import { circleFromCenterRadius } from '../../util/geometryHelpers.js';
8
8
  import { getResourceOrUrl } from './resourceHelper.js';
9
9
  export const cesiumTilesetLastUpdated = Symbol('cesiumTilesetLastUpdated');
10
10
  export const updateFeatureOverride = Symbol('updateFeatureOverride');
11
- export function getExtentFromTileset(cesium3DTileset) {
12
- if (!cesium3DTileset) {
13
- return createEmpty();
14
- }
15
- const { rectangle } = cesium3DTileset.root.boundingVolume;
11
+ function getExtentFromBoundingVolume(boundingVolume, boundingSphere) {
12
+ const { rectangle } = boundingVolume;
16
13
  if (rectangle) {
17
14
  const scratchSW = Rectangle.southwest(rectangle);
18
15
  const scratchNE = Rectangle.northeast(rectangle);
@@ -26,7 +23,7 @@ export function getExtentFromTileset(cesium3DTileset) {
26
23
  ]);
27
24
  return [mercatorSW[0], mercatorSW[1], mercatorNE[0], mercatorNE[1]];
28
25
  }
29
- const { center, radius } = cesium3DTileset.boundingSphere;
26
+ const { center, radius } = boundingSphere;
30
27
  const cart = Cartographic.fromCartesian(center);
31
28
  const mercatorCenter = Projection.wgs84ToMercator([
32
29
  CesiumMath.toDegrees(cart.longitude),
@@ -36,6 +33,232 @@ export function getExtentFromTileset(cesium3DTileset) {
36
33
  const circle = circleFromCenterRadius(mercatorCenter, radius);
37
34
  return circle.getExtent();
38
35
  }
36
+ export function getExtentFromTileset(cesium3DTileset) {
37
+ if (!cesium3DTileset) {
38
+ return createEmpty();
39
+ }
40
+ return getExtentFromBoundingVolume(cesium3DTileset.root.boundingVolume, cesium3DTileset.boundingSphere);
41
+ }
42
+ export function createCesiumStylingContext(impl) {
43
+ let styleLastUpdated = 0;
44
+ let onStyleChangeRemover = null;
45
+ let onFeatureVisibilityChangeRemover = null;
46
+ function styleContent(content) {
47
+ const styleHasChanged = styleLastUpdated > (content[cesiumTilesetLastUpdated] ?? 0);
48
+ if (!content[cesiumTilesetLastUpdated] ||
49
+ content[cesiumTilesetLastUpdated] < impl.featureVisibility.lastUpdated ||
50
+ content[cesiumTilesetLastUpdated] <
51
+ (impl.globalHider?.lastUpdated ?? 0) ||
52
+ styleHasChanged) {
53
+ delete content[updateFeatureOverride];
54
+ const batchSize = content.featuresLength;
55
+ const featureOverride = {
56
+ hideLocal: [],
57
+ hideGlobal: [],
58
+ highlight: [],
59
+ };
60
+ for (let batchId = 0; batchId < batchSize; batchId++) {
61
+ const feature = content.getFeature(batchId);
62
+ if (feature) {
63
+ const id = String(feature.getId());
64
+ let shouldUpdateOriginalStyle = true;
65
+ if (impl.featureVisibility.highlightedObjects[id] &&
66
+ !impl.featureVisibility.hasHighlightFeature(id, feature)) {
67
+ impl.featureVisibility.addHighlightFeature(id, feature);
68
+ featureOverride.highlight.push([id, feature]);
69
+ shouldUpdateOriginalStyle = false;
70
+ }
71
+ else if (impl.featureVisibility.hasHighlightFeature(id, feature) &&
72
+ styleHasChanged &&
73
+ feature[originalStyle]) {
74
+ // Feature is already highlighted and style has changed
75
+ // Clear the old cached style - when unhighlighted, we'll force a tileset style update
76
+ delete feature[originalStyle];
77
+ featureOverride.highlight.push([id, feature]);
78
+ shouldUpdateOriginalStyle = false;
79
+ }
80
+ if (impl.featureVisibility.hiddenObjects[id]) {
81
+ if (!impl.featureVisibility.hasHiddenFeature(id, feature)) {
82
+ impl.featureVisibility.addHiddenFeature(id, feature);
83
+ featureOverride.hideLocal.push([id, feature]);
84
+ }
85
+ else if (styleHasChanged && feature[originalStyle]) {
86
+ // Feature is already hidden and style has changed, clear original style
87
+ // so it will be re-cached with the new style when shown
88
+ delete feature[originalStyle];
89
+ }
90
+ shouldUpdateOriginalStyle = false;
91
+ }
92
+ if (impl.globalHider?.hiddenObjects[id]) {
93
+ if (!impl.globalHider?.hasFeature(id, feature)) {
94
+ impl.globalHider?.addFeature(id, feature);
95
+ }
96
+ featureOverride.hideGlobal.push([id, feature]);
97
+ if (styleHasChanged && feature[originalStyle]) {
98
+ // Feature is globally hidden and style has changed, clear original style
99
+ delete feature[originalStyle];
100
+ }
101
+ shouldUpdateOriginalStyle = false;
102
+ }
103
+ if (shouldUpdateOriginalStyle &&
104
+ styleHasChanged &&
105
+ feature[originalStyle] // can only be a color for cesium, so no check for undefined required
106
+ ) {
107
+ updateOriginalStyle(feature);
108
+ }
109
+ }
110
+ }
111
+ if (featureOverride.hideLocal.length > 0 ||
112
+ featureOverride.hideGlobal.length > 0 ||
113
+ featureOverride.highlight.length > 0) {
114
+ content[updateFeatureOverride] = () => {
115
+ featureOverride.hideGlobal.forEach(([id, feature]) => {
116
+ if (impl.globalHider?.hasFeature(id, feature)) {
117
+ hideFeature(feature);
118
+ }
119
+ });
120
+ featureOverride.hideLocal.forEach(([id, feature]) => {
121
+ if (impl.featureVisibility.hasHiddenFeature(id, feature)) {
122
+ hideFeature(feature);
123
+ }
124
+ });
125
+ featureOverride.highlight.forEach(([id, feature]) => {
126
+ if (impl.featureVisibility.hasHighlightFeature(id, feature)) {
127
+ highlightFeature(feature);
128
+ }
129
+ });
130
+ };
131
+ }
132
+ content[cesiumTilesetLastUpdated] = Date.now();
133
+ }
134
+ else {
135
+ content[updateFeatureOverride]?.();
136
+ }
137
+ }
138
+ function updateStyle(style) {
139
+ impl.style = style;
140
+ function updateTilesetStyle(tileset) {
141
+ tileset.style = impl.style.cesiumStyle;
142
+ if (onStyleChangeRemover) {
143
+ onStyleChangeRemover();
144
+ }
145
+ styleLastUpdated = Date.now();
146
+ if (tileset.colorBlendMode !== impl.style.colorBlendMode) {
147
+ // we only support replace and mix mode if the _3DTILESDIFFUSE Flag is set in the tileset
148
+ if (impl.style.colorBlendMode !== Cesium3DTileColorBlendMode.HIGHLIGHT) {
149
+ if (tileset.extras &&
150
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,no-underscore-dangle
151
+ tileset.extras._3DTILESDIFFUSE) {
152
+ tileset.colorBlendMode = impl.style.colorBlendMode;
153
+ }
154
+ }
155
+ else {
156
+ tileset.colorBlendMode = impl.style.colorBlendMode;
157
+ }
158
+ }
159
+ }
160
+ if (impl.initialized) {
161
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
162
+ if (impl instanceof CesiumTilesetCesiumImpl) {
163
+ if (impl.cesium3DTileset) {
164
+ updateTilesetStyle(impl.cesium3DTileset);
165
+ onStyleChangeRemover = impl.style.styleChanged.addEventListener(() => {
166
+ impl.cesium3DTileset?.makeStyleDirty();
167
+ styleLastUpdated = Date.now();
168
+ });
169
+ }
170
+ }
171
+ else if (impl.data) {
172
+ impl.data.layers.forEach(({ tileset }) => {
173
+ if (tileset) {
174
+ updateTilesetStyle(tileset);
175
+ }
176
+ });
177
+ onStyleChangeRemover = impl.style.styleChanged.addEventListener(() => {
178
+ impl.data?.layers.forEach(({ tileset }) => {
179
+ tileset?.makeStyleDirty();
180
+ });
181
+ styleLastUpdated = Date.now();
182
+ });
183
+ }
184
+ }
185
+ }
186
+ function applyStyle(tile) {
187
+ if (tile.contentReady) {
188
+ if (tile.content instanceof Composite3DTileContent) {
189
+ for (let i = 0; i < tile.content.innerContents.length; i++) {
190
+ styleContent(tile.content.innerContents[i]);
191
+ }
192
+ }
193
+ else {
194
+ styleContent(tile.content);
195
+ }
196
+ }
197
+ }
198
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
199
+ if (impl instanceof CesiumTilesetCesiumImpl) {
200
+ onFeatureVisibilityChangeRemover =
201
+ impl.featureVisibility.changed.addEventListener(() => {
202
+ impl.cesium3DTileset?.makeStyleDirty();
203
+ });
204
+ }
205
+ else {
206
+ onFeatureVisibilityChangeRemover =
207
+ impl.featureVisibility.changed.addEventListener(() => {
208
+ impl.data?.layers.forEach(({ tileset }) => {
209
+ tileset?.makeStyleDirty();
210
+ });
211
+ styleLastUpdated = Date.now();
212
+ });
213
+ }
214
+ return {
215
+ styleContent,
216
+ updateStyle,
217
+ applyStyle,
218
+ destroy: () => {
219
+ if (onStyleChangeRemover) {
220
+ onStyleChangeRemover();
221
+ onStyleChangeRemover = null;
222
+ }
223
+ if (onFeatureVisibilityChangeRemover) {
224
+ onFeatureVisibilityChangeRemover();
225
+ onFeatureVisibilityChangeRemover = null;
226
+ }
227
+ },
228
+ };
229
+ }
230
+ export function createTilesetEventListeners(impl, tileset) {
231
+ function tileLoadedHandler(tile) {
232
+ if (impl.attributeProvider) {
233
+ const extent = getExtentFromBoundingVolume(tile.contentBoundingVolume, tile.boundingSphere);
234
+ const features = [];
235
+ const batchSize = tile.content.featuresLength;
236
+ for (let batchId = 0; batchId < batchSize; batchId++) {
237
+ const feature = tile.content.getFeature(batchId);
238
+ if (feature) {
239
+ features.push(feature);
240
+ }
241
+ }
242
+ impl.attributeProvider
243
+ .augmentFeatures(features, extent)
244
+ .then(() => {
245
+ impl.applyStyle(tile);
246
+ })
247
+ .catch((err) => {
248
+ impl
249
+ .getLogger()
250
+ .error(`Error augmenting features in ${impl.className}:`, err);
251
+ });
252
+ }
253
+ }
254
+ tileset.tileLoad.addEventListener(tileLoadedHandler);
255
+ tileset.tileVisible.addEventListener(impl.applyStyle);
256
+ tileset.tileUnload.addEventListener((tile) => {
257
+ delete tile[cesiumTilesetLastUpdated];
258
+ delete tile.content[cesiumTilesetLastUpdated];
259
+ delete tile.content[updateFeatureOverride];
260
+ });
261
+ }
39
262
  /**
40
263
  * represents the cesium implementation for a {@link CesiumTilesetLayer} layer.
41
264
  */
@@ -53,11 +276,14 @@ class CesiumTilesetCesiumImpl extends LayerImplementation {
53
276
  modelMatrix;
54
277
  offset;
55
278
  allowPicking;
279
+ attributeProvider;
56
280
  _initializedPromise = null;
57
281
  _originalOrigin = null;
58
- _styleLastUpdated = Date.now();
59
- _onStyleChangeRemover = null;
282
+ _destroyStyle = null;
60
283
  _customShader;
284
+ styleContent;
285
+ updateStyle;
286
+ applyStyle;
61
287
  constructor(map, options) {
62
288
  super(map, options);
63
289
  this.cesium3DTileset = null;
@@ -71,6 +297,12 @@ class CesiumTilesetCesiumImpl extends LayerImplementation {
71
297
  this.offset = options.offset;
72
298
  this._customShader = options.customShader;
73
299
  this.allowPicking = options.allowPicking;
300
+ this.attributeProvider = options.attributeProvider;
301
+ const stylingContext = createCesiumStylingContext(this);
302
+ this.styleContent = stylingContext.styleContent;
303
+ this.updateStyle = stylingContext.updateStyle;
304
+ this.applyStyle = stylingContext.applyStyle;
305
+ this._destroyStyle = stylingContext.destroy;
74
306
  }
75
307
  get customShader() {
76
308
  return this._customShader;
@@ -112,12 +344,7 @@ class CesiumTilesetCesiumImpl extends LayerImplementation {
112
344
  }
113
345
  this.cesium3DTileset[vcsLayerName] = this.name;
114
346
  this.cesium3DTileset[allowPicking] = this.allowPicking;
115
- this.cesium3DTileset.tileVisible.addEventListener(this.applyStyle.bind(this));
116
- this.cesium3DTileset.tileUnload.addEventListener((tile) => {
117
- delete tile[cesiumTilesetLastUpdated];
118
- delete tile.content[cesiumTilesetLastUpdated];
119
- delete tile.content[updateFeatureOverride];
120
- });
347
+ createTilesetEventListeners(this, this.cesium3DTileset);
121
348
  this._originalOrigin = Cartesian3.clone(this.cesium3DTileset.boundingSphere.center);
122
349
  if (this.modelMatrix) {
123
350
  this.cesium3DTileset.modelMatrix = this.modelMatrix;
@@ -188,124 +415,12 @@ class CesiumTilesetCesiumImpl extends LayerImplementation {
188
415
  this.cesium3DTileset.show = false;
189
416
  }
190
417
  }
191
- updateStyle(style) {
192
- this.style = style;
193
- if (this.initialized && this.cesium3DTileset) {
194
- this.cesium3DTileset.style = this.style.cesiumStyle;
195
- if (this._onStyleChangeRemover) {
196
- this._onStyleChangeRemover();
197
- }
198
- this._onStyleChangeRemover = this.style.styleChanged.addEventListener(() => {
199
- this.cesium3DTileset?.makeStyleDirty();
200
- this._styleLastUpdated = Date.now();
201
- });
202
- this._styleLastUpdated = Date.now();
203
- if (this.cesium3DTileset.colorBlendMode !== this.style.colorBlendMode) {
204
- // we only support replace and mix mode if the _3DTILESDIFFUSE Flag is set in the tileset
205
- if (this.style.colorBlendMode !== Cesium3DTileColorBlendMode.HIGHLIGHT) {
206
- if (this.cesium3DTileset.extras &&
207
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,no-underscore-dangle
208
- this.cesium3DTileset.extras._3DTILESDIFFUSE) {
209
- this.cesium3DTileset.colorBlendMode = this.style.colorBlendMode;
210
- }
211
- }
212
- else {
213
- this.cesium3DTileset.colorBlendMode = this.style.colorBlendMode;
214
- }
215
- }
216
- }
217
- }
218
418
  updateSplitDirection(splitDirection) {
219
419
  this.splitDirection = splitDirection;
220
420
  if (this.cesium3DTileset) {
221
421
  this.cesium3DTileset.splitDirection = splitDirection;
222
422
  }
223
423
  }
224
- applyStyle(tile) {
225
- if (tile.contentReady) {
226
- if (tile.content instanceof Composite3DTileContent) {
227
- for (let i = 0; i < tile.content.innerContents.length; i++) {
228
- this.styleContent(tile.content.innerContents[i]);
229
- }
230
- }
231
- else {
232
- this.styleContent(tile.content);
233
- }
234
- }
235
- }
236
- styleContent(content) {
237
- if (!content[cesiumTilesetLastUpdated] ||
238
- content[cesiumTilesetLastUpdated] < this.featureVisibility.lastUpdated ||
239
- content[cesiumTilesetLastUpdated] <
240
- (this.globalHider?.lastUpdated ?? 0) ||
241
- content[cesiumTilesetLastUpdated] < this._styleLastUpdated) {
242
- // content[updateFeatureOverride]?.reset();
243
- delete content[updateFeatureOverride];
244
- const batchSize = content.featuresLength;
245
- const featureOverride = {
246
- hideLocal: [],
247
- hideGlobal: [],
248
- highlight: [],
249
- };
250
- for (let batchId = 0; batchId < batchSize; batchId++) {
251
- const feature = content.getFeature(batchId);
252
- if (feature) {
253
- let id = feature.getProperty('id');
254
- if (!id) {
255
- id = `${content.url}${String(batchId)}`;
256
- }
257
- let shouldUpdateOriginalStyle = true;
258
- if (this.featureVisibility.highlightedObjects[id] &&
259
- !this.featureVisibility.hasHighlightFeature(id, feature)) {
260
- this.featureVisibility.addHighlightFeature(id, feature);
261
- featureOverride.highlight.push([id, feature]);
262
- shouldUpdateOriginalStyle = false;
263
- }
264
- if (this.featureVisibility.hiddenObjects[id] &&
265
- !this.featureVisibility.hasHiddenFeature(id, feature)) {
266
- this.featureVisibility.addHiddenFeature(id, feature);
267
- featureOverride.hideLocal.push([id, feature]);
268
- }
269
- if (this.globalHider?.hiddenObjects[id] &&
270
- !this.globalHider?.hasFeature(id, feature)) {
271
- this.globalHider?.addFeature(id, feature);
272
- featureOverride.hideGlobal.push([id, feature]);
273
- }
274
- if (shouldUpdateOriginalStyle &&
275
- this._styleLastUpdated > (content[cesiumTilesetLastUpdated] ?? 0) &&
276
- feature[originalStyle] // can only be a color for cesium, so no check for undefined required
277
- ) {
278
- updateOriginalStyle(feature);
279
- }
280
- }
281
- }
282
- if (featureOverride.hideLocal.length > 0 ||
283
- featureOverride.hideGlobal.length > 0 ||
284
- featureOverride.highlight.length > 0) {
285
- content[updateFeatureOverride] = () => {
286
- featureOverride.hideGlobal.forEach(([id, feature]) => {
287
- if (this.globalHider?.hasFeature(id, feature)) {
288
- hideFeature(feature);
289
- }
290
- });
291
- featureOverride.hideLocal.forEach(([id, feature]) => {
292
- if (this.featureVisibility.hasHiddenFeature(id, feature)) {
293
- hideFeature(feature);
294
- }
295
- });
296
- featureOverride.highlight.forEach(([id, feature]) => {
297
- if (this.featureVisibility.hasHighlightFeature(id, feature)) {
298
- highlightFeature(feature);
299
- }
300
- });
301
- };
302
- }
303
- content[cesiumTilesetLastUpdated] = Date.now();
304
- }
305
- else {
306
- content[updateFeatureOverride]?.();
307
- }
308
- }
309
424
  destroy() {
310
425
  if (this.cesium3DTileset) {
311
426
  if (this.map.initialized) {
@@ -317,8 +432,8 @@ class CesiumTilesetCesiumImpl extends LayerImplementation {
317
432
  }
318
433
  this.cesium3DTileset = null;
319
434
  }
320
- if (this._onStyleChangeRemover) {
321
- this._onStyleChangeRemover();
435
+ if (this._destroyStyle) {
436
+ this._destroyStyle();
322
437
  }
323
438
  super.destroy();
324
439
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cesiumTilesetCesiumImpl.js","sourceRoot":"","sources":["../../../../src/layer/cesium/cesiumTilesetCesiumImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cesiumTilesetCesiumImpl.js","sourceRoot":"","sources":["../../../../src/layer/cesium/cesiumTilesetCesiumImpl.ts"],"names":[],"mappings":"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"}