@vcmap/core 5.0.0-rc.1 → 5.0.0-rc.10

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 (153) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +3 -2
  3. package/index.d.ts +2208 -2072
  4. package/index.js +137 -131
  5. package/package.json +10 -22
  6. package/src/category/appBackedCategory.js +76 -0
  7. package/src/category/category.js +401 -0
  8. package/src/category/categoryCollection.js +145 -0
  9. package/src/cesium/cesium3DTileFeature.js +1 -1
  10. package/src/classRegistry.js +168 -0
  11. package/src/context.js +73 -0
  12. package/src/{vcs/vcm/util/featureProvider → featureProvider}/abstractFeatureProvider.js +8 -8
  13. package/src/{vcs/vcm/util/featureProvider → featureProvider}/featureProviderHelpers.js +4 -5
  14. package/src/{vcs/vcm/util/featureProvider → featureProvider}/featureProviderSymbols.js +0 -0
  15. package/src/{vcs/vcm/util/featureProvider → featureProvider}/tileProviderFeatureProvider.js +4 -2
  16. package/src/{vcs/vcm/util/featureProvider → featureProvider}/wmsFeatureProvider.js +25 -17
  17. package/src/{vcs/vcm/interaction → interaction}/abstractInteraction.js +19 -17
  18. package/src/{vcs/vcm/interaction → interaction}/coordinateAtPixel.js +6 -9
  19. package/src/{vcs/vcm/interaction → interaction}/eventHandler.js +3 -3
  20. package/src/{vcs/vcm/interaction → interaction}/featureAtPixelInteraction.js +6 -19
  21. package/src/{vcs/vcm/interaction → interaction}/featureProviderInteraction.js +2 -13
  22. package/src/{vcs/vcm/interaction → interaction}/interactionChain.js +11 -31
  23. package/src/{vcs/vcm/interaction → interaction}/interactionType.js +0 -0
  24. package/src/{vcs/vcm/layer/cesium/cesiumTilesetCesium.js → layer/cesium/cesiumTilesetCesiumImpl.js} +8 -10
  25. package/src/{vcs/vcm/layer → layer}/cesium/clusterContext.js +0 -0
  26. package/src/{vcs/vcm/layer/cesium/dataSourceCesium.js → layer/cesium/dataSourceCesiumImpl.js} +5 -2
  27. package/src/{vcs/vcm/layer/cesium/openStreetMapCesium.js → layer/cesium/openStreetMapCesiumImpl.js} +6 -6
  28. package/src/{vcs/vcm/layer/cesium/rasterLayerCesium.js → layer/cesium/rasterLayerCesiumImpl.js} +5 -5
  29. package/src/{vcs/vcm/layer/cesium/singleImageCesium.js → layer/cesium/singleImageCesiumImpl.js} +5 -5
  30. package/src/{vcs/vcm/layer/cesium/terrainCesium.js → layer/cesium/terrainCesiumImpl.js} +4 -4
  31. package/src/{vcs/vcm/layer/cesium/tmsCesium.js → layer/cesium/tmsCesiumImpl.js} +6 -6
  32. package/src/{vcs/vcm/layer/cesium/vectorCesium.js → layer/cesium/vectorCesiumImpl.js} +3 -3
  33. package/src/{vcs/vcm/layer → layer}/cesium/vectorContext.js +0 -0
  34. package/src/{vcs/vcm/layer/cesium/vectorRasterTileCesium.js → layer/cesium/vectorRasterTileCesiumImpl.js} +5 -5
  35. package/src/{vcs/vcm/layer → layer}/cesium/vectorTileImageryProvider.js +1 -1
  36. package/src/{vcs/vcm/layer/cesium/wmsCesium.js → layer/cesium/wmsCesiumImpl.js} +6 -6
  37. package/src/{vcs/vcm/layer/cesium/wmtsCesium.js → layer/cesium/wmtsCesiumImpl.js} +6 -6
  38. package/src/{vcs/vcm/layer → layer}/cesium/x3dmHelper.js +0 -0
  39. package/src/{vcs/vcm/layer/cesiumTileset.js → layer/cesiumTilesetLayer.js} +38 -36
  40. package/src/{vcs/vcm/layer/czml.js → layer/czmlLayer.js} +14 -16
  41. package/src/{vcs/vcm/layer/dataSource.js → layer/dataSourceLayer.js} +13 -13
  42. package/src/{vcs/vcm/layer → layer}/featureLayer.js +17 -30
  43. package/src/{vcs/vcm/layer/featureStore.js → layer/featureStoreLayer.js} +53 -53
  44. package/src/{vcs/vcm/layer/featureStoreChanges.js → layer/featureStoreLayerChanges.js} +98 -82
  45. package/src/{vcs/vcm/layer/featureStoreState.js → layer/featureStoreLayerState.js} +1 -1
  46. package/src/{vcs/vcm/layer → layer}/featureVisibility.js +6 -5
  47. package/src/{vcs/vcm/layer → layer}/geojsonHelpers.js +15 -37
  48. package/src/{vcs/vcm/layer/geojson.js → layer/geojsonLayer.js} +19 -21
  49. package/src/{vcs/vcm/layer → layer}/globalHider.js +1 -11
  50. package/src/{vcs/vcm/layer → layer}/layer.js +11 -11
  51. package/src/{vcs/vcm/layer → layer}/layerImplementation.js +2 -2
  52. package/src/{vcs/vcm/layer → layer}/layerState.js +0 -0
  53. package/src/{vcs/vcm/layer → layer}/layerSymbols.js +0 -0
  54. package/src/{vcs/vcm/layer/oblique/layerOblique.js → layer/oblique/layerObliqueImpl.js} +4 -4
  55. package/src/{vcs/vcm/layer → layer}/oblique/obliqueHelpers.js +2 -2
  56. package/src/{vcs/vcm/layer/oblique/vectorOblique.js → layer/oblique/vectorObliqueImpl.js} +6 -6
  57. package/src/{vcs/vcm/layer/openStreetMap.js → layer/openStreetMapLayer.js} +32 -32
  58. package/src/{vcs/vcm/layer/openlayers/layerOpenlayers.js → layer/openlayers/layerOpenlayersImpl.js} +5 -5
  59. package/src/layer/openlayers/openStreetMapOpenlayersImpl.js +27 -0
  60. package/src/{vcs/vcm/layer/openlayers/rasterLayerOpenlayers.js → layer/openlayers/rasterLayerOpenlayersImpl.js} +15 -14
  61. package/src/{vcs/vcm/layer/openlayers/singleImageOpenlayers.js → layer/openlayers/singleImageOpenlayersImpl.js} +6 -6
  62. package/src/{vcs/vcm/layer/openlayers/tileDebugOpenlayers.js → layer/openlayers/tileDebugOpenlayersImpl.js} +5 -5
  63. package/src/{vcs/vcm/layer/openlayers/tmsOpenlayers.js → layer/openlayers/tmsOpenlayersImpl.js} +7 -7
  64. package/src/{vcs/vcm/layer/openlayers/vectorOpenlayers.js → layer/openlayers/vectorOpenlayersImpl.js} +6 -6
  65. package/src/{vcs/vcm/layer/openlayers/vectorTileOpenlayers.js → layer/openlayers/vectorTileOpenlayersImpl.js} +6 -6
  66. package/src/{vcs/vcm/layer/openlayers/wmsOpenlayers.js → layer/openlayers/wmsOpenlayersImpl.js} +7 -7
  67. package/src/{vcs/vcm/layer/openlayers/wmtsOpenlayers.js → layer/openlayers/wmtsOpenlayersImpl.js} +7 -7
  68. package/src/{vcs/vcm/layer/pointCloud.js → layer/pointCloudLayer.js} +26 -33
  69. package/src/{vcs/vcm/layer → layer}/rasterLayer.js +18 -18
  70. package/src/{vcs/vcm/layer/singleImage.js → layer/singleImageLayer.js} +20 -19
  71. package/src/{vcs/vcm/layer → layer}/terrainHelpers.js +13 -49
  72. package/src/{vcs/vcm/layer/terrain.js → layer/terrainLayer.js} +13 -13
  73. package/src/{vcs/vcm/layer → layer}/tileLoadedHelper.js +5 -5
  74. package/src/{vcs/vcm/layer → layer}/tileProvider/mvtTileProvider.js +22 -4
  75. package/src/layer/tileProvider/staticGeojsonTileProvider.js +82 -0
  76. package/src/{vcs/vcm/layer → layer}/tileProvider/tileProvider.js +16 -7
  77. package/src/{vcs/vcm/layer → layer}/tileProvider/urlTemplateTileProvider.js +20 -5
  78. package/src/{vcs/vcm/layer/tms.js → layer/tmsLayer.js} +19 -19
  79. package/src/{vcs/vcm/layer → layer}/vectorHelpers.js +5 -5
  80. package/src/{vcs/vcm/layer/vector.js → layer/vectorLayer.js} +38 -47
  81. package/src/{vcs/vcm/layer → layer}/vectorProperties.js +3 -3
  82. package/src/{vcs/vcm/layer → layer}/vectorSymbols.js +0 -0
  83. package/src/{vcs/vcm/layer/vectorTile.js → layer/vectorTileLayer.js} +32 -41
  84. package/src/{vcs/vcm/layer/wfs.js → layer/wfsLayer.js} +19 -19
  85. package/src/{vcs/vcm/layer → layer}/wmsHelpers.js +1 -1
  86. package/src/{vcs/vcm/layer/wms.js → layer/wmsLayer.js} +22 -22
  87. package/src/{vcs/vcm/layer/wmts.js → layer/wmtsLayer.js} +20 -20
  88. package/src/{vcs/vcm/maps → map}/baseOLMap.js +5 -5
  89. package/src/{vcs/vcm/maps → map}/cameraLimiter.js +11 -16
  90. package/src/{vcs/vcm/maps/cesium.js → map/cesiumMap.js} +21 -33
  91. package/src/{vcs/vcm/maps → map}/mapState.js +0 -0
  92. package/src/{vcs/vcm/maps/oblique.js → map/obliqueMap.js} +42 -56
  93. package/src/{vcs/vcm/maps/openlayers.js → map/openlayersMap.js} +17 -14
  94. package/src/{vcs/vcm/maps/map.js → map/vcsMap.js} +35 -20
  95. package/src/oblique/defaultObliqueCollection.js +62 -0
  96. package/src/{vcs/vcm/oblique → oblique}/helpers.js +13 -41
  97. package/src/{vcs/vcm/oblique/ObliqueCollection.js → oblique/obliqueCollection.js} +117 -36
  98. package/src/{vcs/vcm/oblique/ObliqueDataSet.js → oblique/obliqueDataSet.js} +67 -24
  99. package/src/{vcs/vcm/oblique/ObliqueImage.js → oblique/obliqueImage.js} +1 -1
  100. package/src/{vcs/vcm/oblique/ObliqueImageMeta.js → oblique/obliqueImageMeta.js} +4 -4
  101. package/src/{vcs/vcm/oblique/ObliqueProvider.js → oblique/obliqueProvider.js} +17 -11
  102. package/src/{vcs/vcm/oblique/ObliqueView.js → oblique/obliqueView.js} +31 -1
  103. package/src/{vcs/vcm/oblique/ObliqueViewDirection.js → oblique/obliqueViewDirection.js} +0 -0
  104. package/src/{vcs/vcm/oblique → oblique}/parseImageJson.js +20 -12
  105. package/src/ol/geom/circle.js +1 -1
  106. package/src/overrideClassRegistry.js +204 -0
  107. package/src/{vcs/vcm/util/style → style}/declarativeStyleItem.js +43 -19
  108. package/src/{vcs/vcm/util/style → style}/shapesCategory.js +0 -0
  109. package/src/style/styleFactory.js +29 -0
  110. package/src/{vcs/vcm/util/style → style}/styleHelpers.js +3 -3
  111. package/src/{vcs/vcm/util/style → style}/styleItem.js +23 -85
  112. package/src/{vcs/vcm/util/style → style}/vectorStyleItem.js +73 -81
  113. package/src/{vcs/vcm/util/style → style}/writeStyle.js +4 -7
  114. package/src/{vcs/vcm/util → util}/clipping/clippingObject.js +10 -10
  115. package/src/{vcs/vcm/util → util}/clipping/clippingObjectManager.js +2 -2
  116. package/src/{vcs/vcm/util → util}/clipping/clippingPlaneHelper.js +4 -4
  117. package/src/{vcs/vcm/util → util}/collection.js +1 -1
  118. package/src/{vcs/vcm/util → util}/dateTime.js +0 -0
  119. package/src/{vcs/vcm/util → util}/exclusiveManager.js +0 -0
  120. package/src/{vcs/vcm/util → util}/extent.js +18 -11
  121. package/src/{vcs/vcm/util → util}/featureconverter/circleToCesium.js +0 -0
  122. package/src/{vcs/vcm/util → util}/featureconverter/convert.js +0 -0
  123. package/src/util/featureconverter/extent3D.js +181 -0
  124. package/src/{vcs/vcm/util → util}/featureconverter/featureconverterHelper.js +1 -1
  125. package/src/{vcs/vcm/util → util}/featureconverter/lineStringToCesium.js +0 -0
  126. package/src/{vcs/vcm/util → util}/featureconverter/pointToCesium.js +3 -3
  127. package/src/{vcs/vcm/util → util}/featureconverter/polygonToCesium.js +1 -1
  128. package/src/util/fetch.js +32 -0
  129. package/src/{vcs/vcm/util → util}/geometryHelpers.js +0 -0
  130. package/src/{vcs/vcm/util → util}/indexedCollection.js +24 -1
  131. package/src/{vcs/vcm/util → util}/isMobile.js +0 -0
  132. package/src/{vcs/vcm/util → util}/layerCollection.js +11 -6
  133. package/src/{vcs/vcm/util → util}/locale.js +1 -1
  134. package/src/{vcs/vcm/util → util}/mapCollection.js +63 -21
  135. package/src/{vcs/vcm/util → util}/math.js +0 -0
  136. package/src/util/overrideCollection.js +224 -0
  137. package/src/{vcs/vcm/util → util}/projection.js +39 -24
  138. package/src/{vcs/vcm/util → util}/splitScreen.js +10 -10
  139. package/src/{vcs/vcm/util → util}/urlHelpers.js +0 -0
  140. package/src/{vcs/vcm/util → util}/viewpoint.js +5 -5
  141. package/src/vcsApp.js +471 -0
  142. package/src/vcsAppContextHelpers.js +121 -0
  143. package/src/{vcs/vcm/event/vcsEvent.js → vcsEvent.js} +2 -2
  144. package/src/{vcs/vcm/object.js → vcsObject.js} +2 -10
  145. package/src/vcs/vcm/classRegistry.js +0 -106
  146. package/src/vcs/vcm/globalCollections.js +0 -11
  147. package/src/vcs/vcm/layer/buildings.js +0 -17
  148. package/src/vcs/vcm/layer/cesium/pointCloudCesium.js +0 -58
  149. package/src/vcs/vcm/layer/openlayers/openStreetMapOpenlayers.js +0 -27
  150. package/src/vcs/vcm/layer/tileProvider/staticGeojsonTileProvider.js +0 -67
  151. package/src/vcs/vcm/layer/tileProvider/tileProviderFactory.js +0 -28
  152. package/src/vcs/vcm/util/featureconverter/extent3d.js +0 -154
  153. package/src/vcs/vcm/util/style/styleFactory.js +0 -48
@@ -7,19 +7,8 @@ import { EventType, ModificationKeyType } from './interactionType.js';
7
7
  */
8
8
  class FeatureProviderInteraction extends AbstractInteraction {
9
9
  constructor() {
10
- super();
11
- /**
12
- * @inheritDoc
13
- * @type {ModificationKeyType|number}
14
- * @protected
15
- */
16
- this._defaultModificationKey = ModificationKeyType.ALL;
17
- /**
18
- * @inheritDoc
19
- * @type {ModificationKeyType|number}
20
- * @protected
21
- */
22
- this._defaultActive = EventType.CLICK;
10
+ super(EventType.CLICK, ModificationKeyType.ALL);
11
+
23
12
  this.setActive();
24
13
  }
25
14
 
@@ -11,31 +11,13 @@ class InteractionChain extends AbstractInteraction {
11
11
  * @param {Array<AbstractInteraction>=} chain
12
12
  */
13
13
  constructor(chain) {
14
- super();
14
+ super(EventType.ALL, ModificationKeyType.ALL, PointerKeyType.ALL);
15
15
  /**
16
16
  * The interactions to handle one after the other
17
17
  * @type {Array<AbstractInteraction>}
18
18
  * @api
19
19
  */
20
20
  this.chain = chain || [];
21
- /**
22
- * @inheritDoc
23
- * @type {EventType}
24
- * @protected
25
- */
26
- this._defaultActive = EventType.ALL;
27
- /**
28
- * @inheritDoc
29
- * @type {ModificationKeyType}
30
- * @protected
31
- */
32
- this._defaultModificationKey = ModificationKeyType.ALL;
33
- /**
34
- * @inheritDoc
35
- * @type {PointerKeyType}
36
- * @protected
37
- */
38
- this._defaultPointerKey = PointerKeyType.ALL;
39
21
  this.setActive();
40
22
  }
41
23
 
@@ -72,8 +54,8 @@ class InteractionChain extends AbstractInteraction {
72
54
  * @param {InteractionEvent} event
73
55
  * @returns {Promise<InteractionEvent>}
74
56
  */
75
- pipe(event) {
76
- let promise = Promise.resolve(event);
57
+ async pipe(event) {
58
+ let pipedEvent = event;
77
59
  const chainLength = this.chain.length;
78
60
  for (let i = 0; i < chainLength; i++) {
79
61
  const interaction = this.chain[i];
@@ -82,16 +64,14 @@ class InteractionChain extends AbstractInteraction {
82
64
  (interaction.modificationKey & event.key) &&
83
65
  (interaction.pointerKey & event.pointer)
84
66
  ) {
85
- // eslint-disable-next-line
86
- promise = promise.then(function (pipedEvent) {
87
- if (pipedEvent.stopPropagation) {
88
- return Promise.resolve(pipedEvent);
89
- }
90
- return this.pipe(pipedEvent);
91
- }.bind(interaction));
67
+ // eslint-disable-next-line no-await-in-loop
68
+ pipedEvent = await interaction.pipe(pipedEvent);
69
+ if (pipedEvent.stopPropagation) {
70
+ break;
71
+ }
92
72
  }
93
73
  }
94
- return promise;
74
+ return pipedEvent;
95
75
  }
96
76
 
97
77
  /**
@@ -99,7 +79,7 @@ class InteractionChain extends AbstractInteraction {
99
79
  * @override
100
80
  */
101
81
  setModification() {
102
- this.modificationKey = this._defaultModificationKey;
82
+ super.setModification();
103
83
  }
104
84
 
105
85
  /**
@@ -107,7 +87,7 @@ class InteractionChain extends AbstractInteraction {
107
87
  * @override
108
88
  */
109
89
  setPointer() {
110
- this.pointerKey = this._defaultPointerKey;
90
+ super.setPointer();
111
91
  }
112
92
 
113
93
  /**
@@ -64,9 +64,9 @@ export function getExtentFromTileset(cesium3DTileset) {
64
64
  * @implements {FeatureLayerImplementation}
65
65
  * @api stable
66
66
  */
67
- class CesiumTilesetCesium extends LayerImplementation {
67
+ class CesiumTilesetCesiumImpl extends LayerImplementation {
68
68
  /** @type {string} */
69
- static get className() { return 'vcs.vcm.layer.cesium.CesiumTilesetCesium'; }
69
+ static get className() { return 'CesiumTilesetCesiumImpl'; }
70
70
 
71
71
  /**
72
72
  * @param {import("@vcmap/core").CesiumMap} map
@@ -79,7 +79,7 @@ class CesiumTilesetCesium extends LayerImplementation {
79
79
  this.cesium3DTileset = null;
80
80
  /** @type {Object} */
81
81
  this.tilesetOptions = options.tilesetOptions;
82
- /** @type {import("@vcmap/cesium").ImagerySplitDirection} */
82
+ /** @type {import("@vcmap/cesium").SplitDirection} */
83
83
  this.splitDirection = options.splitDirection;
84
84
  /** @type {import("@vcmap/core").StyleItem} */
85
85
  this.style = options.style;
@@ -92,7 +92,7 @@ class CesiumTilesetCesium extends LayerImplementation {
92
92
  /** @type {import("ol/coordinate").Coordinate} */
93
93
  this.offset = options.offset;
94
94
  /**
95
- * @type {Promise<void>}
95
+ * @type {Promise<import("@vcmap/cesium").Cesium3DTileset>}
96
96
  * @private
97
97
  */
98
98
  this._initializedPromise = null;
@@ -128,9 +128,7 @@ class CesiumTilesetCesium extends LayerImplementation {
128
128
  delete tile[cesiumTilesetLastUpdated];
129
129
  });
130
130
 
131
- this._initializedPromise = new Promise((resolve, reject) => {
132
- this.cesium3DTileset.readyPromise.then(() => { resolve(); }, reject);
133
- });
131
+ this._initializedPromise = this.cesium3DTileset.readyPromise;
134
132
 
135
133
  await this._initializedPromise;
136
134
  this._originalOrigin = Cartesian3.clone(this.cesium3DTileset.boundingSphere.center);
@@ -147,7 +145,7 @@ class CesiumTilesetCesium extends LayerImplementation {
147
145
  }
148
146
  this.updateStyle(this.style);
149
147
  }
150
- return this._initializedPromise;
148
+ await this._initializedPromise;
151
149
  }
152
150
 
153
151
  /**
@@ -250,7 +248,7 @@ class CesiumTilesetCesium extends LayerImplementation {
250
248
  }
251
249
 
252
250
  /**
253
- * @param {import("@vcmap/cesium").ImagerySplitDirection} splitDirection
251
+ * @param {import("@vcmap/cesium").SplitDirection} splitDirection
254
252
  */
255
253
  updateSplitDirection(splitDirection) {
256
254
  const { splitScreen } = this.map;
@@ -356,4 +354,4 @@ class CesiumTilesetCesium extends LayerImplementation {
356
354
  }
357
355
  }
358
356
 
359
- export default CesiumTilesetCesium;
357
+ export default CesiumTilesetCesiumImpl;
@@ -28,7 +28,10 @@ function synchronizeEntityCollections(source, destination) {
28
28
  * @export
29
29
  * @extends {LayerImplementation<import("@vcmap/core").CesiumMap>}}
30
30
  */
31
- class DataSourceCesium extends LayerImplementation {
31
+ class DataSourceCesiumImpl extends LayerImplementation {
32
+ /** @type {string} */
33
+ static get className() { return 'DataSourceCesiumImpl'; }
34
+
32
35
  /**
33
36
  * @param {import("@vcmap/core").CesiumMap} map
34
37
  * @param {DataSourceImplementationOptions} options
@@ -168,4 +171,4 @@ class DataSourceCesium extends LayerImplementation {
168
171
  }
169
172
  }
170
173
 
171
- export default DataSourceCesium;
174
+ export default DataSourceCesiumImpl;
@@ -1,14 +1,14 @@
1
1
  import { OpenStreetMapImageryProvider, ImageryLayer as CesiumImageryLayer } from '@vcmap/cesium';
2
- import RasterLayerCesium from './rasterLayerCesium.js';
2
+ import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
3
3
 
4
4
  /**
5
- * represents a specific OpenStreetMap layer for cesium.
5
+ * represents a specific OpenStreetMapLayer layer for cesium.
6
6
  * @class
7
7
  * @export
8
- * @extends {RasterLayerCesium}
8
+ * @extends {RasterLayerCesiumImpl}
9
9
  */
10
- class OpenStreetMapCesium extends RasterLayerCesium {
11
- static get className() { return 'vcs.vcm.layer.cesium.OpenStreetMapCesium'; }
10
+ class OpenStreetMapCesiumImpl extends RasterLayerCesiumImpl {
11
+ static get className() { return 'OpenStreetMapCesiumImpl'; }
12
12
 
13
13
  /**
14
14
  * @inheritDoc
@@ -26,4 +26,4 @@ class OpenStreetMapCesium extends RasterLayerCesium {
26
26
  }
27
27
 
28
28
 
29
- export default OpenStreetMapCesium;
29
+ export default OpenStreetMapCesiumImpl;
@@ -8,8 +8,8 @@ import LayerImplementation from '../layerImplementation.js';
8
8
  * @extends {LayerImplementation<import("@vcmap/core").CesiumMap>}}
9
9
  * @implements {RasterLayerImplementation}
10
10
  */
11
- class RasterLayerCesium extends LayerImplementation {
12
- static get className() { return 'vcs.vcm.layer.cesium.RasterLayerCesium'; }
11
+ class RasterLayerCesiumImpl extends LayerImplementation {
12
+ static get className() { return 'RasterLayerCesiumImpl'; }
13
13
 
14
14
  /**
15
15
  * @param {import("@vcmap/core").CesiumMap} map
@@ -19,7 +19,7 @@ class RasterLayerCesium extends LayerImplementation {
19
19
  super(map, options);
20
20
  /** @type {import("@vcmap/cesium").ImageryLayer|null} */
21
21
  this.cesiumLayer = null;
22
- /** @type {import("@vcmap/cesium").ImagerySplitDirection} */
22
+ /** @type {import("@vcmap/cesium").SplitDirection} */
23
23
  this.splitDirection = options.splitDirection;
24
24
  /** @type {number} */
25
25
  this.minLevel = options.minLevel;
@@ -48,7 +48,7 @@ class RasterLayerCesium extends LayerImplementation {
48
48
  }
49
49
 
50
50
  /**
51
- * @param {import("@vcmap/cesium").ImagerySplitDirection} splitDirection
51
+ * @param {import("@vcmap/cesium").SplitDirection} splitDirection
52
52
  */
53
53
  updateSplitDirection(splitDirection) {
54
54
  this.splitDirection = splitDirection;
@@ -107,4 +107,4 @@ class RasterLayerCesium extends LayerImplementation {
107
107
  }
108
108
  }
109
109
 
110
- export default RasterLayerCesium;
110
+ export default RasterLayerCesiumImpl;
@@ -1,15 +1,15 @@
1
1
  import { Rectangle, SingleTileImageryProvider, ImageryLayer } from '@vcmap/cesium';
2
- import RasterLayerCesium from './rasterLayerCesium.js';
2
+ import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
3
3
  import { wgs84Projection } from '../../util/projection.js';
4
4
 
5
5
  /**
6
6
  * represents a specific Cesium SingleTileImagery Layer class.
7
7
  * @class
8
8
  * @export
9
- * @extends {RasterLayerCesium}
9
+ * @extends {RasterLayerCesiumImpl}
10
10
  */
11
- class SingleImageCesium extends RasterLayerCesium {
12
- static get className() { return 'vcs.vcm.layer.cesium.singleImageLayer'; }
11
+ class SingleImageCesiumImpl extends RasterLayerCesiumImpl {
12
+ static get className() { return 'SingleImageCesiumImpl'; }
13
13
 
14
14
  /**
15
15
  * @param {import("@vcmap/core").CesiumMap} map
@@ -46,4 +46,4 @@ class SingleImageCesium extends RasterLayerCesium {
46
46
  }
47
47
  }
48
48
 
49
- export default SingleImageCesium;
49
+ export default SingleImageCesiumImpl;
@@ -4,13 +4,13 @@ import { getTerrainProviderForUrl } from '../terrainHelpers.js';
4
4
 
5
5
 
6
6
  /**
7
- * Terrain implementation for {@link CesiumMap}
7
+ * TerrainLayer implementation for {@link CesiumMap}
8
8
  * @class
9
9
  * @export
10
10
  * @extends {LayerImplementation<import("@vcmap/core").CesiumMap>}}
11
11
  */
12
- class TerrainCesium extends LayerImplementation {
13
- static get className() { return 'vcs.vcm.layer.cesium.TerrainCesium'; }
12
+ class TerrainCesiumImpl extends LayerImplementation {
13
+ static get className() { return 'TerrainCesiumImpl'; }
14
14
 
15
15
  /**
16
16
  * @param {import("@vcmap/core").CesiumMap} map
@@ -77,4 +77,4 @@ class TerrainCesium extends LayerImplementation {
77
77
  }
78
78
  }
79
79
 
80
- export default TerrainCesium;
80
+ export default TerrainCesiumImpl;
@@ -1,16 +1,16 @@
1
1
  import { Rectangle, GeographicTilingScheme, TileMapServiceImageryProvider, ImageryLayer as CesiumImageryLayer } from '@vcmap/cesium';
2
- import RasterLayerCesium from './rasterLayerCesium.js';
2
+ import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
3
3
  import { wgs84Projection } from '../../util/projection.js';
4
4
  import { TilingScheme } from '../rasterLayer.js';
5
5
 
6
6
  /**
7
- * TMS implementation for {@link CesiumMap}.
7
+ * TmsLayer implementation for {@link CesiumMap}.
8
8
  * @class
9
9
  * @export
10
- * @extends {RasterLayerCesium}
10
+ * @extends {RasterLayerCesiumImpl}
11
11
  */
12
- class TMSCesium extends RasterLayerCesium {
13
- static get className() { return 'vcs.vcm.layer.cesium.TMSCesium'; }
12
+ class TmsCesiumImpl extends RasterLayerCesiumImpl {
13
+ static get className() { return 'TmsCesiumImpl'; }
14
14
 
15
15
  /**
16
16
  * @param {import("@vcmap/core").CesiumMap} map
@@ -51,4 +51,4 @@ class TMSCesium extends RasterLayerCesium {
51
51
  }
52
52
  }
53
53
 
54
- export default TMSCesium;
54
+ export default TmsCesiumImpl;
@@ -15,8 +15,8 @@ import { synchronizeFeatureVisibilityWithSource } from '../vectorHelpers.js';
15
15
  * @extends {LayerImplementation<import("@vcmap/core").CesiumMap>}}
16
16
  * @implements {FeatureLayerImplementation}
17
17
  */
18
- class VectorCesium extends LayerImplementation {
19
- static get className() { return 'vcs.vcm.layer.cesium.VectorCesium'; }
18
+ class VectorCesiumImpl extends LayerImplementation {
19
+ static get className() { return 'VectorCesiumImpl'; }
20
20
 
21
21
  /**
22
22
  * @param {import("@vcmap/core").CesiumMap} map
@@ -252,4 +252,4 @@ class VectorCesium extends LayerImplementation {
252
252
  }
253
253
  }
254
254
 
255
- export default VectorCesium;
255
+ export default VectorCesiumImpl;
@@ -1,18 +1,18 @@
1
1
  import { ImageryLayer as CesiumImageryLayer, Rectangle } from '@vcmap/cesium';
2
2
  import VectorTileImageryProvider from './vectorTileImageryProvider.js';
3
- import RasterLayerCesium from './rasterLayerCesium.js';
3
+ import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
4
4
  import { wgs84Projection } from '../../util/projection.js';
5
5
 
6
6
  /**
7
7
  * represents a rasterized tiled vector layer implementation for cesium.
8
8
  * @class
9
9
  * @export
10
- * @extends {RasterLayerCesium}
10
+ * @extends {RasterLayerCesiumImpl}
11
11
  * @implements {VectorTileImplementation}
12
12
  */
13
- class VectorRasterTileCesium extends RasterLayerCesium {
13
+ class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
14
14
  static get className() {
15
- return 'vcs.vcm.layer.cesium.VectorRasterTileCesium';
15
+ return 'VectorRasterTileCesiumImpl';
16
16
  }
17
17
 
18
18
  /**
@@ -113,4 +113,4 @@ class VectorRasterTileCesium extends RasterLayerCesium {
113
113
  }
114
114
  }
115
115
 
116
- export default VectorRasterTileCesium;
116
+ export default VectorRasterTileCesiumImpl;
@@ -2,7 +2,7 @@ import { Event as CesiumEvent, Rectangle, Math as CesiumMath } from '@vcmap/cesi
2
2
  import { compose, create as createTransform, scale as scaleTransform } from 'ol/transform.js';
3
3
  import { rectangleToExtent } from '../tileProvider/tileProvider.js';
4
4
  import { wgs84ToMercatorTransformer } from '../../util/projection.js';
5
- import CanvasTileRenderer from '../../../../ol/render/canvas/canvasTileRenderer.js';
5
+ import CanvasTileRenderer from '../../ol/render/canvas/canvasTileRenderer.js';
6
6
 
7
7
  /**
8
8
  * @param {import("ol/extent").Extent} extent
@@ -1,16 +1,16 @@
1
1
  import { ImageryLayer as CesiumImageryLayer, Rectangle, WebMercatorTilingScheme, WebMapServiceImageryProvider } from '@vcmap/cesium';
2
2
 
3
- import RasterLayerCesium from './rasterLayerCesium.js';
3
+ import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
4
4
  import { wgs84Projection } from '../../util/projection.js';
5
5
 
6
6
  /**
7
- * represents a specific Cesium WMSCesium Layer class.
7
+ * represents a specific Cesium WmsCesiumImpl Layer class.
8
8
  * @class
9
9
  * @export
10
- * @extends {RasterLayerCesium}
10
+ * @extends {RasterLayerCesiumImpl}
11
11
  */
12
- class WMSCesium extends RasterLayerCesium {
13
- static get className() { return 'vcs.vcm.layer.cesium.WMSCesium'; }
12
+ class WmsCesiumImpl extends RasterLayerCesiumImpl {
13
+ static get className() { return 'WmsCesiumImpl'; }
14
14
 
15
15
  /**
16
16
  * @param {import("@vcmap/core").CesiumMap} map
@@ -68,4 +68,4 @@ class WMSCesium extends RasterLayerCesium {
68
68
  }
69
69
  }
70
70
 
71
- export default WMSCesium;
71
+ export default WmsCesiumImpl;
@@ -1,16 +1,16 @@
1
1
  import { Rectangle, WebMapTileServiceImageryProvider, ImageryLayer as CesiumImageryLayer } from '@vcmap/cesium';
2
- import RasterLayerCesium from './rasterLayerCesium.js';
2
+ import RasterLayerCesiumImpl from './rasterLayerCesiumImpl.js';
3
3
  import { wgs84Projection } from '../../util/projection.js';
4
4
  import { getTilingScheme } from '../rasterLayer.js';
5
5
 
6
6
  /**
7
- * represents a specific WMTS Implementation for {@link CesiumMap}.
7
+ * represents a specific WmtsLayer Implementation for {@link CesiumMap}.
8
8
  * @class
9
9
  * @export
10
- * @extends {RasterLayerCesium}
10
+ * @extends {RasterLayerCesiumImpl}
11
11
  */
12
- class WMTSCesium extends RasterLayerCesium {
13
- static get className() { return 'vcs.vcm.layer.cesium.WMTSCesium'; }
12
+ class WmtsCesiumImpl extends RasterLayerCesiumImpl {
13
+ static get className() { return 'WmtsCesiumImpl'; }
14
14
 
15
15
  /**
16
16
  * @param {import("@vcmap/core").CesiumMap} map
@@ -98,4 +98,4 @@ class WMTSCesium extends RasterLayerCesium {
98
98
  }
99
99
  }
100
100
 
101
- export default WMTSCesium;
101
+ export default WmtsCesiumImpl;
@@ -1,18 +1,17 @@
1
- import { ImagerySplitDirection, Matrix4 } from '@vcmap/cesium';
1
+ import { SplitDirection, Matrix4 } from '@vcmap/cesium';
2
2
 
3
3
  import { checkMaybe } from '@vcsuite/check';
4
4
  import { parseInteger } from '@vcsuite/parsers';
5
5
  import getJSONObjectFromObject from './cesium/x3dmHelper.js';
6
- import VectorStyleItem from '../util/style/vectorStyleItem.js';
6
+ import VectorStyleItem from '../style/vectorStyleItem.js';
7
7
  import FeatureLayer from './featureLayer.js';
8
- import CesiumTilesetCesium, { getExtentFromTileset } from './cesium/cesiumTilesetCesium.js';
9
- import CesiumMap from '../maps/cesium.js';
10
- import VcsEvent from '../event/vcsEvent.js';
8
+ import CesiumTilesetCesiumImpl, { getExtentFromTileset } from './cesium/cesiumTilesetCesiumImpl.js';
9
+ import CesiumMap from '../map/cesiumMap.js';
10
+ import VcsEvent from '../vcsEvent.js';
11
11
  import Extent from '../util/extent.js';
12
12
  import { mercatorProjection } from '../util/projection.js';
13
13
  import { isMobile } from '../util/isMobile.js';
14
- import { referenceableStyleSymbol } from '../util/style/styleItem.js';
15
- import { VcsClassRegistry } from '../classRegistry.js';
14
+ import { layerClassRegistry } from '../classRegistry.js';
16
15
 
17
16
  /**
18
17
  * @typedef {LayerOptions} CesiumTilesetOptions
@@ -37,7 +36,7 @@ import { VcsClassRegistry } from '../classRegistry.js';
37
36
  /**
38
37
  * @typedef {FeatureLayerImplementationOptions} CesiumTilesetImplementationOptions
39
38
  * @property {Object|undefined} tilesetOptions
40
- * @property {import("@vcmap/cesium").ImagerySplitDirection} splitDirection
39
+ * @property {import("@vcmap/cesium").SplitDirection} splitDirection
41
40
  * @property {Array<CesiumTilesetTilesetProperties>|undefined} tilesetProperties
42
41
  * @property {import("@vcmap/cesium").Matrix4|undefined} modelMatrix
43
42
  * @property {import("ol/coordinate").Coordinate|undefined} offset
@@ -52,9 +51,9 @@ import { VcsClassRegistry } from '../classRegistry.js';
52
51
  * @api stable
53
52
  * @export
54
53
  */
55
- class CesiumTileset extends FeatureLayer {
54
+ class CesiumTilesetLayer extends FeatureLayer {
56
55
  /** @type {string} */
57
- static get className() { return 'vcs.vcm.layer.CesiumTileset'; }
56
+ static get className() { return 'CesiumTilesetLayer'; }
58
57
 
59
58
  /**
60
59
  * @returns {CesiumTilesetOptions}
@@ -80,7 +79,7 @@ class CesiumTileset extends FeatureLayer {
80
79
  this._supportedMaps = [
81
80
  CesiumMap.className,
82
81
  ];
83
- const defaultOptions = CesiumTileset.getDefaultOptions();
82
+ const defaultOptions = CesiumTilesetLayer.getDefaultOptions();
84
83
  if (this.url && !/\.json$/.test(this.url)) {
85
84
  this.url = `${this.url.replace(/\/$/, '')}/tileset.json`;
86
85
  }
@@ -111,18 +110,18 @@ class CesiumTileset extends FeatureLayer {
111
110
  ...tilesetOptions,
112
111
  };
113
112
 
114
- /** @type {import("@vcmap/cesium").ImagerySplitDirection} */
115
- this._splitDirection = ImagerySplitDirection.NONE;
113
+ /** @type {import("@vcmap/cesium").SplitDirection} */
114
+ this._splitDirection = SplitDirection.NONE;
116
115
 
117
116
  if (options.splitDirection) {
118
117
  this._splitDirection = options.splitDirection === 'left' ?
119
- ImagerySplitDirection.LEFT :
120
- ImagerySplitDirection.RIGHT;
118
+ SplitDirection.LEFT :
119
+ SplitDirection.RIGHT;
121
120
  }
122
121
 
123
122
  /**
124
123
  * raised if the split direction changes, is passed the split direction as its only argument
125
- * @type {VcsEvent<import("@vcmap/cesium").ImagerySplitDirection>}
124
+ * @type {VcsEvent<import("@vcmap/cesium").SplitDirection>}
126
125
  * @api
127
126
  */
128
127
  this.splitDirectionChanged = new VcsEvent();
@@ -158,7 +157,7 @@ class CesiumTileset extends FeatureLayer {
158
157
 
159
158
  this._modelMatrix = modelMatrix;
160
159
  this.getImplementations()
161
- .forEach(/** @param {CesiumTilesetCesium} impl */ (impl) => {
160
+ .forEach(/** @param {CesiumTilesetCesiumImpl} impl */ (impl) => {
162
161
  impl.updateModelMatrix(modelMatrix);
163
162
  });
164
163
  }
@@ -182,30 +181,35 @@ class CesiumTileset extends FeatureLayer {
182
181
 
183
182
  this._offset = offset;
184
183
  this.getImplementations()
185
- .forEach(/** @param {CesiumTilesetCesium} impl */ (impl) => {
184
+ .forEach(/** @param {CesiumTilesetCesiumImpl} impl */ (impl) => {
186
185
  impl.updateOffset(offset);
187
186
  });
188
187
  }
189
188
 
190
189
  /**
191
190
  * @api
192
- * @type {import("@vcmap/cesium").ImagerySplitDirection}
191
+ * @type {import("@vcmap/cesium").SplitDirection}
193
192
  */
194
193
  get splitDirection() { return this._splitDirection; }
195
194
 
196
195
  /**
197
- * @param {import("@vcmap/cesium").ImagerySplitDirection} direction
196
+ * @param {import("@vcmap/cesium").SplitDirection} direction
198
197
  */
199
198
  set splitDirection(direction) {
200
199
  if (direction !== this._splitDirection) {
201
200
  this.getImplementations().forEach((impl) => {
202
- /** @type {CesiumTilesetCesium} */ (impl).updateSplitDirection(direction);
201
+ /** @type {CesiumTilesetCesiumImpl} */ (impl).updateSplitDirection(direction);
203
202
  });
204
203
  this._splitDirection = direction;
205
204
  this.splitDirectionChanged.raiseEvent(this._splitDirection);
206
205
  }
207
206
  }
208
207
 
208
+ async initialize() {
209
+ await this.style.cesiumStyle.readyPromise;
210
+ return super.initialize();
211
+ }
212
+
209
213
  /**
210
214
  * @inheritDoc
211
215
  * @returns {CesiumTilesetImplementationOptions}
@@ -223,11 +227,11 @@ class CesiumTileset extends FeatureLayer {
223
227
  /**
224
228
  * @inheritDoc
225
229
  * @param {import("@vcmap/core").VcsMap} map
226
- * @returns {Array<CesiumTilesetCesium>}
230
+ * @returns {Array<CesiumTilesetCesiumImpl>}
227
231
  */
228
232
  createImplementationsForMap(map) {
229
233
  if (map instanceof CesiumMap) {
230
- return [new CesiumTilesetCesium(map, this.getImplementationOptions())];
234
+ return [new CesiumTilesetCesiumImpl(map, this.getImplementationOptions())];
231
235
  }
232
236
  return [];
233
237
  }
@@ -261,12 +265,12 @@ class CesiumTileset extends FeatureLayer {
261
265
  if (metaExtent) {
262
266
  return metaExtent;
263
267
  }
264
- const impl = /** @type {CesiumTilesetCesium} */ (this.getImplementations()[0]);
268
+ const impl = /** @type {CesiumTilesetCesiumImpl} */ (this.getImplementations()[0]);
265
269
  if (impl) {
266
270
  const threeDimExtent = getExtentFromTileset(impl.cesium3DTileset);
267
271
 
268
272
  const actualExtent = new Extent({
269
- ...mercatorProjection.getConfigObject(),
273
+ projection: mercatorProjection.toJSON(),
270
274
  coordinates: threeDimExtent,
271
275
  });
272
276
 
@@ -299,7 +303,7 @@ class CesiumTileset extends FeatureLayer {
299
303
  */
300
304
  setMaximumScreenSpaceError(value) {
301
305
  this.getImplementations()
302
- .forEach(/** @param {CesiumTilesetCesium} impl */(impl) => {
306
+ .forEach(/** @param {CesiumTilesetCesiumImpl} impl */(impl) => {
303
307
  if (impl.cesium3DTileset) {
304
308
  impl.cesium3DTileset.maximumScreenSpaceError = value;
305
309
  }
@@ -309,14 +313,12 @@ class CesiumTileset extends FeatureLayer {
309
313
  /**
310
314
  * @returns {CesiumTilesetOptions}
311
315
  */
312
- getConfigObject() {
316
+ toJSON() {
313
317
  /** @type {CesiumTilesetOptions} */
314
- const config = super.getConfigObject();
315
- const defaultOptions = CesiumTileset.getDefaultOptions();
318
+ const config = super.toJSON();
319
+ const defaultOptions = CesiumTilesetLayer.getDefaultOptions();
316
320
  if (this.highlightStyle) {
317
- config.highlightStyle = this.highlightStyle[referenceableStyleSymbol] ?
318
- this.highlightStyle.getReference() :
319
- this.highlightStyle.getOptions();
321
+ config.highlightStyle = this.highlightStyle.toJSON();
320
322
  }
321
323
 
322
324
  if (this.screenSpaceError !== defaultOptions.screenSpaceError) {
@@ -349,8 +351,8 @@ class CesiumTileset extends FeatureLayer {
349
351
  config.tilesetOptions = tilesetOptions;
350
352
  }
351
353
 
352
- if (this._splitDirection !== ImagerySplitDirection.NONE) {
353
- config.splitDirection = this._splitDirection === ImagerySplitDirection.RIGHT ?
354
+ if (this._splitDirection !== SplitDirection.NONE) {
355
+ config.splitDirection = this._splitDirection === SplitDirection.RIGHT ?
354
356
  'right' :
355
357
  'left';
356
358
  }
@@ -372,5 +374,5 @@ class CesiumTileset extends FeatureLayer {
372
374
  }
373
375
  }
374
376
 
375
- VcsClassRegistry.registerClass(CesiumTileset.className, CesiumTileset);
376
- export default CesiumTileset;
377
+ layerClassRegistry.registerClass(CesiumTilesetLayer.className, CesiumTilesetLayer);
378
+ export default CesiumTilesetLayer;