@vcmap/core 5.0.0-rc.35 → 5.0.0-rc.37

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 (241) hide show
  1. package/README.md +2 -0
  2. package/dist/index.d.ts +2 -2
  3. package/dist/index.js +2 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/category/category.d.ts +1 -0
  6. package/dist/src/category/category.js +3 -4
  7. package/dist/src/category/category.js.map +1 -1
  8. package/dist/src/category/categoryCollection.d.ts +3 -0
  9. package/dist/src/category/categoryCollection.js +3 -0
  10. package/dist/src/category/categoryCollection.js.map +1 -1
  11. package/dist/src/featureProvider/abstractFeatureProvider.js +1 -2
  12. package/dist/src/featureProvider/abstractFeatureProvider.js.map +1 -1
  13. package/dist/src/featureProvider/featureProviderSymbols.d.ts +0 -5
  14. package/dist/src/featureProvider/featureProviderSymbols.js +1 -5
  15. package/dist/src/featureProvider/featureProviderSymbols.js.map +1 -1
  16. package/dist/src/interaction/abstractInteraction.d.ts +1 -0
  17. package/dist/src/interaction/abstractInteraction.js +1 -0
  18. package/dist/src/interaction/abstractInteraction.js.map +1 -1
  19. package/dist/src/interaction/coordinateAtPixel.d.ts +3 -0
  20. package/dist/src/interaction/coordinateAtPixel.js +3 -0
  21. package/dist/src/interaction/coordinateAtPixel.js.map +1 -1
  22. package/dist/src/interaction/featureAtPixelInteraction.d.ts +3 -0
  23. package/dist/src/interaction/featureAtPixelInteraction.js +3 -0
  24. package/dist/src/interaction/featureAtPixelInteraction.js.map +1 -1
  25. package/dist/src/interaction/featureProviderInteraction.d.ts +3 -0
  26. package/dist/src/interaction/featureProviderInteraction.js +3 -0
  27. package/dist/src/interaction/featureProviderInteraction.js.map +1 -1
  28. package/dist/src/interaction/interactionChain.d.ts +3 -0
  29. package/dist/src/interaction/interactionChain.js +3 -0
  30. package/dist/src/interaction/interactionChain.js.map +1 -1
  31. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js.map +1 -1
  32. package/dist/src/layer/cesium/openStreetMapCesiumImpl.d.ts +1 -1
  33. package/dist/src/layer/cesium/openStreetMapCesiumImpl.js +2 -2
  34. package/dist/src/layer/cesium/openStreetMapCesiumImpl.js.map +1 -1
  35. package/dist/src/layer/cesium/rasterLayerCesiumImpl.d.ts +1 -1
  36. package/dist/src/layer/cesium/rasterLayerCesiumImpl.js +2 -2
  37. package/dist/src/layer/cesium/rasterLayerCesiumImpl.js.map +1 -1
  38. package/dist/src/layer/cesium/singleImageCesiumImpl.d.ts +1 -1
  39. package/dist/src/layer/cesium/singleImageCesiumImpl.js +2 -3
  40. package/dist/src/layer/cesium/singleImageCesiumImpl.js.map +1 -1
  41. package/dist/src/layer/cesium/tmsCesiumImpl.d.ts +1 -1
  42. package/dist/src/layer/cesium/tmsCesiumImpl.js +2 -3
  43. package/dist/src/layer/cesium/tmsCesiumImpl.js.map +1 -1
  44. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.d.ts +1 -1
  45. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js +2 -3
  46. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js.map +1 -1
  47. package/dist/src/layer/cesium/wmsCesiumImpl.d.ts +1 -1
  48. package/dist/src/layer/cesium/wmsCesiumImpl.js +1 -1
  49. package/dist/src/layer/cesium/wmsCesiumImpl.js.map +1 -1
  50. package/dist/src/layer/cesium/wmtsCesiumImpl.d.ts +1 -1
  51. package/dist/src/layer/cesium/wmtsCesiumImpl.js +1 -1
  52. package/dist/src/layer/cesium/wmtsCesiumImpl.js.map +1 -1
  53. package/dist/src/layer/cesiumTilesetLayer.d.ts +1 -0
  54. package/dist/src/layer/cesiumTilesetLayer.js +1 -0
  55. package/dist/src/layer/cesiumTilesetLayer.js.map +1 -1
  56. package/dist/src/layer/czmlLayer.d.ts +3 -0
  57. package/dist/src/layer/czmlLayer.js +3 -0
  58. package/dist/src/layer/czmlLayer.js.map +1 -1
  59. package/dist/src/layer/dataSourceLayer.d.ts +1 -0
  60. package/dist/src/layer/dataSourceLayer.js +1 -0
  61. package/dist/src/layer/dataSourceLayer.js.map +1 -1
  62. package/dist/src/layer/featureLayer.d.ts +1 -0
  63. package/dist/src/layer/featureLayer.js +1 -0
  64. package/dist/src/layer/featureLayer.js.map +1 -1
  65. package/dist/src/layer/featureStoreLayer.d.ts +2 -0
  66. package/dist/src/layer/featureStoreLayer.js +2 -0
  67. package/dist/src/layer/featureStoreLayer.js.map +1 -1
  68. package/dist/src/layer/geojsonHelpers.js +0 -4
  69. package/dist/src/layer/geojsonHelpers.js.map +1 -1
  70. package/dist/src/layer/geojsonLayer.d.ts +3 -0
  71. package/dist/src/layer/geojsonLayer.js +3 -0
  72. package/dist/src/layer/geojsonLayer.js.map +1 -1
  73. package/dist/src/layer/layer.d.ts +11 -5
  74. package/dist/src/layer/layer.js +11 -8
  75. package/dist/src/layer/layer.js.map +1 -1
  76. package/dist/src/layer/layerSymbols.d.ts +3 -0
  77. package/dist/src/layer/layerSymbols.js +3 -0
  78. package/dist/src/layer/layerSymbols.js.map +1 -1
  79. package/dist/src/layer/openStreetMapLayer.d.ts +3 -0
  80. package/dist/src/layer/openStreetMapLayer.js +3 -0
  81. package/dist/src/layer/openStreetMapLayer.js.map +1 -1
  82. package/dist/src/layer/pointCloudLayer.d.ts +1 -0
  83. package/dist/src/layer/pointCloudLayer.js +1 -0
  84. package/dist/src/layer/pointCloudLayer.js.map +1 -1
  85. package/dist/src/layer/rasterLayer.d.ts +1 -0
  86. package/dist/src/layer/rasterLayer.js +1 -0
  87. package/dist/src/layer/rasterLayer.js.map +1 -1
  88. package/dist/src/layer/singleImageLayer.d.ts +1 -0
  89. package/dist/src/layer/singleImageLayer.js +1 -0
  90. package/dist/src/layer/singleImageLayer.js.map +1 -1
  91. package/dist/src/layer/terrainLayer.d.ts +3 -0
  92. package/dist/src/layer/terrainLayer.js +3 -0
  93. package/dist/src/layer/terrainLayer.js.map +1 -1
  94. package/dist/src/layer/tmsLayer.d.ts +3 -0
  95. package/dist/src/layer/tmsLayer.js +3 -0
  96. package/dist/src/layer/tmsLayer.js.map +1 -1
  97. package/dist/src/layer/vectorLayer.d.ts +1 -20
  98. package/dist/src/layer/vectorLayer.js +2 -31
  99. package/dist/src/layer/vectorLayer.js.map +1 -1
  100. package/dist/src/layer/vectorProperties.d.ts +12 -14
  101. package/dist/src/layer/vectorProperties.js +134 -36
  102. package/dist/src/layer/vectorProperties.js.map +1 -1
  103. package/dist/src/layer/vectorTileLayer.d.ts +1 -0
  104. package/dist/src/layer/vectorTileLayer.js +1 -0
  105. package/dist/src/layer/vectorTileLayer.js.map +1 -1
  106. package/dist/src/layer/wfsLayer.d.ts +8 -0
  107. package/dist/src/layer/wfsLayer.js +16 -3
  108. package/dist/src/layer/wfsLayer.js.map +1 -1
  109. package/dist/src/layer/wmsLayer.d.ts +1 -0
  110. package/dist/src/layer/wmsLayer.js +1 -0
  111. package/dist/src/layer/wmsLayer.js.map +1 -1
  112. package/dist/src/layer/wmtsLayer.d.ts +3 -0
  113. package/dist/src/layer/wmtsLayer.js +3 -0
  114. package/dist/src/layer/wmtsLayer.js.map +1 -1
  115. package/dist/src/map/baseOLMap.d.ts +3 -0
  116. package/dist/src/map/baseOLMap.js +3 -0
  117. package/dist/src/map/baseOLMap.js.map +1 -1
  118. package/dist/src/map/cesiumMap.d.ts +7 -0
  119. package/dist/src/map/cesiumMap.js +14 -0
  120. package/dist/src/map/cesiumMap.js.map +1 -1
  121. package/dist/src/map/obliqueMap.d.ts +3 -0
  122. package/dist/src/map/obliqueMap.js +3 -0
  123. package/dist/src/map/obliqueMap.js.map +1 -1
  124. package/dist/src/map/openlayersMap.d.ts +3 -0
  125. package/dist/src/map/openlayersMap.js +3 -0
  126. package/dist/src/map/openlayersMap.js.map +1 -1
  127. package/dist/src/map/vcsMap.d.ts +1 -0
  128. package/dist/src/map/vcsMap.js +1 -0
  129. package/dist/src/map/vcsMap.js.map +1 -1
  130. package/dist/src/oblique/obliqueCollection.d.ts +4 -3
  131. package/dist/src/oblique/obliqueCollection.js +9 -5
  132. package/dist/src/oblique/obliqueCollection.js.map +1 -1
  133. package/dist/src/style/declarativeStyleItem.d.ts +1 -0
  134. package/dist/src/style/declarativeStyleItem.js +2 -3
  135. package/dist/src/style/declarativeStyleItem.js.map +1 -1
  136. package/dist/src/style/styleHelpers.d.ts +29 -3
  137. package/dist/src/style/styleHelpers.js +152 -15
  138. package/dist/src/style/styleHelpers.js.map +1 -1
  139. package/dist/src/style/styleItem.d.ts +1 -0
  140. package/dist/src/style/styleItem.js +1 -0
  141. package/dist/src/style/styleItem.js.map +1 -1
  142. package/dist/src/style/vectorStyleItem.d.ts +4 -1
  143. package/dist/src/style/vectorStyleItem.js +13 -33
  144. package/dist/src/style/vectorStyleItem.js.map +1 -1
  145. package/dist/src/util/editor/createFeatureSession.d.ts +1 -0
  146. package/dist/src/util/editor/createFeatureSession.js +1 -0
  147. package/dist/src/util/editor/createFeatureSession.js.map +1 -1
  148. package/dist/src/util/editor/editFeaturesSession.d.ts +2 -1
  149. package/dist/src/util/editor/editFeaturesSession.js +19 -1
  150. package/dist/src/util/editor/editFeaturesSession.js.map +1 -1
  151. package/dist/src/util/editor/editGeometrySession.js +1 -0
  152. package/dist/src/util/editor/editGeometrySession.js.map +1 -1
  153. package/dist/src/util/editor/editorHelpers.d.ts +1 -1
  154. package/dist/src/util/editor/editorHelpers.js.map +1 -1
  155. package/dist/src/util/editor/interactions/mapInteractionController.d.ts +1 -0
  156. package/dist/src/util/editor/interactions/mapInteractionController.js +3 -0
  157. package/dist/src/util/editor/interactions/mapInteractionController.js.map +1 -1
  158. package/dist/src/util/editor/selectFeaturesSession.d.ts +2 -1
  159. package/dist/src/util/editor/selectFeaturesSession.js +2 -1
  160. package/dist/src/util/editor/selectFeaturesSession.js.map +1 -1
  161. package/dist/src/util/editor/transformation/transformationTypes.d.ts +2 -2
  162. package/dist/src/util/featureconverter/featureconverterHelper.js +16 -60
  163. package/dist/src/util/featureconverter/featureconverterHelper.js.map +1 -1
  164. package/dist/src/util/featureconverter/pointHelpers.js +4 -2
  165. package/dist/src/util/featureconverter/pointHelpers.js.map +1 -1
  166. package/dist/src/util/featureconverter/pointToCesium.js +6 -0
  167. package/dist/src/util/featureconverter/pointToCesium.js.map +1 -1
  168. package/dist/src/util/viewpoint.d.ts +1 -0
  169. package/dist/src/util/viewpoint.js +1 -0
  170. package/dist/src/util/viewpoint.js.map +1 -1
  171. package/dist/src/vcsApp.d.ts +16 -1
  172. package/dist/src/vcsApp.js +25 -11
  173. package/dist/src/vcsApp.js.map +1 -1
  174. package/dist/src/vcsModule.d.ts +7 -0
  175. package/dist/src/vcsModule.js +15 -5
  176. package/dist/src/vcsModule.js.map +1 -1
  177. package/index.ts +7 -4
  178. package/package.json +5 -5
  179. package/src/category/category.ts +3 -5
  180. package/src/category/categoryCollection.ts +3 -0
  181. package/src/featureProvider/abstractFeatureProvider.ts +1 -5
  182. package/src/featureProvider/featureProviderSymbols.ts +1 -6
  183. package/src/interaction/abstractInteraction.ts +1 -0
  184. package/src/interaction/coordinateAtPixel.ts +3 -0
  185. package/src/interaction/featureAtPixelInteraction.ts +3 -0
  186. package/src/interaction/featureProviderInteraction.ts +3 -0
  187. package/src/interaction/interactionChain.ts +3 -0
  188. package/src/layer/cesium/cesiumTilesetCesiumImpl.ts +1 -1
  189. package/src/layer/cesium/openStreetMapCesiumImpl.ts +9 -7
  190. package/src/layer/cesium/rasterLayerCesiumImpl.ts +3 -3
  191. package/src/layer/cesium/singleImageCesiumImpl.ts +6 -4
  192. package/src/layer/cesium/tmsCesiumImpl.ts +5 -3
  193. package/src/layer/cesium/vectorRasterTileCesiumImpl.ts +8 -7
  194. package/src/layer/cesium/wmsCesiumImpl.ts +4 -2
  195. package/src/layer/cesium/wmtsCesiumImpl.ts +4 -2
  196. package/src/layer/cesiumTilesetLayer.ts +1 -0
  197. package/src/layer/czmlLayer.ts +3 -0
  198. package/src/layer/dataSourceLayer.ts +1 -0
  199. package/src/layer/featureLayer.ts +1 -0
  200. package/src/layer/featureStoreLayer.ts +2 -0
  201. package/src/layer/geojsonHelpers.ts +0 -4
  202. package/src/layer/geojsonLayer.ts +3 -0
  203. package/src/layer/layer.ts +20 -9
  204. package/src/layer/layerSymbols.ts +3 -0
  205. package/src/layer/openStreetMapLayer.ts +3 -0
  206. package/src/layer/pointCloudLayer.ts +1 -0
  207. package/src/layer/rasterLayer.ts +1 -0
  208. package/src/layer/singleImageLayer.ts +1 -0
  209. package/src/layer/terrainLayer.ts +3 -0
  210. package/src/layer/tmsLayer.ts +3 -0
  211. package/src/layer/vectorLayer.ts +2 -42
  212. package/src/layer/vectorProperties.ts +191 -48
  213. package/src/layer/vectorTileLayer.ts +1 -0
  214. package/src/layer/wfsLayer.ts +24 -6
  215. package/src/layer/wmsLayer.ts +1 -0
  216. package/src/layer/wmtsLayer.ts +3 -0
  217. package/src/map/baseOLMap.ts +3 -0
  218. package/src/map/cesiumMap.ts +26 -0
  219. package/src/map/obliqueMap.ts +3 -0
  220. package/src/map/openlayersMap.ts +3 -0
  221. package/src/map/vcsMap.ts +1 -0
  222. package/src/oblique/obliqueCollection.ts +10 -9
  223. package/src/ol/geojson.d.ts +0 -6
  224. package/src/ol/ol.d.ts +1 -5
  225. package/src/style/declarativeStyleItem.ts +2 -3
  226. package/src/style/styleHelpers.ts +177 -17
  227. package/src/style/styleItem.ts +1 -0
  228. package/src/style/vectorStyleItem.ts +16 -32
  229. package/src/util/editor/createFeatureSession.ts +1 -0
  230. package/src/util/editor/editFeaturesSession.ts +24 -1
  231. package/src/util/editor/editGeometrySession.ts +1 -0
  232. package/src/util/editor/editorHelpers.ts +3 -1
  233. package/src/util/editor/interactions/mapInteractionController.ts +4 -0
  234. package/src/util/editor/selectFeaturesSession.ts +2 -1
  235. package/src/util/editor/transformation/transformationTypes.ts +2 -2
  236. package/src/util/featureconverter/featureconverterHelper.ts +25 -85
  237. package/src/util/featureconverter/pointHelpers.ts +6 -1
  238. package/src/util/featureconverter/pointToCesium.ts +7 -0
  239. package/src/util/viewpoint.ts +1 -0
  240. package/src/vcsApp.ts +38 -15
  241. package/src/vcsModule.ts +19 -5
@@ -9,6 +9,9 @@ function getLogger(): Logger {
9
9
  return getLoggerByName('CategoryCollection');
10
10
  }
11
11
 
12
+ /**
13
+ * @group Category
14
+ */
12
15
  class CategoryCollection extends IndexedCollection<Category> {
13
16
  private _app: VcsApp;
14
17
 
@@ -10,10 +10,7 @@ import { defaultVectorStyle } from '../style/vectorStyleItem.js';
10
10
  import VectorProperties, {
11
11
  type VectorPropertiesOptions,
12
12
  } from '../layer/vectorProperties.js';
13
- import {
14
- isProvidedFeature,
15
- showProvidedFeature,
16
- } from './featureProviderSymbols.js';
13
+ import { isProvidedFeature } from './featureProviderSymbols.js';
17
14
  import StyleItem, { type StyleItemOptions } from '../style/styleItem.js';
18
15
  import type VcsMap from '../map/vcsMap.js';
19
16
 
@@ -131,7 +128,6 @@ class AbstractFeatureProvider extends VcsObject {
131
128
  }
132
129
  feature[vcsLayerName] = this.layerName;
133
130
  feature[isProvidedFeature] = true;
134
- feature[showProvidedFeature] = this.showGeometry;
135
131
  Object.entries(this.vectorProperties.getValues()).forEach(
136
132
  ([key, value]) => {
137
133
  const olcsKey = `olcs_${key}`;
@@ -1,10 +1,5 @@
1
1
  /**
2
2
  * Added to ol.Feature, if they are not part of a layer, but provided by an {@link AbstractFeatureProvider}.
3
3
  */
4
+ // eslint-disable-next-line import/prefer-default-export
4
5
  export const isProvidedFeature: unique symbol = Symbol('isProvidedFeature');
5
-
6
- /**
7
- * A boolean value, indicating whether selecting should add the feature to the selected item layer
8
- * @deprecated
9
- */
10
- export const showProvidedFeature: unique symbol = Symbol('showProvidedFeature');
@@ -79,6 +79,7 @@ export type EventAfterEventHandler = Omit<
79
79
 
80
80
  /**
81
81
  * An abstract interface for all interactions
82
+ * @group Interaction
82
83
  */
83
84
  class AbstractInteraction {
84
85
  /**
@@ -18,6 +18,9 @@ import { transformFromImage } from '../oblique/helpers.js';
18
18
  import type CesiumMap from '../map/cesiumMap.js';
19
19
  import type ObliqueMap from '../map/obliqueMap.js';
20
20
 
21
+ /**
22
+ * @group Interaction
23
+ */
21
24
  class CoordinateAtPixel extends AbstractInteraction {
22
25
  private _scratchCartographic = new Cartographic();
23
26
 
@@ -26,6 +26,9 @@ 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
 
29
+ /**
30
+ * @group Interaction
31
+ */
29
32
  class FeatureAtPixelInteraction extends AbstractInteraction {
30
33
  private _pickPosition = EventType.CLICK;
31
34
 
@@ -9,6 +9,9 @@ import {
9
9
  PointerKeyType,
10
10
  } from './interactionType.js';
11
11
 
12
+ /**
13
+ * @group Interaction
14
+ */
12
15
  class FeatureProviderInteraction extends AbstractInteraction {
13
16
  constructor() {
14
17
  super(EventType.CLICK, ModificationKeyType.ALL, PointerKeyType.ALL);
@@ -7,6 +7,9 @@ import {
7
7
  PointerKeyType,
8
8
  } from './interactionType.js';
9
9
 
10
+ /**
11
+ * @group Interaction
12
+ */
10
13
  class InteractionChain extends AbstractInteraction {
11
14
  /**
12
15
  * The interactions to handle one after the other
@@ -129,7 +129,7 @@ class CesiumTilesetCesiumImpl
129
129
  this.tilesetProperties.forEach(({ key, value }) => {
130
130
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
131
131
  // @ts-ignore
132
- this.cesium3DTileset![key] = value;
132
+ this.cesium3DTileset[key] = value;
133
133
  });
134
134
  }
135
135
  this.cesium3DTileset[vcsLayerName] = this.name;
@@ -12,13 +12,15 @@ class OpenStreetMapCesiumImpl extends RasterLayerCesiumImpl {
12
12
  return 'OpenStreetMapCesiumImpl';
13
13
  }
14
14
 
15
- getCesiumLayer(): CesiumImageryLayer {
16
- return new CesiumImageryLayer(
17
- new OpenStreetMapImageryProvider({ maximumLevel: this.maxLevel }),
18
- {
19
- alpha: this.opacity,
20
- splitDirection: this.splitDirection,
21
- },
15
+ getCesiumLayer(): Promise<CesiumImageryLayer> {
16
+ return Promise.resolve(
17
+ new CesiumImageryLayer(
18
+ new OpenStreetMapImageryProvider({ maximumLevel: this.maxLevel }),
19
+ {
20
+ alpha: this.opacity,
21
+ splitDirection: this.splitDirection,
22
+ },
23
+ ),
22
24
  );
23
25
  }
24
26
  }
@@ -41,9 +41,9 @@ class RasterLayerCesiumImpl
41
41
  this.tilingSchema = options.tilingSchema;
42
42
  }
43
43
 
44
- initialize(): Promise<void> {
44
+ async initialize(): Promise<void> {
45
45
  if (!this.initialized) {
46
- this.cesiumLayer = this.getCesiumLayer();
46
+ this.cesiumLayer = await this.getCesiumLayer();
47
47
  this.cesiumLayer[vcsLayerName] = this.name;
48
48
  this.cesiumLayer.show = false;
49
49
  this.map.addImageryLayer(this.cesiumLayer);
@@ -59,7 +59,7 @@ class RasterLayerCesiumImpl
59
59
  }
60
60
 
61
61
  // eslint-disable-next-line class-methods-use-this
62
- getCesiumLayer(): ImageryLayer {
62
+ getCesiumLayer(): Promise<ImageryLayer> {
63
63
  throw new Error('implementation error');
64
64
  }
65
65
 
@@ -23,9 +23,8 @@ class SingleImageCesiumImpl extends RasterLayerCesiumImpl {
23
23
  this.credit = options.credit;
24
24
  }
25
25
 
26
- getCesiumLayer(): ImageryLayer {
27
- const options: SingleTileImageryProvider.ConstructorOptions = {
28
- url: this.url as string,
26
+ async getCesiumLayer(): Promise<ImageryLayer> {
27
+ const options: SingleTileImageryProvider.fromUrlOptions = {
29
28
  credit: this.credit,
30
29
  };
31
30
 
@@ -39,7 +38,10 @@ class SingleImageCesiumImpl extends RasterLayerCesiumImpl {
39
38
  );
40
39
  }
41
40
 
42
- const imageryProvider = new SingleTileImageryProvider(options);
41
+ const imageryProvider = await SingleTileImageryProvider.fromUrl(
42
+ this.url!,
43
+ options,
44
+ );
43
45
  const layerOptions = {
44
46
  rectangle: options.rectangle,
45
47
  alpha: this.opacity,
@@ -25,9 +25,8 @@ class TmsCesiumImpl extends RasterLayerCesiumImpl {
25
25
  this.format = options.format;
26
26
  }
27
27
 
28
- getCesiumLayer(): CesiumImageryLayer {
28
+ async getCesiumLayer(): Promise<CesiumImageryLayer> {
29
29
  const options: TileMapServiceImageryProvider.ConstructorOptions = {
30
- url: this.url,
31
30
  fileExtension: this.format,
32
31
  maximumLevel: this.maxLevel,
33
32
  minimumLevel: this.minLevel,
@@ -48,7 +47,10 @@ class TmsCesiumImpl extends RasterLayerCesiumImpl {
48
47
  if (this.tilingSchema === TilingScheme.GEOGRAPHIC) {
49
48
  options.tilingScheme = new GeographicTilingScheme();
50
49
  }
51
- const imageryProvider = new TileMapServiceImageryProvider(options);
50
+ const imageryProvider = await TileMapServiceImageryProvider.fromUrl(
51
+ this.url!,
52
+ options,
53
+ );
52
54
  const layerOptions = {
53
55
  alpha: this.opacity,
54
56
  splitDirection: this.splitDirection,
@@ -43,7 +43,7 @@ class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
43
43
  this.tileSize = options.tileSize;
44
44
  }
45
45
 
46
- getCesiumLayer(): CesiumImageryLayer {
46
+ getCesiumLayer(): Promise<CesiumImageryLayer> {
47
47
  this.imageryProvider = new VectorTileImageryProvider({
48
48
  tileProvider: this.tileProvider,
49
49
  tileSize: this.tileSize,
@@ -64,13 +64,14 @@ class VectorRasterTileCesiumImpl extends RasterLayerCesiumImpl {
64
64
  extent[3],
65
65
  );
66
66
  }
67
- const imageryLayer = new CesiumImageryLayer(
68
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
69
- // @ts-ignore
70
- this.imageryProvider,
71
- layerOptions,
67
+ return Promise.resolve(
68
+ new CesiumImageryLayer(
69
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
70
+ // @ts-ignore
71
+ this.imageryProvider,
72
+ layerOptions,
73
+ ),
72
74
  );
73
- return imageryLayer;
74
75
  }
75
76
 
76
77
  /**
@@ -32,7 +32,7 @@ class WmsCesiumImpl extends RasterLayerCesiumImpl {
32
32
  this.tileSize = options.tileSize;
33
33
  }
34
34
 
35
- getCesiumLayer(): CesiumImageryLayer {
35
+ getCesiumLayer(): Promise<CesiumImageryLayer> {
36
36
  const parameters = { ...this.parameters };
37
37
  if (this.highResolution) {
38
38
  parameters.width = String(this.tileSize[0] * 2);
@@ -68,7 +68,9 @@ class WmsCesiumImpl extends RasterLayerCesiumImpl {
68
68
  alpha: this.opacity,
69
69
  splitDirection: this.splitDirection,
70
70
  };
71
- return new CesiumImageryLayer(imageryProvider, layerOptions);
71
+ return Promise.resolve(
72
+ new CesiumImageryLayer(imageryProvider, layerOptions),
73
+ );
72
74
  }
73
75
  }
74
76
 
@@ -47,7 +47,7 @@ class WmtsCesiumImpl extends RasterLayerCesiumImpl {
47
47
  this.matrixIds = options.matrixIds;
48
48
  }
49
49
 
50
- getCesiumLayer(): CesiumImageryLayer {
50
+ getCesiumLayer(): Promise<CesiumImageryLayer> {
51
51
  const currentUrl = this.url as string;
52
52
  // This is a bug in Cesium, they cant cope with {Layer} placeholder..
53
53
  const url =
@@ -85,7 +85,9 @@ class WmtsCesiumImpl extends RasterLayerCesiumImpl {
85
85
  alpha: this.opacity,
86
86
  splitDirection: this.splitDirection,
87
87
  };
88
- return new CesiumImageryLayer(imageryProvider, layerOptions);
88
+ return Promise.resolve(
89
+ new CesiumImageryLayer(imageryProvider, layerOptions),
90
+ );
89
91
  }
90
92
  }
91
93
 
@@ -58,6 +58,7 @@ export type CesiumTilesetImplementationOptions =
58
58
 
59
59
  /**
60
60
  * represents a specific Building layer for cesium.
61
+ * @group Layer
61
62
  */
62
63
  class CesiumTilesetLayer extends FeatureLayer<CesiumTilesetCesiumImpl> {
63
64
  static get className(): string {
@@ -9,6 +9,9 @@ export type CzmlOptions = LayerOptions & {
9
9
  sourceUri?: string;
10
10
  };
11
11
 
12
+ /**
13
+ * @group Layer
14
+ */
12
15
  class CzmlLayer extends DataSourceLayer {
13
16
  static get className(): string {
14
17
  return 'CzmlLayer';
@@ -20,6 +20,7 @@ export type DataSourceImplementationOptions = LayerImplementationOptions & {
20
20
 
21
21
  /**
22
22
  * Represents a layer of Cesium.Entity
23
+ * @group Layer
23
24
  */
24
25
  class DataSourceLayer extends Layer<DataSourceCesiumImpl> {
25
26
  static get className(): string {
@@ -42,6 +42,7 @@ export interface FeatureLayerImplementation {
42
42
 
43
43
  /**
44
44
  * Base class for all layers representing features, e.g. VectorLayer, Buildings, POIs
45
+ * @group Layer
45
46
  */
46
47
  class FeatureLayer<
47
48
  T extends LayerImplementation<VcsMap> & FeatureLayerImplementation,
@@ -100,6 +100,8 @@ export const isTiledFeature: unique symbol = Symbol('isTiledFeature');
100
100
 
101
101
  /**
102
102
  * FeatureStoreLayer Layer
103
+ * @group Layer
104
+ * @experimental
103
105
  */
104
106
  class FeatureStoreLayer extends VectorLayer {
105
107
  static get className(): string {
@@ -265,9 +265,6 @@ function readFeature(
265
265
  }
266
266
 
267
267
  featureObj.vcsMeta = featureObj.vcsMeta || ({} as VcsMeta);
268
- if (featureObj.vcsStyle) {
269
- featureObj.vcsMeta.style = featureObj.vcsMeta.style || featureObj.vcsStyle;
270
- }
271
268
  const { properties } = featureObj;
272
269
  if (
273
270
  properties &&
@@ -352,7 +349,6 @@ export function parseGeoJSON(
352
349
  geoJSON.vcsMeta ||
353
350
  ({
354
351
  embeddedIcons: geoJSON.vcsEmbeddedIcons,
355
- style: geoJSON.vcsStyle,
356
352
  } as VcsMeta);
357
353
 
358
354
  let style;
@@ -16,6 +16,9 @@ export type GeoJSONOptions = VectorOptions & {
16
16
  */
17
17
  export const featureFromOptions = Symbol('featureFromOptions');
18
18
 
19
+ /**
20
+ * @group Layer
21
+ */
19
22
  class GeoJSONLayer extends VectorLayer {
20
23
  static get className(): string {
21
24
  return 'GeoJSONLayer';
@@ -2,7 +2,6 @@ import { check, checkMaybe } from '@vcsuite/check';
2
2
  import { parseBoolean, parseInteger } from '@vcsuite/parsers';
3
3
  import VcsObject, { VcsObjectOptions } from '../vcsObject.js';
4
4
  import Extent, { type ExtentOptions } from '../util/extent.js';
5
- import { vcsLayerName } from './layerSymbols.js';
6
5
  import LayerState from './layerState.js';
7
6
  import VcsEvent from '../vcsEvent.js';
8
7
  import { layerClassRegistry } from '../classRegistry.js';
@@ -45,6 +44,12 @@ export type LayerOptions = VcsObjectOptions & {
45
44
  */
46
45
  hiddenObjectIds?: string[];
47
46
  copyright?: CopyrightOptions;
47
+
48
+ /**
49
+ * Optional Id to synchronize with the vcPublisher Datasources. This can also be used to track a connection
50
+ * to other sources of data.
51
+ */
52
+ datasourceId?: string;
48
53
  };
49
54
 
50
55
  export type LayerImplementationOptions = {
@@ -56,6 +61,7 @@ export type LayerImplementationOptions = {
56
61
  * Abstract base class for Layers.
57
62
  * To create a layer Implementation the function `createImplementationsForMap` has to be implemented.
58
63
  * To receive implementation options, implement `geImplementationOptions`
64
+ * @group Layer
59
65
  */
60
66
  class Layer<
61
67
  I extends LayerImplementation<VcsMap> = LayerImplementation<VcsMap>,
@@ -64,14 +70,6 @@ class Layer<
64
70
  return 'Layer';
65
71
  }
66
72
 
67
- /**
68
- * Symbol to declare a layers name on its visualizations, e.g. ol.layer.Layer, Cesium.Cesium3DTileset
69
- * @deprecated
70
- */
71
- static get vcsLayerNameSymbol(): symbol {
72
- return vcsLayerName;
73
- }
74
-
75
73
  static getDefaultOptions(): LayerOptions {
76
74
  return {
77
75
  name: undefined,
@@ -83,6 +81,7 @@ class Layer<
83
81
  url: undefined,
84
82
  hiddenObjectIds: [],
85
83
  copyright: undefined,
84
+ datasourceId: undefined,
86
85
  };
87
86
  }
88
87
 
@@ -146,6 +145,12 @@ class Layer<
146
145
 
147
146
  private _locale: string;
148
147
 
148
+ /**
149
+ * Optional Id to synchronize with the vcPublisher Datasources. This can also be used to track a connection
150
+ * to other sources of data.
151
+ */
152
+ datasourceId?: string;
153
+
149
154
  constructor(options: LayerOptions) {
150
155
  super(options);
151
156
  const defaultOptions = Layer.getDefaultOptions();
@@ -201,6 +206,8 @@ class Layer<
201
206
  this.featureProvider = undefined;
202
207
 
203
208
  this._locale = 'en';
209
+
210
+ this.datasourceId = options.datasourceId || defaultOptions.datasourceId;
204
211
  }
205
212
 
206
213
  /**
@@ -641,6 +648,10 @@ class Layer<
641
648
  config.copyright = { ...this.copyright };
642
649
  }
643
650
 
651
+ if (this.datasourceId !== defaultOptions.datasourceId) {
652
+ config.datasourceId = this.datasourceId;
653
+ }
654
+
644
655
  return config;
645
656
  }
646
657
 
@@ -1,2 +1,5 @@
1
+ /**
2
+ * Symbol to declare a layers name on its visualizations, e.g. ol.layer.Layer, Cesium.Cesium3DTileset*
3
+ */
1
4
  /* eslint-disable import/prefer-default-export */
2
5
  export const vcsLayerName: unique symbol = Symbol('vcsLayerName');
@@ -31,6 +31,9 @@ export type OpenStreetMapOptions = LayerOptions & {
31
31
  maxLevel?: number;
32
32
  };
33
33
 
34
+ /**
35
+ * @group Layer
36
+ */
34
37
  class OpenStreetMapLayer
35
38
  extends Layer<OpenStreetMapCesiumImpl | OpenStreetMapOpenlayersImpl>
36
39
  implements SplitLayer
@@ -29,6 +29,7 @@ export const defaultPointCloudStyle = new DeclarativeStyleItem({});
29
29
  * <li>url: string: url to the p3dm dataset
30
30
  * <li>pointSize: number: size of the points to display
31
31
  * </ul>
32
+ * @group Layer
32
33
  */
33
34
  class PointCloudLayer extends CesiumTilesetLayer {
34
35
  static get className(): string {
@@ -149,6 +149,7 @@ export function calculateMinLevel(
149
149
  /**
150
150
  * This abstract class allows for automatic loading scheme determination
151
151
  * for raster layers
152
+ * @group Layer
152
153
  */
153
154
  class RasterLayer<
154
155
  I extends LayerImplementation<VcsMap> & RasterLayerImplementation,
@@ -23,6 +23,7 @@ export type SingleImageImplementationOptions =
23
23
 
24
24
  /**
25
25
  * Image layer for Cesium and OpenlayersMap
26
+ * @group Layer
26
27
  */
27
28
  class SingleImageLayer extends RasterLayer<
28
29
  SingleImageCesiumImpl | SingleImageOpenlayersImpl
@@ -20,6 +20,9 @@ export type TerrainImplementationOptions = LayerImplementationOptions & {
20
20
  requestWaterMask: boolean;
21
21
  };
22
22
 
23
+ /**
24
+ * @group Layer
25
+ */
23
26
  class TerrainLayer extends Layer<TerrainCesiumImpl> {
24
27
  static get className(): string {
25
28
  return 'TerrainLayer';
@@ -21,6 +21,9 @@ export type TMSImplementationOptions = RasterLayerImplementationOptions & {
21
21
  tileSize: Size;
22
22
  };
23
23
 
24
+ /**
25
+ * @group Layer
26
+ */
24
27
  class TMSLayer extends RasterLayer<TmsCesiumImpl | TmsOpenlayersImpl> {
25
28
  static get className(): string {
26
29
  return 'TMSLayer';
@@ -33,13 +33,7 @@ import DeclarativeStyleItem, {
33
33
  DeclarativeStyleItemOptions,
34
34
  } from '../style/declarativeStyleItem.js';
35
35
  import writeStyle from '../style/writeStyle.js';
36
- import {
37
- alreadyTransformedToImage,
38
- alreadyTransformedToMercator,
39
- doNotTransform,
40
- obliqueGeometry,
41
- originalFeatureSymbol,
42
- } from './vectorSymbols.js';
36
+ import { alreadyTransformedToMercator } from './vectorSymbols.js';
43
37
  import Extent from '../util/extent.js';
44
38
  import VectorProperties, {
45
39
  VcsMeta,
@@ -144,6 +138,7 @@ export type VectorImplementationOptions = FeatureLayerImplementationOptions & {
144
138
 
145
139
  /**
146
140
  * VectorLayer Layer for OpenlayersMap, Cesium and ObliqueMap
141
+ * @group Layer
147
142
  */
148
143
  class VectorLayer
149
144
  extends FeatureLayer<
@@ -158,41 +153,6 @@ class VectorLayer
158
153
  return 'VectorLayer';
159
154
  }
160
155
 
161
- /**
162
- * @deprecated
163
- */
164
- static get alreadyTransformedToMercator(): symbol {
165
- return alreadyTransformedToMercator;
166
- }
167
-
168
- /**
169
- * @deprecated
170
- */
171
- static get alreadyTransformedToImage(): symbol {
172
- return alreadyTransformedToImage;
173
- }
174
-
175
- /**
176
- * @deprecated
177
- */
178
- static get obliqueGeometry(): symbol {
179
- return obliqueGeometry;
180
- }
181
-
182
- /**
183
- * @deprecated
184
- */
185
- static get doNotTransform(): symbol {
186
- return doNotTransform;
187
- }
188
-
189
- /**
190
- * @deprecated
191
- */
192
- static get originalFeatureSymbol(): symbol {
193
- return originalFeatureSymbol;
194
- }
195
-
196
156
  static getDefaultOptions(): VectorOptions {
197
157
  return {
198
158
  ...Layer.getDefaultOptions(),