@vcmap/core 6.2.4 → 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 (378) hide show
  1. package/dist/cesium.d.ts +12 -0
  2. package/dist/index.d.ts +13 -3
  3. package/dist/index.js +11 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/ol.d.ts +13 -2
  6. package/dist/src/category/category.d.ts +1 -1
  7. package/dist/src/category/category.js +3 -4
  8. package/dist/src/category/category.js.map +1 -1
  9. package/dist/src/cesium/cesium3DTileFeature.d.ts +1 -0
  10. package/dist/src/cesium/cesium3DTileFeature.js +14 -3
  11. package/dist/src/cesium/cesium3DTileFeature.js.map +1 -1
  12. package/dist/src/cesium/cesium3DTilePointFeature.js +2 -1
  13. package/dist/src/cesium/cesium3DTilePointFeature.js.map +1 -1
  14. package/dist/src/classRegistry.d.ts +7 -1
  15. package/dist/src/classRegistry.js.map +1 -1
  16. package/dist/src/featureProvider/abstractAttributeProvider.d.ts +62 -0
  17. package/dist/src/featureProvider/abstractAttributeProvider.js +129 -0
  18. package/dist/src/featureProvider/abstractAttributeProvider.js.map +1 -0
  19. package/dist/src/featureProvider/abstractFeatureProvider.d.ts +10 -19
  20. package/dist/src/featureProvider/abstractFeatureProvider.js +10 -42
  21. package/dist/src/featureProvider/abstractFeatureProvider.js.map +1 -1
  22. package/dist/src/featureProvider/compositeFeatureProvider.d.ts +27 -0
  23. package/dist/src/featureProvider/compositeFeatureProvider.js +53 -0
  24. package/dist/src/featureProvider/compositeFeatureProvider.js.map +1 -0
  25. package/dist/src/featureProvider/csvAttributeProvider.d.ts +41 -0
  26. package/dist/src/featureProvider/csvAttributeProvider.js +126 -0
  27. package/dist/src/featureProvider/csvAttributeProvider.js.map +1 -0
  28. package/dist/src/featureProvider/featureProviderFactory.d.ts +3 -0
  29. package/dist/src/featureProvider/featureProviderFactory.js +17 -0
  30. package/dist/src/featureProvider/featureProviderFactory.js.map +1 -0
  31. package/dist/src/featureProvider/i3sAttributeProvider.d.ts +7 -0
  32. package/dist/src/featureProvider/i3sAttributeProvider.js +43 -0
  33. package/dist/src/featureProvider/i3sAttributeProvider.js.map +1 -0
  34. package/dist/src/featureProvider/jsonAttributeProvider.d.ts +26 -0
  35. package/dist/src/featureProvider/jsonAttributeProvider.js +73 -0
  36. package/dist/src/featureProvider/jsonAttributeProvider.js.map +1 -0
  37. package/dist/src/featureProvider/tileProviderFeatureProvider.d.ts +4 -6
  38. package/dist/src/featureProvider/tileProviderFeatureProvider.js +9 -11
  39. package/dist/src/featureProvider/tileProviderFeatureProvider.js.map +1 -1
  40. package/dist/src/featureProvider/urlIdAttributeProvider.d.ts +28 -0
  41. package/dist/src/featureProvider/urlIdAttributeProvider.js +50 -0
  42. package/dist/src/featureProvider/urlIdAttributeProvider.js.map +1 -0
  43. package/dist/src/featureProvider/wmsFeatureProvider.d.ts +13 -4
  44. package/dist/src/featureProvider/wmsFeatureProvider.js +19 -9
  45. package/dist/src/featureProvider/wmsFeatureProvider.js.map +1 -1
  46. package/dist/src/interaction/coordinateAtPixel.js +4 -6
  47. package/dist/src/interaction/coordinateAtPixel.js.map +1 -1
  48. package/dist/src/interaction/ensurePositionInteraction.d.ts +14 -0
  49. package/dist/src/interaction/ensurePositionInteraction.js +42 -0
  50. package/dist/src/interaction/ensurePositionInteraction.js.map +1 -0
  51. package/dist/src/interaction/eventHandler.d.ts +3 -0
  52. package/dist/src/interaction/eventHandler.js +10 -1
  53. package/dist/src/interaction/eventHandler.js.map +1 -1
  54. package/dist/src/interaction/featureAtPixelInteraction.d.ts +15 -3
  55. package/dist/src/interaction/featureAtPixelInteraction.js +70 -18
  56. package/dist/src/interaction/featureAtPixelInteraction.js.map +1 -1
  57. package/dist/src/interaction/featureProviderInteraction.js +42 -26
  58. package/dist/src/interaction/featureProviderInteraction.js.map +1 -1
  59. package/dist/src/interaction/panoramaImageSelection.js +2 -2
  60. package/dist/src/interaction/panoramaImageSelection.js.map +1 -1
  61. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.d.ts +17 -9
  62. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js +244 -165
  63. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js.map +1 -1
  64. package/dist/src/layer/cesium/i3sCesiumImpl.d.ts +33 -0
  65. package/dist/src/layer/cesium/i3sCesiumImpl.js +107 -0
  66. package/dist/src/layer/cesium/i3sCesiumImpl.js.map +1 -0
  67. package/dist/src/layer/cesium/rasterLayerCesiumImpl.d.ts +3 -3
  68. package/dist/src/layer/cesium/rasterLayerCesiumImpl.js.map +1 -1
  69. package/dist/src/layer/cesium/terrainCesiumImpl.d.ts +3 -3
  70. package/dist/src/layer/cesium/terrainCesiumImpl.js.map +1 -1
  71. package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js +2 -1
  72. package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js.map +1 -1
  73. package/dist/src/layer/cesium/vectorContext.js +1 -1
  74. package/dist/src/layer/cesium/vectorContext.js.map +1 -1
  75. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js +7 -6
  76. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js.map +1 -1
  77. package/dist/src/layer/cesium/vectorTileImageryProvider.js +2 -2
  78. package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +1 -1
  79. package/dist/src/layer/cesiumTilesetLayer.d.ts +10 -1
  80. package/dist/src/layer/cesiumTilesetLayer.js +33 -8
  81. package/dist/src/layer/cesiumTilesetLayer.js.map +1 -1
  82. package/dist/src/layer/cogLayer.d.ts +1 -1
  83. package/dist/src/layer/cogLayer.js +3 -4
  84. package/dist/src/layer/cogLayer.js.map +1 -1
  85. package/dist/src/layer/czmlLayer.d.ts +1 -1
  86. package/dist/src/layer/czmlLayer.js +4 -4
  87. package/dist/src/layer/czmlLayer.js.map +1 -1
  88. package/dist/src/layer/featureLayer.d.ts +1 -6
  89. package/dist/src/layer/featureLayer.js +3 -10
  90. package/dist/src/layer/featureLayer.js.map +1 -1
  91. package/dist/src/layer/featureStoreLayer.d.ts +3 -2
  92. package/dist/src/layer/featureStoreLayer.js +5 -5
  93. package/dist/src/layer/featureStoreLayer.js.map +1 -1
  94. package/dist/src/layer/flatGeobufLayer.d.ts +2 -0
  95. package/dist/src/layer/flatGeobufLayer.js +8 -0
  96. package/dist/src/layer/flatGeobufLayer.js.map +1 -1
  97. package/dist/src/layer/geojsonLayer.d.ts +1 -1
  98. package/dist/src/layer/geojsonLayer.js +5 -12
  99. package/dist/src/layer/geojsonLayer.js.map +1 -1
  100. package/dist/src/layer/i3sLayer.d.ts +80 -0
  101. package/dist/src/layer/i3sLayer.js +242 -0
  102. package/dist/src/layer/i3sLayer.js.map +1 -0
  103. package/dist/src/layer/layer.d.ts +29 -10
  104. package/dist/src/layer/layer.js +114 -34
  105. package/dist/src/layer/layer.js.map +1 -1
  106. package/dist/src/layer/layerSymbols.d.ts +4 -0
  107. package/dist/src/layer/layerSymbols.js +4 -0
  108. package/dist/src/layer/layerSymbols.js.map +1 -1
  109. package/dist/src/layer/openStreetMapLayer.d.ts +1 -1
  110. package/dist/src/layer/openStreetMapLayer.js +11 -6
  111. package/dist/src/layer/openStreetMapLayer.js.map +1 -1
  112. package/dist/src/layer/panorama/vectorPanoramaImpl.d.ts +38 -0
  113. package/dist/src/layer/panorama/vectorPanoramaImpl.js +164 -0
  114. package/dist/src/layer/panorama/vectorPanoramaImpl.js.map +1 -0
  115. package/dist/src/layer/panoramaDatasetLayer.d.ts +7 -3
  116. package/dist/src/layer/panoramaDatasetLayer.js +46 -20
  117. package/dist/src/layer/panoramaDatasetLayer.js.map +1 -1
  118. package/dist/src/layer/pointCloudLayer.d.ts +1 -5
  119. package/dist/src/layer/pointCloudLayer.js +3 -15
  120. package/dist/src/layer/pointCloudLayer.js.map +1 -1
  121. package/dist/src/layer/rasterLayer.d.ts +1 -1
  122. package/dist/src/layer/rasterLayer.js +4 -4
  123. package/dist/src/layer/rasterLayer.js.map +1 -1
  124. package/dist/src/layer/singleImageLayer.d.ts +1 -1
  125. package/dist/src/layer/singleImageLayer.js +3 -3
  126. package/dist/src/layer/singleImageLayer.js.map +1 -1
  127. package/dist/src/layer/terrainLayer.d.ts +1 -1
  128. package/dist/src/layer/terrainLayer.js +8 -6
  129. package/dist/src/layer/terrainLayer.js.map +1 -1
  130. package/dist/src/layer/tileProvider/flatGeobufTileProvider.d.ts +1 -1
  131. package/dist/src/layer/tileProvider/flatGeobufTileProvider.js +7 -5
  132. package/dist/src/layer/tileProvider/flatGeobufTileProvider.js.map +1 -1
  133. package/dist/src/layer/tileProvider/mvtTileProvider.d.ts +1 -1
  134. package/dist/src/layer/tileProvider/mvtTileProvider.js +6 -5
  135. package/dist/src/layer/tileProvider/mvtTileProvider.js.map +1 -1
  136. package/dist/src/layer/tileProvider/staticFeatureTileProvider.d.ts +1 -1
  137. package/dist/src/layer/tileProvider/staticFeatureTileProvider.js +3 -3
  138. package/dist/src/layer/tileProvider/staticFeatureTileProvider.js.map +1 -1
  139. package/dist/src/layer/tileProvider/staticGeojsonTileProvider.d.ts +1 -1
  140. package/dist/src/layer/tileProvider/staticGeojsonTileProvider.js +7 -4
  141. package/dist/src/layer/tileProvider/staticGeojsonTileProvider.js.map +1 -1
  142. package/dist/src/layer/tileProvider/tileProvider.d.ts +7 -1
  143. package/dist/src/layer/tileProvider/tileProvider.js +15 -5
  144. package/dist/src/layer/tileProvider/tileProvider.js.map +1 -1
  145. package/dist/src/layer/tileProvider/urlTemplateTileProvider.d.ts +1 -1
  146. package/dist/src/layer/tileProvider/urlTemplateTileProvider.js +3 -3
  147. package/dist/src/layer/tileProvider/urlTemplateTileProvider.js.map +1 -1
  148. package/dist/src/layer/tmsLayer.d.ts +1 -1
  149. package/dist/src/layer/tmsLayer.js +3 -10
  150. package/dist/src/layer/tmsLayer.js.map +1 -1
  151. package/dist/src/layer/vectorLayer.d.ts +11 -5
  152. package/dist/src/layer/vectorLayer.js +21 -10
  153. package/dist/src/layer/vectorLayer.js.map +1 -1
  154. package/dist/src/layer/vectorProperties.js +10 -1
  155. package/dist/src/layer/vectorProperties.js.map +1 -1
  156. package/dist/src/layer/vectorTileLayer.d.ts +14 -5
  157. package/dist/src/layer/vectorTileLayer.js +82 -31
  158. package/dist/src/layer/vectorTileLayer.js.map +1 -1
  159. package/dist/src/layer/wfsLayer.d.ts +1 -1
  160. package/dist/src/layer/wfsLayer.js +5 -4
  161. package/dist/src/layer/wfsLayer.js.map +1 -1
  162. package/dist/src/layer/wmsLayer.d.ts +4 -1
  163. package/dist/src/layer/wmsLayer.js +65 -36
  164. package/dist/src/layer/wmsLayer.js.map +1 -1
  165. package/dist/src/layer/wmtsLayer.d.ts +1 -1
  166. package/dist/src/layer/wmtsLayer.js +3 -10
  167. package/dist/src/layer/wmtsLayer.js.map +1 -1
  168. package/dist/src/map/baseCesiumMap.d.ts +69 -0
  169. package/dist/src/map/baseCesiumMap.js +393 -0
  170. package/dist/src/map/baseCesiumMap.js.map +1 -0
  171. package/dist/src/map/cesiumMap.d.ts +6 -98
  172. package/dist/src/map/cesiumMap.js +29 -266
  173. package/dist/src/map/cesiumMap.js.map +1 -1
  174. package/dist/src/map/obliqueMap.d.ts +1 -1
  175. package/dist/src/map/obliqueMap.js +14 -8
  176. package/dist/src/map/obliqueMap.js.map +1 -1
  177. package/dist/src/map/openlayersMap.d.ts +1 -1
  178. package/dist/src/map/openlayersMap.js +3 -4
  179. package/dist/src/map/openlayersMap.js.map +1 -1
  180. package/dist/src/map/panoramaMap.d.ts +17 -29
  181. package/dist/src/map/panoramaMap.js +56 -100
  182. package/dist/src/map/panoramaMap.js.map +1 -1
  183. package/dist/src/map/vcsMap.d.ts +15 -2
  184. package/dist/src/map/vcsMap.js +26 -3
  185. package/dist/src/map/vcsMap.js.map +1 -1
  186. package/dist/src/oblique/obliqueCollection.d.ts +1 -1
  187. package/dist/src/oblique/obliqueCollection.js +3 -4
  188. package/dist/src/oblique/obliqueCollection.js.map +1 -1
  189. package/dist/src/panorama/panoramaCameraController.d.ts +4 -0
  190. package/dist/src/panorama/panoramaCameraController.js +8 -0
  191. package/dist/src/panorama/panoramaCameraController.js.map +1 -1
  192. package/dist/src/panorama/panoramaImage.d.ts +10 -1
  193. package/dist/src/panorama/panoramaImage.js +15 -9
  194. package/dist/src/panorama/panoramaImage.js.map +1 -1
  195. package/dist/src/panorama/panoramaImageView.d.ts +6 -1
  196. package/dist/src/panorama/panoramaImageView.js +11 -2
  197. package/dist/src/panorama/panoramaImageView.js.map +1 -1
  198. package/dist/src/panorama/panoramaTileMaterial.d.ts +6 -0
  199. package/dist/src/panorama/panoramaTileMaterial.js +14 -0
  200. package/dist/src/panorama/panoramaTileMaterial.js.map +1 -1
  201. package/dist/src/panorama/panoramaTileMaterialFS.shader.d.ts +1 -1
  202. package/dist/src/panorama/panoramaTileMaterialFS.shader.js +16 -1
  203. package/dist/src/panorama/panoramaTileMaterialFS.shader.js.map +1 -1
  204. package/dist/src/panorama/panoramaTilePrimitiveCollection.d.ts +6 -0
  205. package/dist/src/panorama/panoramaTilePrimitiveCollection.js +28 -0
  206. package/dist/src/panorama/panoramaTilePrimitiveCollection.js.map +1 -1
  207. package/dist/src/style/declarativeStyleItem.js +7 -8
  208. package/dist/src/style/declarativeStyleItem.js.map +1 -1
  209. package/dist/src/util/clipping/clippingPolygonObject.d.ts +1 -1
  210. package/dist/src/util/clipping/clippingPolygonObject.js +3 -4
  211. package/dist/src/util/clipping/clippingPolygonObject.js.map +1 -1
  212. package/dist/src/util/displayQuality/displayQuality.js +4 -4
  213. package/dist/src/util/displayQuality/displayQuality.js.map +1 -1
  214. package/dist/src/util/editor/createFeatureSession.js +3 -1
  215. package/dist/src/util/editor/createFeatureSession.js.map +1 -1
  216. package/dist/src/util/editor/editFeaturesSession.js +9 -2
  217. package/dist/src/util/editor/editFeaturesSession.js.map +1 -1
  218. package/dist/src/util/editor/editGeometrySession.js +3 -1
  219. package/dist/src/util/editor/editGeometrySession.js.map +1 -1
  220. package/dist/src/util/editor/editorSessionHelpers.d.ts +3 -3
  221. package/dist/src/util/editor/editorSessionHelpers.js +4 -2
  222. package/dist/src/util/editor/editorSessionHelpers.js.map +1 -1
  223. package/dist/src/util/editor/interactions/creationSnapping.js +4 -1
  224. package/dist/src/util/editor/interactions/creationSnapping.js.map +1 -1
  225. package/dist/src/util/editor/interactions/ensureHandlerSelectionInteraction.js +2 -2
  226. package/dist/src/util/editor/interactions/ensureHandlerSelectionInteraction.js.map +1 -1
  227. package/dist/src/util/editor/interactions/layerSnapping.js +4 -1
  228. package/dist/src/util/editor/interactions/layerSnapping.js.map +1 -1
  229. package/dist/src/util/editor/interactions/mapInteractionController.js +12 -1
  230. package/dist/src/util/editor/interactions/mapInteractionController.js.map +1 -1
  231. package/dist/src/util/editor/interactions/translationSnapping.js +4 -2
  232. package/dist/src/util/editor/interactions/translationSnapping.js.map +1 -1
  233. package/dist/src/util/editor/selectFeaturesSession.js +1 -1
  234. package/dist/src/util/editor/selectFeaturesSession.js.map +1 -1
  235. package/dist/src/util/editor/transformation/create3DHandlers.d.ts +2 -2
  236. package/dist/src/util/editor/transformation/create3DHandlers.js.map +1 -1
  237. package/dist/src/util/editor/transformation/transformationHandler.js +5 -2
  238. package/dist/src/util/editor/transformation/transformationHandler.js.map +1 -1
  239. package/dist/src/util/editor/transformation/translateInteraction.js +2 -2
  240. package/dist/src/util/editor/transformation/translateInteraction.js.map +1 -1
  241. package/dist/src/util/fetch.d.ts +7 -0
  242. package/dist/src/util/fetch.js +7 -0
  243. package/dist/src/util/fetch.js.map +1 -1
  244. package/dist/src/util/flight/flightInstance.d.ts +1 -1
  245. package/dist/src/util/flight/flightInstance.js +3 -4
  246. package/dist/src/util/flight/flightInstance.js.map +1 -1
  247. package/dist/src/util/mapCollection.d.ts +5 -0
  248. package/dist/src/util/mapCollection.js +14 -0
  249. package/dist/src/util/mapCollection.js.map +1 -1
  250. package/dist/src/util/renderScreenshot.js +2 -3
  251. package/dist/src/util/renderScreenshot.js.map +1 -1
  252. package/dist/src/util/viewpoint.js +1 -1
  253. package/dist/src/util/viewpoint.js.map +1 -1
  254. package/dist/src/vcsApp.d.ts +2 -3
  255. package/dist/src/vcsApp.js.map +1 -1
  256. package/dist/src/vcsModuleHelpers.d.ts +5 -2
  257. package/dist/src/vcsModuleHelpers.js +27 -1
  258. package/dist/src/vcsModuleHelpers.js.map +1 -1
  259. package/dist/src/vcsObject.d.ts +2 -1
  260. package/dist/src/vcsObject.js +9 -1
  261. package/dist/src/vcsObject.js.map +1 -1
  262. package/dist/src/vectorCluster/vectorClusterGroup.d.ts +1 -1
  263. package/dist/src/vectorCluster/vectorClusterGroup.js +3 -4
  264. package/dist/src/vectorCluster/vectorClusterGroup.js.map +1 -1
  265. package/dist/src/vectorCluster/vectorClusterStyleItem.d.ts +1 -1
  266. package/dist/src/vectorCluster/vectorClusterStyleItem.js +3 -4
  267. package/dist/src/vectorCluster/vectorClusterStyleItem.js.map +1 -1
  268. package/dist/tests/unit/helpers/cesiumHelpers.d.ts +11 -1
  269. package/dist/tests/unit/helpers/cesiumHelpers.js +26 -3
  270. package/dist/tests/unit/helpers/cesiumHelpers.js.map +1 -1
  271. package/dist/tests/unit/helpers/panoramaHelpers.js +1 -1
  272. package/dist/tests/unit/helpers/panoramaHelpers.js.map +1 -1
  273. package/index.ts +30 -5
  274. package/package.json +3 -3
  275. package/src/category/category.ts +3 -4
  276. package/src/cesium/cesium.d.ts +12 -0
  277. package/src/cesium/cesium3DTileFeature.ts +23 -3
  278. package/src/cesium/cesium3DTilePointFeature.ts +3 -1
  279. package/src/classRegistry.ts +8 -3
  280. package/src/featureProvider/abstractAttributeProvider.ts +201 -0
  281. package/src/featureProvider/abstractFeatureProvider.ts +32 -51
  282. package/src/featureProvider/compositeFeatureProvider.ts +103 -0
  283. package/src/featureProvider/csvAttributeProvider.ts +186 -0
  284. package/src/featureProvider/featureProviderFactory.ts +31 -0
  285. package/src/featureProvider/i3sAttributeProvider.ts +60 -0
  286. package/src/featureProvider/jsonAttributeProvider.ts +109 -0
  287. package/src/featureProvider/tileProviderFeatureProvider.ts +13 -14
  288. package/src/featureProvider/urlIdAttributeProvider.ts +82 -0
  289. package/src/featureProvider/wmsFeatureProvider.ts +31 -10
  290. package/src/global.d.ts +2 -0
  291. package/src/interaction/coordinateAtPixel.ts +4 -6
  292. package/src/interaction/ensurePositionInteraction.ts +50 -0
  293. package/src/interaction/eventHandler.ts +12 -1
  294. package/src/interaction/featureAtPixelInteraction.ts +92 -32
  295. package/src/interaction/featureProviderInteraction.ts +59 -38
  296. package/src/interaction/panoramaImageSelection.ts +4 -2
  297. package/src/layer/cesium/cesiumTilesetCesiumImpl.ts +297 -197
  298. package/src/layer/cesium/i3sCesiumImpl.ts +141 -0
  299. package/src/layer/cesium/rasterLayerCesiumImpl.ts +3 -3
  300. package/src/layer/cesium/terrainCesiumImpl.ts +3 -3
  301. package/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.ts +4 -3
  302. package/src/layer/cesium/vectorContext.ts +1 -1
  303. package/src/layer/cesium/vectorRasterTileCesiumImpl.ts +7 -6
  304. package/src/layer/cesium/vectorTileImageryProvider.ts +2 -2
  305. package/src/layer/cesiumTilesetLayer.ts +60 -8
  306. package/src/layer/cogLayer.ts +5 -5
  307. package/src/layer/czmlLayer.ts +4 -4
  308. package/src/layer/featureLayer.ts +5 -16
  309. package/src/layer/featureStoreLayer.ts +11 -5
  310. package/src/layer/flatGeobufLayer.ts +12 -0
  311. package/src/layer/geojsonLayer.ts +5 -12
  312. package/src/layer/i3sLayer.ts +343 -0
  313. package/src/layer/layer.ts +178 -39
  314. package/src/layer/layerSymbols.ts +5 -0
  315. package/src/layer/openStreetMapLayer.ts +13 -6
  316. package/src/layer/panorama/vectorPanoramaImpl.ts +238 -0
  317. package/src/layer/panoramaDatasetLayer.ts +69 -23
  318. package/src/layer/pointCloudLayer.ts +5 -20
  319. package/src/layer/rasterLayer.ts +4 -4
  320. package/src/layer/singleImageLayer.ts +5 -3
  321. package/src/layer/terrainLayer.ts +9 -6
  322. package/src/layer/tileProvider/flatGeobufTileProvider.ts +9 -5
  323. package/src/layer/tileProvider/mvtTileProvider.ts +10 -5
  324. package/src/layer/tileProvider/staticFeatureTileProvider.ts +5 -3
  325. package/src/layer/tileProvider/staticGeojsonTileProvider.ts +11 -4
  326. package/src/layer/tileProvider/tileProvider.ts +18 -5
  327. package/src/layer/tileProvider/urlTemplateTileProvider.ts +7 -3
  328. package/src/layer/tmsLayer.ts +3 -10
  329. package/src/layer/vectorLayer.ts +29 -11
  330. package/src/layer/vectorProperties.ts +10 -1
  331. package/src/layer/vectorTileLayer.ts +141 -53
  332. package/src/layer/wfsLayer.ts +7 -4
  333. package/src/layer/wmsLayer.ts +80 -48
  334. package/src/layer/wmtsLayer.ts +3 -10
  335. package/src/map/baseCesiumMap.ts +600 -0
  336. package/src/map/cesiumMap.ts +99 -457
  337. package/src/map/obliqueMap.ts +16 -10
  338. package/src/map/openlayersMap.ts +5 -5
  339. package/src/map/panoramaMap.ts +74 -139
  340. package/src/map/vcsMap.ts +44 -4
  341. package/src/oblique/obliqueCollection.ts +5 -4
  342. package/src/ol/ol.d.ts +13 -2
  343. package/src/panorama/panoramaCameraController.ts +13 -1
  344. package/src/panorama/panoramaImage.ts +25 -8
  345. package/src/panorama/panoramaImageView.ts +29 -3
  346. package/src/panorama/panoramaTileMaterial.ts +20 -0
  347. package/src/panorama/panoramaTileMaterialFS.glsl +16 -1
  348. package/src/panorama/panoramaTilePrimitiveCollection.ts +34 -0
  349. package/src/style/declarativeStyleItem.ts +7 -9
  350. package/src/util/clipping/clippingPolygonObject.ts +5 -4
  351. package/src/util/displayQuality/displayQuality.ts +4 -4
  352. package/src/util/editor/createFeatureSession.ts +4 -1
  353. package/src/util/editor/editFeaturesSession.ts +14 -4
  354. package/src/util/editor/editGeometrySession.ts +3 -1
  355. package/src/util/editor/editorSessionHelpers.ts +5 -3
  356. package/src/util/editor/interactions/creationSnapping.ts +7 -1
  357. package/src/util/editor/interactions/ensureHandlerSelectionInteraction.ts +2 -2
  358. package/src/util/editor/interactions/layerSnapping.ts +7 -1
  359. package/src/util/editor/interactions/mapInteractionController.ts +12 -2
  360. package/src/util/editor/interactions/translationSnapping.ts +6 -4
  361. package/src/util/editor/selectFeaturesSession.ts +1 -1
  362. package/src/util/editor/transformation/create3DHandlers.ts +2 -2
  363. package/src/util/editor/transformation/transformationHandler.ts +5 -3
  364. package/src/util/editor/transformation/translateInteraction.ts +4 -4
  365. package/src/util/fetch.ts +7 -0
  366. package/src/util/flight/flightInstance.ts +6 -5
  367. package/src/util/mapCollection.ts +18 -0
  368. package/src/util/renderScreenshot.ts +4 -8
  369. package/src/util/viewpoint.ts +2 -2
  370. package/src/vcsApp.ts +7 -8
  371. package/src/vcsModuleHelpers.ts +62 -4
  372. package/src/vcsObject.ts +10 -1
  373. package/src/vectorCluster/vectorClusterGroup.ts +7 -4
  374. package/src/vectorCluster/vectorClusterStyleItem.ts +8 -4
  375. package/dist/src/map/cesiumMapHelpers.d.ts +0 -7
  376. package/dist/src/map/cesiumMapHelpers.js +0 -144
  377. package/dist/src/map/cesiumMapHelpers.js.map +0 -1
  378. package/src/map/cesiumMapHelpers.ts +0 -219
@@ -0,0 +1,343 @@
1
+ import { Cartesian3, Color } from '@vcmap-cesium/engine';
2
+ import type { Cesium3DTileset } from '@vcmap-cesium/engine';
3
+ import { parseBoolean, parseInteger } from '@vcsuite/parsers';
4
+ import { check, is, maybe, oneOf } from '@vcsuite/check';
5
+ import AbstractFeatureProvider from '../featureProvider/abstractFeatureProvider.js';
6
+ import I3SCesiumImpl from './cesium/i3sCesiumImpl.js';
7
+ import FeatureLayer from './featureLayer.js';
8
+ import type { LayerOptions } from './layer.js';
9
+ import type FeatureVisibility from './featureVisibility.js';
10
+ import type { FeatureLayerImplementationOptions } from './featureLayer.js';
11
+ import { layerClassRegistry } from '../classRegistry.js';
12
+ import type VcsMap from '../map/vcsMap.js';
13
+ import CesiumMap from '../map/cesiumMap.js';
14
+ import BaseCesiumMap from '../map/baseCesiumMap.js';
15
+ import PanoramaMap from '../map/panoramaMap.js';
16
+ import type { VcsObjectOptions } from '../vcsObject.js';
17
+ import Extent from '../util/extent.js';
18
+ import { isMobile } from '../util/isMobile.js';
19
+ import { mercatorProjection } from '../util/projection.js';
20
+ import { rectangleToMercatorExtent } from '../util/math.js';
21
+ import { cesiumColorToColor, getStringColor } from '../style/styleHelpers.js';
22
+ import type { VectorStyleItemOptions } from '../style/vectorStyleItem.js';
23
+ import VectorStyleItem from '../style/vectorStyleItem.js';
24
+ import I3SAttributeProvider from '../featureProvider/i3sAttributeProvider.js';
25
+ import type { AttributeProvider } from '../featureProvider/abstractAttributeProvider.js';
26
+ import AbstractAttributeProvider from '../featureProvider/abstractAttributeProvider.js';
27
+ import CompositeFeatureProvider from '../featureProvider/compositeFeatureProvider.js';
28
+ import { getProviderForOption } from '../featureProvider/featureProviderFactory.js';
29
+
30
+ export type I3SOptions = LayerOptions & {
31
+ adjustMaterialAlphaMode?: boolean;
32
+ applySymbology?: boolean;
33
+ calculateNormals?: boolean;
34
+ showFeatures?: boolean;
35
+ cesium3dTilesetOptions?: Cesium3DTileset.ConstructorOptions;
36
+ lightColor?: { x: number; y: number; z: number };
37
+ outlineColor?: string;
38
+ screenSpaceError?: number;
39
+ screenSpaceErrorMobile?: number;
40
+ highlightStyle?: VectorStyleItem | VectorStyleItemOptions;
41
+ featureVisibility?: FeatureVisibility;
42
+ /** A flag to indicate if the layer has batch tables, in which case features attributes are loaded on load */
43
+ hasBatchTable?: boolean;
44
+ /** an optional attribute provider to provide custom attributes for the tileset features on load */
45
+ attributeProvider?: AttributeProvider | VcsObjectOptions;
46
+ };
47
+
48
+ export type I3SImplementationOptions = FeatureLayerImplementationOptions & {
49
+ allowPicking: boolean;
50
+ adjustMaterialAlphaMode?: boolean;
51
+ applySymbology?: boolean;
52
+ calculateNormals?: boolean;
53
+ showFeatures?: boolean;
54
+ cesium3dTilesetOptions?: Cesium3DTileset.ConstructorOptions;
55
+ hasBatchTable?: boolean;
56
+ attributeProvider?: AttributeProvider;
57
+ };
58
+
59
+ class I3SLayer extends FeatureLayer<I3SCesiumImpl> {
60
+ static get className(): string {
61
+ return 'I3SLayer';
62
+ }
63
+
64
+ static getDefaultOptions(): I3SOptions {
65
+ return {
66
+ ...FeatureLayer.getDefaultOptions(),
67
+ adjustMaterialAlphaMode: false,
68
+ applySymbology: false,
69
+ calculateNormals: false,
70
+ showFeatures: false,
71
+ cesium3dTilesetOptions: undefined,
72
+ lightColor: undefined,
73
+ outlineColor: undefined,
74
+ screenSpaceError: 16,
75
+ screenSpaceErrorMobile: 32,
76
+ highlightStyle: undefined,
77
+ hasBatchTable: true,
78
+ };
79
+ }
80
+
81
+ adjustMaterialAlphaMode: boolean;
82
+ applySymbology: boolean;
83
+ calculateNormals: boolean;
84
+ showFeatures: boolean;
85
+ cesium3dTilesetOptions:
86
+ | Partial<Cesium3DTileset.ConstructorOptions>
87
+ | undefined;
88
+ lightColor: { x: number; y: number; z: number } | undefined;
89
+ outlineColor: string | undefined;
90
+ screenSpaceError: number;
91
+ screenSpaceErrorMobile: number;
92
+ highlightStyle: VectorStyleItem | null = null;
93
+ hasBatchTable: boolean;
94
+ protected _supportedMaps = [CesiumMap.className, PanoramaMap.className];
95
+ private _attributeProvider?: AttributeProvider;
96
+
97
+ constructor(options: I3SOptions) {
98
+ const defaultOptions = I3SLayer.getDefaultOptions();
99
+ super({ ...defaultOptions, ...options });
100
+
101
+ this.adjustMaterialAlphaMode = parseBoolean(
102
+ options.adjustMaterialAlphaMode ?? defaultOptions.adjustMaterialAlphaMode,
103
+ );
104
+ this.applySymbology = parseBoolean(
105
+ options.applySymbology ?? defaultOptions.applySymbology,
106
+ );
107
+ this.calculateNormals = parseBoolean(
108
+ options.calculateNormals ?? defaultOptions.calculateNormals,
109
+ );
110
+ this.showFeatures = parseBoolean(
111
+ options.showFeatures ?? defaultOptions.showFeatures,
112
+ );
113
+
114
+ this.screenSpaceError = parseInteger(
115
+ options.screenSpaceError,
116
+ defaultOptions.screenSpaceError,
117
+ );
118
+
119
+ this.screenSpaceErrorMobile = parseInteger(
120
+ options.screenSpaceErrorMobile,
121
+ defaultOptions.screenSpaceErrorMobile,
122
+ );
123
+
124
+ this.hasBatchTable = parseBoolean(
125
+ options.hasBatchTable ?? defaultOptions.hasBatchTable,
126
+ );
127
+
128
+ if (options.highlightStyle) {
129
+ this.highlightStyle =
130
+ options.highlightStyle instanceof VectorStyleItem
131
+ ? options.highlightStyle
132
+ : new VectorStyleItem(options.highlightStyle);
133
+ }
134
+
135
+ const cesium3dTilesetOptions =
136
+ options.cesium3dTilesetOptions || defaultOptions.cesium3dTilesetOptions;
137
+
138
+ this.cesium3dTilesetOptions = {
139
+ maximumScreenSpaceError: isMobile()
140
+ ? this.screenSpaceErrorMobile
141
+ : this.screenSpaceError,
142
+ ...cesium3dTilesetOptions,
143
+ ...(options.lightColor && {
144
+ lightColor: new Cartesian3(
145
+ options.lightColor.x,
146
+ options.lightColor.y,
147
+ options.lightColor.z,
148
+ ),
149
+ }),
150
+ ...(options.outlineColor && {
151
+ outlineColor: Color.fromCssColorString(options.outlineColor),
152
+ }),
153
+ };
154
+
155
+ const attributeProvider = getProviderForOption(options.attributeProvider);
156
+ if (this.hasBatchTable) {
157
+ if (
158
+ is(
159
+ attributeProvider,
160
+ oneOf(CompositeFeatureProvider, AbstractAttributeProvider),
161
+ )
162
+ ) {
163
+ this._attributeProvider = attributeProvider;
164
+ } else {
165
+ this._attributeProvider = new I3SAttributeProvider({});
166
+ }
167
+ } else if (this.allowPicking) {
168
+ if (is(this.featureProvider, AbstractFeatureProvider)) {
169
+ this.attributeProvider = new CompositeFeatureProvider({
170
+ featureProviders: [this.featureProvider],
171
+ attributeProviders: [new I3SAttributeProvider({})],
172
+ });
173
+ } else {
174
+ this.featureProvider = new I3SAttributeProvider({});
175
+ }
176
+ }
177
+ }
178
+
179
+ get attributeProvider(): AttributeProvider | undefined {
180
+ return this._attributeProvider;
181
+ }
182
+
183
+ set attributeProvider(provider: AttributeProvider | undefined) {
184
+ check(
185
+ provider,
186
+ maybe(oneOf(AbstractAttributeProvider, CompositeFeatureProvider)),
187
+ );
188
+
189
+ if (this._attributeProvider !== provider) {
190
+ this._attributeProvider = provider;
191
+ this.forceRedraw().catch((e: unknown) => {
192
+ this.getLogger().error(
193
+ `Error forcing redraw after setting attribute provider: ${String(e)}`,
194
+ );
195
+ });
196
+ }
197
+ }
198
+
199
+ getImplementationOptions(): I3SImplementationOptions {
200
+ return {
201
+ ...super.getImplementationOptions(),
202
+ allowPicking: this.allowPicking,
203
+ adjustMaterialAlphaMode: this.adjustMaterialAlphaMode,
204
+ applySymbology: this.applySymbology,
205
+ calculateNormals: this.calculateNormals,
206
+ showFeatures: this.showFeatures,
207
+ cesium3dTilesetOptions: this.cesium3dTilesetOptions,
208
+ hasBatchTable: this.hasBatchTable,
209
+ attributeProvider: this._attributeProvider,
210
+ };
211
+ }
212
+
213
+ createImplementationsForMap(map: VcsMap): I3SCesiumImpl[] {
214
+ if (map instanceof BaseCesiumMap) {
215
+ return [new I3SCesiumImpl(map, this.getImplementationOptions())];
216
+ }
217
+ return [];
218
+ }
219
+
220
+ getZoomToExtent(): Extent | null {
221
+ const metaExtent = super.getZoomToExtent();
222
+ if (metaExtent) {
223
+ return metaExtent;
224
+ }
225
+ const impl = this.getImplementations()[0];
226
+ if (impl?.data) {
227
+ const coordinates = rectangleToMercatorExtent(impl.data.extent);
228
+ const extent = new Extent({
229
+ projection: mercatorProjection.toJSON(),
230
+ coordinates,
231
+ });
232
+ if (extent.isValid()) {
233
+ return extent;
234
+ }
235
+ }
236
+ return null;
237
+ }
238
+
239
+ /**
240
+ * set the maximum screenspace error of this layer
241
+ */
242
+ setMaximumScreenSpaceError(value: number): void {
243
+ this.getImplementations().forEach((impl) => {
244
+ if (impl.data) {
245
+ impl.data.layers.forEach(({ tileset }) => {
246
+ if (tileset) {
247
+ tileset.maximumScreenSpaceError = value;
248
+ }
249
+ });
250
+ }
251
+ });
252
+ }
253
+
254
+ toJSON(defaultOptions = I3SLayer.getDefaultOptions()): I3SOptions {
255
+ const config: I3SOptions = super.toJSON(defaultOptions);
256
+ if (
257
+ this.adjustMaterialAlphaMode !== defaultOptions.adjustMaterialAlphaMode
258
+ ) {
259
+ config.adjustMaterialAlphaMode = this.adjustMaterialAlphaMode;
260
+ }
261
+ if (this.applySymbology !== defaultOptions.applySymbology) {
262
+ config.applySymbology = this.applySymbology;
263
+ }
264
+ if (this.calculateNormals !== defaultOptions.calculateNormals) {
265
+ config.calculateNormals = this.calculateNormals;
266
+ }
267
+ if (this.showFeatures !== defaultOptions.showFeatures) {
268
+ config.showFeatures = this.showFeatures;
269
+ }
270
+
271
+ if (this.screenSpaceError !== defaultOptions.screenSpaceError) {
272
+ config.screenSpaceError = this.screenSpaceError;
273
+ }
274
+ if (this.screenSpaceErrorMobile !== defaultOptions.screenSpaceErrorMobile) {
275
+ config.screenSpaceErrorMobile = this.screenSpaceErrorMobile;
276
+ }
277
+ if (this.hasBatchTable !== defaultOptions.hasBatchTable) {
278
+ config.hasBatchTable = this.hasBatchTable;
279
+ }
280
+ if (this.highlightStyle) {
281
+ config.highlightStyle = this.highlightStyle.toJSON();
282
+ }
283
+
284
+ const tilesetOptions = { ...this.cesium3dTilesetOptions };
285
+ if (tilesetOptions.outlineColor) {
286
+ config.outlineColor = getStringColor(
287
+ cesiumColorToColor(tilesetOptions.outlineColor),
288
+ );
289
+ }
290
+ delete tilesetOptions.outlineColor;
291
+
292
+ if (tilesetOptions.lightColor) {
293
+ config.lightColor = {
294
+ x: tilesetOptions.lightColor.x,
295
+ y: tilesetOptions.lightColor.y,
296
+ z: tilesetOptions.lightColor.z,
297
+ };
298
+ }
299
+ delete tilesetOptions.lightColor;
300
+
301
+ const usedScreenSpaceError = isMobile()
302
+ ? this.screenSpaceErrorMobile
303
+ : this.screenSpaceError;
304
+ if (tilesetOptions.maximumScreenSpaceError === usedScreenSpaceError) {
305
+ delete tilesetOptions.maximumScreenSpaceError;
306
+ }
307
+
308
+ if (Object.keys(tilesetOptions).length > 0) {
309
+ config.cesium3dTilesetOptions = structuredClone(tilesetOptions);
310
+ }
311
+
312
+ if (
313
+ this._attributeProvider &&
314
+ !(this._attributeProvider instanceof I3SAttributeProvider) &&
315
+ !(this._attributeProvider instanceof AbstractFeatureProvider)
316
+ ) {
317
+ config.attributeProvider = this._attributeProvider.toJSON();
318
+ if (this._attributeProvider instanceof CompositeFeatureProvider) {
319
+ const { featureProviders, attributeProviders } =
320
+ this._attributeProvider.toJSON();
321
+ config.featureProvider = featureProviders[0];
322
+ if (!(attributeProviders[0] instanceof I3SAttributeProvider)) {
323
+ config.attributeProvider = attributeProviders[0];
324
+ }
325
+ } else {
326
+ config.attributeProvider = this._attributeProvider.toJSON();
327
+ }
328
+ }
329
+
330
+ return config;
331
+ }
332
+
333
+ /**
334
+ * disposes of this layer, removes instances from the current maps and the framework
335
+ */
336
+ destroy(): void {
337
+ this.attributeProvider?.destroy();
338
+ super.destroy();
339
+ }
340
+ }
341
+
342
+ layerClassRegistry.registerClass(I3SLayer.className, I3SLayer);
343
+ export default I3SLayer;