@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.
- package/dist/cesium.d.ts +12 -0
- package/dist/index.d.ts +13 -3
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/ol.d.ts +13 -2
- package/dist/src/category/category.d.ts +1 -1
- package/dist/src/category/category.js +3 -4
- package/dist/src/category/category.js.map +1 -1
- package/dist/src/cesium/cesium3DTileFeature.d.ts +1 -0
- package/dist/src/cesium/cesium3DTileFeature.js +14 -3
- package/dist/src/cesium/cesium3DTileFeature.js.map +1 -1
- package/dist/src/cesium/cesium3DTilePointFeature.js +2 -1
- package/dist/src/cesium/cesium3DTilePointFeature.js.map +1 -1
- package/dist/src/classRegistry.d.ts +7 -1
- package/dist/src/classRegistry.js.map +1 -1
- package/dist/src/featureProvider/abstractAttributeProvider.d.ts +62 -0
- package/dist/src/featureProvider/abstractAttributeProvider.js +129 -0
- package/dist/src/featureProvider/abstractAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/abstractFeatureProvider.d.ts +10 -19
- package/dist/src/featureProvider/abstractFeatureProvider.js +10 -42
- package/dist/src/featureProvider/abstractFeatureProvider.js.map +1 -1
- package/dist/src/featureProvider/compositeFeatureProvider.d.ts +27 -0
- package/dist/src/featureProvider/compositeFeatureProvider.js +53 -0
- package/dist/src/featureProvider/compositeFeatureProvider.js.map +1 -0
- package/dist/src/featureProvider/csvAttributeProvider.d.ts +41 -0
- package/dist/src/featureProvider/csvAttributeProvider.js +126 -0
- package/dist/src/featureProvider/csvAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/featureProviderFactory.d.ts +3 -0
- package/dist/src/featureProvider/featureProviderFactory.js +17 -0
- package/dist/src/featureProvider/featureProviderFactory.js.map +1 -0
- package/dist/src/featureProvider/i3sAttributeProvider.d.ts +7 -0
- package/dist/src/featureProvider/i3sAttributeProvider.js +43 -0
- package/dist/src/featureProvider/i3sAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/jsonAttributeProvider.d.ts +26 -0
- package/dist/src/featureProvider/jsonAttributeProvider.js +73 -0
- package/dist/src/featureProvider/jsonAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/tileProviderFeatureProvider.d.ts +4 -6
- package/dist/src/featureProvider/tileProviderFeatureProvider.js +9 -11
- package/dist/src/featureProvider/tileProviderFeatureProvider.js.map +1 -1
- package/dist/src/featureProvider/urlIdAttributeProvider.d.ts +28 -0
- package/dist/src/featureProvider/urlIdAttributeProvider.js +50 -0
- package/dist/src/featureProvider/urlIdAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/wmsFeatureProvider.d.ts +13 -4
- package/dist/src/featureProvider/wmsFeatureProvider.js +19 -9
- package/dist/src/featureProvider/wmsFeatureProvider.js.map +1 -1
- package/dist/src/interaction/coordinateAtPixel.js +4 -6
- package/dist/src/interaction/coordinateAtPixel.js.map +1 -1
- package/dist/src/interaction/ensurePositionInteraction.d.ts +14 -0
- package/dist/src/interaction/ensurePositionInteraction.js +42 -0
- package/dist/src/interaction/ensurePositionInteraction.js.map +1 -0
- package/dist/src/interaction/eventHandler.d.ts +3 -0
- package/dist/src/interaction/eventHandler.js +10 -1
- package/dist/src/interaction/eventHandler.js.map +1 -1
- package/dist/src/interaction/featureAtPixelInteraction.d.ts +15 -3
- package/dist/src/interaction/featureAtPixelInteraction.js +70 -18
- package/dist/src/interaction/featureAtPixelInteraction.js.map +1 -1
- package/dist/src/interaction/featureProviderInteraction.js +42 -26
- package/dist/src/interaction/featureProviderInteraction.js.map +1 -1
- package/dist/src/interaction/panoramaImageSelection.js +2 -2
- package/dist/src/interaction/panoramaImageSelection.js.map +1 -1
- package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.d.ts +17 -9
- package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js +244 -165
- package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js.map +1 -1
- package/dist/src/layer/cesium/i3sCesiumImpl.d.ts +33 -0
- package/dist/src/layer/cesium/i3sCesiumImpl.js +107 -0
- package/dist/src/layer/cesium/i3sCesiumImpl.js.map +1 -0
- package/dist/src/layer/cesium/rasterLayerCesiumImpl.d.ts +3 -3
- package/dist/src/layer/cesium/rasterLayerCesiumImpl.js.map +1 -1
- package/dist/src/layer/cesium/terrainCesiumImpl.d.ts +3 -3
- package/dist/src/layer/cesium/terrainCesiumImpl.js.map +1 -1
- package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js +2 -1
- package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js.map +1 -1
- package/dist/src/layer/cesium/vectorContext.js +1 -1
- package/dist/src/layer/cesium/vectorContext.js.map +1 -1
- package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js +7 -6
- package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js.map +1 -1
- package/dist/src/layer/cesium/vectorTileImageryProvider.js +2 -2
- package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +1 -1
- package/dist/src/layer/cesiumTilesetLayer.d.ts +10 -1
- package/dist/src/layer/cesiumTilesetLayer.js +33 -8
- package/dist/src/layer/cesiumTilesetLayer.js.map +1 -1
- package/dist/src/layer/cogLayer.d.ts +1 -1
- package/dist/src/layer/cogLayer.js +3 -4
- package/dist/src/layer/cogLayer.js.map +1 -1
- package/dist/src/layer/czmlLayer.d.ts +1 -1
- package/dist/src/layer/czmlLayer.js +4 -4
- package/dist/src/layer/czmlLayer.js.map +1 -1
- package/dist/src/layer/featureLayer.d.ts +1 -6
- package/dist/src/layer/featureLayer.js +3 -10
- package/dist/src/layer/featureLayer.js.map +1 -1
- package/dist/src/layer/featureStoreLayer.d.ts +3 -2
- package/dist/src/layer/featureStoreLayer.js +5 -5
- package/dist/src/layer/featureStoreLayer.js.map +1 -1
- package/dist/src/layer/flatGeobufLayer.d.ts +2 -0
- package/dist/src/layer/flatGeobufLayer.js +8 -0
- package/dist/src/layer/flatGeobufLayer.js.map +1 -1
- package/dist/src/layer/geojsonLayer.d.ts +1 -1
- package/dist/src/layer/geojsonLayer.js +5 -12
- package/dist/src/layer/geojsonLayer.js.map +1 -1
- package/dist/src/layer/i3sLayer.d.ts +80 -0
- package/dist/src/layer/i3sLayer.js +242 -0
- package/dist/src/layer/i3sLayer.js.map +1 -0
- package/dist/src/layer/layer.d.ts +29 -10
- package/dist/src/layer/layer.js +114 -34
- package/dist/src/layer/layer.js.map +1 -1
- package/dist/src/layer/layerSymbols.d.ts +4 -0
- package/dist/src/layer/layerSymbols.js +4 -0
- package/dist/src/layer/layerSymbols.js.map +1 -1
- package/dist/src/layer/openStreetMapLayer.d.ts +1 -1
- package/dist/src/layer/openStreetMapLayer.js +11 -6
- package/dist/src/layer/openStreetMapLayer.js.map +1 -1
- package/dist/src/layer/panorama/vectorPanoramaImpl.d.ts +38 -0
- package/dist/src/layer/panorama/vectorPanoramaImpl.js +164 -0
- package/dist/src/layer/panorama/vectorPanoramaImpl.js.map +1 -0
- package/dist/src/layer/panoramaDatasetLayer.d.ts +7 -3
- package/dist/src/layer/panoramaDatasetLayer.js +46 -20
- package/dist/src/layer/panoramaDatasetLayer.js.map +1 -1
- package/dist/src/layer/pointCloudLayer.d.ts +1 -5
- package/dist/src/layer/pointCloudLayer.js +3 -15
- package/dist/src/layer/pointCloudLayer.js.map +1 -1
- package/dist/src/layer/rasterLayer.d.ts +1 -1
- package/dist/src/layer/rasterLayer.js +4 -4
- package/dist/src/layer/rasterLayer.js.map +1 -1
- package/dist/src/layer/singleImageLayer.d.ts +1 -1
- package/dist/src/layer/singleImageLayer.js +3 -3
- package/dist/src/layer/singleImageLayer.js.map +1 -1
- package/dist/src/layer/terrainLayer.d.ts +1 -1
- package/dist/src/layer/terrainLayer.js +8 -6
- package/dist/src/layer/terrainLayer.js.map +1 -1
- package/dist/src/layer/tileProvider/flatGeobufTileProvider.d.ts +1 -1
- package/dist/src/layer/tileProvider/flatGeobufTileProvider.js +7 -5
- package/dist/src/layer/tileProvider/flatGeobufTileProvider.js.map +1 -1
- package/dist/src/layer/tileProvider/mvtTileProvider.d.ts +1 -1
- package/dist/src/layer/tileProvider/mvtTileProvider.js +6 -5
- package/dist/src/layer/tileProvider/mvtTileProvider.js.map +1 -1
- package/dist/src/layer/tileProvider/staticFeatureTileProvider.d.ts +1 -1
- package/dist/src/layer/tileProvider/staticFeatureTileProvider.js +3 -3
- package/dist/src/layer/tileProvider/staticFeatureTileProvider.js.map +1 -1
- package/dist/src/layer/tileProvider/staticGeojsonTileProvider.d.ts +1 -1
- package/dist/src/layer/tileProvider/staticGeojsonTileProvider.js +7 -4
- package/dist/src/layer/tileProvider/staticGeojsonTileProvider.js.map +1 -1
- package/dist/src/layer/tileProvider/tileProvider.d.ts +7 -1
- package/dist/src/layer/tileProvider/tileProvider.js +15 -5
- package/dist/src/layer/tileProvider/tileProvider.js.map +1 -1
- package/dist/src/layer/tileProvider/urlTemplateTileProvider.d.ts +1 -1
- package/dist/src/layer/tileProvider/urlTemplateTileProvider.js +3 -3
- package/dist/src/layer/tileProvider/urlTemplateTileProvider.js.map +1 -1
- package/dist/src/layer/tmsLayer.d.ts +1 -1
- package/dist/src/layer/tmsLayer.js +3 -10
- package/dist/src/layer/tmsLayer.js.map +1 -1
- package/dist/src/layer/vectorLayer.d.ts +11 -5
- package/dist/src/layer/vectorLayer.js +21 -10
- package/dist/src/layer/vectorLayer.js.map +1 -1
- package/dist/src/layer/vectorProperties.js +10 -1
- package/dist/src/layer/vectorProperties.js.map +1 -1
- package/dist/src/layer/vectorTileLayer.d.ts +14 -5
- package/dist/src/layer/vectorTileLayer.js +82 -31
- package/dist/src/layer/vectorTileLayer.js.map +1 -1
- package/dist/src/layer/wfsLayer.d.ts +1 -1
- package/dist/src/layer/wfsLayer.js +5 -4
- package/dist/src/layer/wfsLayer.js.map +1 -1
- package/dist/src/layer/wmsLayer.d.ts +4 -1
- package/dist/src/layer/wmsLayer.js +65 -36
- package/dist/src/layer/wmsLayer.js.map +1 -1
- package/dist/src/layer/wmtsLayer.d.ts +1 -1
- package/dist/src/layer/wmtsLayer.js +3 -10
- package/dist/src/layer/wmtsLayer.js.map +1 -1
- package/dist/src/map/baseCesiumMap.d.ts +69 -0
- package/dist/src/map/baseCesiumMap.js +393 -0
- package/dist/src/map/baseCesiumMap.js.map +1 -0
- package/dist/src/map/cesiumMap.d.ts +6 -98
- package/dist/src/map/cesiumMap.js +29 -266
- package/dist/src/map/cesiumMap.js.map +1 -1
- package/dist/src/map/obliqueMap.d.ts +1 -1
- package/dist/src/map/obliqueMap.js +14 -8
- package/dist/src/map/obliqueMap.js.map +1 -1
- package/dist/src/map/openlayersMap.d.ts +1 -1
- package/dist/src/map/openlayersMap.js +3 -4
- package/dist/src/map/openlayersMap.js.map +1 -1
- package/dist/src/map/panoramaMap.d.ts +17 -29
- package/dist/src/map/panoramaMap.js +56 -100
- package/dist/src/map/panoramaMap.js.map +1 -1
- package/dist/src/map/vcsMap.d.ts +15 -2
- package/dist/src/map/vcsMap.js +26 -3
- package/dist/src/map/vcsMap.js.map +1 -1
- package/dist/src/oblique/obliqueCollection.d.ts +1 -1
- package/dist/src/oblique/obliqueCollection.js +3 -4
- package/dist/src/oblique/obliqueCollection.js.map +1 -1
- package/dist/src/panorama/panoramaCameraController.d.ts +4 -0
- package/dist/src/panorama/panoramaCameraController.js +8 -0
- package/dist/src/panorama/panoramaCameraController.js.map +1 -1
- package/dist/src/panorama/panoramaImage.d.ts +10 -1
- package/dist/src/panorama/panoramaImage.js +15 -9
- package/dist/src/panorama/panoramaImage.js.map +1 -1
- package/dist/src/panorama/panoramaImageView.d.ts +6 -1
- package/dist/src/panorama/panoramaImageView.js +11 -2
- package/dist/src/panorama/panoramaImageView.js.map +1 -1
- package/dist/src/panorama/panoramaTileMaterial.d.ts +6 -0
- package/dist/src/panorama/panoramaTileMaterial.js +14 -0
- package/dist/src/panorama/panoramaTileMaterial.js.map +1 -1
- package/dist/src/panorama/panoramaTileMaterialFS.shader.d.ts +1 -1
- package/dist/src/panorama/panoramaTileMaterialFS.shader.js +16 -1
- package/dist/src/panorama/panoramaTileMaterialFS.shader.js.map +1 -1
- package/dist/src/panorama/panoramaTilePrimitiveCollection.d.ts +6 -0
- package/dist/src/panorama/panoramaTilePrimitiveCollection.js +28 -0
- package/dist/src/panorama/panoramaTilePrimitiveCollection.js.map +1 -1
- package/dist/src/style/declarativeStyleItem.js +7 -8
- package/dist/src/style/declarativeStyleItem.js.map +1 -1
- package/dist/src/util/clipping/clippingPolygonObject.d.ts +1 -1
- package/dist/src/util/clipping/clippingPolygonObject.js +3 -4
- package/dist/src/util/clipping/clippingPolygonObject.js.map +1 -1
- package/dist/src/util/displayQuality/displayQuality.js +4 -4
- package/dist/src/util/displayQuality/displayQuality.js.map +1 -1
- package/dist/src/util/editor/createFeatureSession.js +3 -1
- package/dist/src/util/editor/createFeatureSession.js.map +1 -1
- package/dist/src/util/editor/editFeaturesSession.js +9 -2
- package/dist/src/util/editor/editFeaturesSession.js.map +1 -1
- package/dist/src/util/editor/editGeometrySession.js +3 -1
- package/dist/src/util/editor/editGeometrySession.js.map +1 -1
- package/dist/src/util/editor/editorSessionHelpers.d.ts +3 -3
- package/dist/src/util/editor/editorSessionHelpers.js +4 -2
- package/dist/src/util/editor/editorSessionHelpers.js.map +1 -1
- package/dist/src/util/editor/interactions/creationSnapping.js +4 -1
- package/dist/src/util/editor/interactions/creationSnapping.js.map +1 -1
- package/dist/src/util/editor/interactions/ensureHandlerSelectionInteraction.js +2 -2
- package/dist/src/util/editor/interactions/ensureHandlerSelectionInteraction.js.map +1 -1
- package/dist/src/util/editor/interactions/layerSnapping.js +4 -1
- package/dist/src/util/editor/interactions/layerSnapping.js.map +1 -1
- package/dist/src/util/editor/interactions/mapInteractionController.js +12 -1
- package/dist/src/util/editor/interactions/mapInteractionController.js.map +1 -1
- package/dist/src/util/editor/interactions/translationSnapping.js +4 -2
- package/dist/src/util/editor/interactions/translationSnapping.js.map +1 -1
- package/dist/src/util/editor/selectFeaturesSession.js +1 -1
- package/dist/src/util/editor/selectFeaturesSession.js.map +1 -1
- package/dist/src/util/editor/transformation/create3DHandlers.d.ts +2 -2
- package/dist/src/util/editor/transformation/create3DHandlers.js.map +1 -1
- package/dist/src/util/editor/transformation/transformationHandler.js +5 -2
- package/dist/src/util/editor/transformation/transformationHandler.js.map +1 -1
- package/dist/src/util/editor/transformation/translateInteraction.js +2 -2
- package/dist/src/util/editor/transformation/translateInteraction.js.map +1 -1
- package/dist/src/util/fetch.d.ts +7 -0
- package/dist/src/util/fetch.js +7 -0
- package/dist/src/util/fetch.js.map +1 -1
- package/dist/src/util/flight/flightInstance.d.ts +1 -1
- package/dist/src/util/flight/flightInstance.js +3 -4
- package/dist/src/util/flight/flightInstance.js.map +1 -1
- package/dist/src/util/mapCollection.d.ts +5 -0
- package/dist/src/util/mapCollection.js +14 -0
- package/dist/src/util/mapCollection.js.map +1 -1
- package/dist/src/util/renderScreenshot.js +2 -3
- package/dist/src/util/renderScreenshot.js.map +1 -1
- package/dist/src/util/viewpoint.js +1 -1
- package/dist/src/util/viewpoint.js.map +1 -1
- package/dist/src/vcsApp.d.ts +2 -3
- package/dist/src/vcsApp.js.map +1 -1
- package/dist/src/vcsModuleHelpers.d.ts +5 -2
- package/dist/src/vcsModuleHelpers.js +27 -1
- package/dist/src/vcsModuleHelpers.js.map +1 -1
- package/dist/src/vcsObject.d.ts +2 -1
- package/dist/src/vcsObject.js +9 -1
- package/dist/src/vcsObject.js.map +1 -1
- package/dist/src/vectorCluster/vectorClusterGroup.d.ts +1 -1
- package/dist/src/vectorCluster/vectorClusterGroup.js +3 -4
- package/dist/src/vectorCluster/vectorClusterGroup.js.map +1 -1
- package/dist/src/vectorCluster/vectorClusterStyleItem.d.ts +1 -1
- package/dist/src/vectorCluster/vectorClusterStyleItem.js +3 -4
- package/dist/src/vectorCluster/vectorClusterStyleItem.js.map +1 -1
- package/dist/tests/unit/helpers/cesiumHelpers.d.ts +11 -1
- package/dist/tests/unit/helpers/cesiumHelpers.js +26 -3
- package/dist/tests/unit/helpers/cesiumHelpers.js.map +1 -1
- package/dist/tests/unit/helpers/panoramaHelpers.js +1 -1
- package/dist/tests/unit/helpers/panoramaHelpers.js.map +1 -1
- package/index.ts +30 -5
- package/package.json +3 -3
- package/src/category/category.ts +3 -4
- package/src/cesium/cesium.d.ts +12 -0
- package/src/cesium/cesium3DTileFeature.ts +23 -3
- package/src/cesium/cesium3DTilePointFeature.ts +3 -1
- package/src/classRegistry.ts +8 -3
- package/src/featureProvider/abstractAttributeProvider.ts +201 -0
- package/src/featureProvider/abstractFeatureProvider.ts +32 -51
- package/src/featureProvider/compositeFeatureProvider.ts +103 -0
- package/src/featureProvider/csvAttributeProvider.ts +186 -0
- package/src/featureProvider/featureProviderFactory.ts +31 -0
- package/src/featureProvider/i3sAttributeProvider.ts +60 -0
- package/src/featureProvider/jsonAttributeProvider.ts +109 -0
- package/src/featureProvider/tileProviderFeatureProvider.ts +13 -14
- package/src/featureProvider/urlIdAttributeProvider.ts +82 -0
- package/src/featureProvider/wmsFeatureProvider.ts +31 -10
- package/src/global.d.ts +2 -0
- package/src/interaction/coordinateAtPixel.ts +4 -6
- package/src/interaction/ensurePositionInteraction.ts +50 -0
- package/src/interaction/eventHandler.ts +12 -1
- package/src/interaction/featureAtPixelInteraction.ts +92 -32
- package/src/interaction/featureProviderInteraction.ts +59 -38
- package/src/interaction/panoramaImageSelection.ts +4 -2
- package/src/layer/cesium/cesiumTilesetCesiumImpl.ts +297 -197
- package/src/layer/cesium/i3sCesiumImpl.ts +141 -0
- package/src/layer/cesium/rasterLayerCesiumImpl.ts +3 -3
- package/src/layer/cesium/terrainCesiumImpl.ts +3 -3
- package/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.ts +4 -3
- package/src/layer/cesium/vectorContext.ts +1 -1
- package/src/layer/cesium/vectorRasterTileCesiumImpl.ts +7 -6
- package/src/layer/cesium/vectorTileImageryProvider.ts +2 -2
- package/src/layer/cesiumTilesetLayer.ts +60 -8
- package/src/layer/cogLayer.ts +5 -5
- package/src/layer/czmlLayer.ts +4 -4
- package/src/layer/featureLayer.ts +5 -16
- package/src/layer/featureStoreLayer.ts +11 -5
- package/src/layer/flatGeobufLayer.ts +12 -0
- package/src/layer/geojsonLayer.ts +5 -12
- package/src/layer/i3sLayer.ts +343 -0
- package/src/layer/layer.ts +178 -39
- package/src/layer/layerSymbols.ts +5 -0
- package/src/layer/openStreetMapLayer.ts +13 -6
- package/src/layer/panorama/vectorPanoramaImpl.ts +238 -0
- package/src/layer/panoramaDatasetLayer.ts +69 -23
- package/src/layer/pointCloudLayer.ts +5 -20
- package/src/layer/rasterLayer.ts +4 -4
- package/src/layer/singleImageLayer.ts +5 -3
- package/src/layer/terrainLayer.ts +9 -6
- package/src/layer/tileProvider/flatGeobufTileProvider.ts +9 -5
- package/src/layer/tileProvider/mvtTileProvider.ts +10 -5
- package/src/layer/tileProvider/staticFeatureTileProvider.ts +5 -3
- package/src/layer/tileProvider/staticGeojsonTileProvider.ts +11 -4
- package/src/layer/tileProvider/tileProvider.ts +18 -5
- package/src/layer/tileProvider/urlTemplateTileProvider.ts +7 -3
- package/src/layer/tmsLayer.ts +3 -10
- package/src/layer/vectorLayer.ts +29 -11
- package/src/layer/vectorProperties.ts +10 -1
- package/src/layer/vectorTileLayer.ts +141 -53
- package/src/layer/wfsLayer.ts +7 -4
- package/src/layer/wmsLayer.ts +80 -48
- package/src/layer/wmtsLayer.ts +3 -10
- package/src/map/baseCesiumMap.ts +600 -0
- package/src/map/cesiumMap.ts +99 -457
- package/src/map/obliqueMap.ts +16 -10
- package/src/map/openlayersMap.ts +5 -5
- package/src/map/panoramaMap.ts +74 -139
- package/src/map/vcsMap.ts +44 -4
- package/src/oblique/obliqueCollection.ts +5 -4
- package/src/ol/ol.d.ts +13 -2
- package/src/panorama/panoramaCameraController.ts +13 -1
- package/src/panorama/panoramaImage.ts +25 -8
- package/src/panorama/panoramaImageView.ts +29 -3
- package/src/panorama/panoramaTileMaterial.ts +20 -0
- package/src/panorama/panoramaTileMaterialFS.glsl +16 -1
- package/src/panorama/panoramaTilePrimitiveCollection.ts +34 -0
- package/src/style/declarativeStyleItem.ts +7 -9
- package/src/util/clipping/clippingPolygonObject.ts +5 -4
- package/src/util/displayQuality/displayQuality.ts +4 -4
- package/src/util/editor/createFeatureSession.ts +4 -1
- package/src/util/editor/editFeaturesSession.ts +14 -4
- package/src/util/editor/editGeometrySession.ts +3 -1
- package/src/util/editor/editorSessionHelpers.ts +5 -3
- package/src/util/editor/interactions/creationSnapping.ts +7 -1
- package/src/util/editor/interactions/ensureHandlerSelectionInteraction.ts +2 -2
- package/src/util/editor/interactions/layerSnapping.ts +7 -1
- package/src/util/editor/interactions/mapInteractionController.ts +12 -2
- package/src/util/editor/interactions/translationSnapping.ts +6 -4
- package/src/util/editor/selectFeaturesSession.ts +1 -1
- package/src/util/editor/transformation/create3DHandlers.ts +2 -2
- package/src/util/editor/transformation/transformationHandler.ts +5 -3
- package/src/util/editor/transformation/translateInteraction.ts +4 -4
- package/src/util/fetch.ts +7 -0
- package/src/util/flight/flightInstance.ts +6 -5
- package/src/util/mapCollection.ts +18 -0
- package/src/util/renderScreenshot.ts +4 -8
- package/src/util/viewpoint.ts +2 -2
- package/src/vcsApp.ts +7 -8
- package/src/vcsModuleHelpers.ts +62 -4
- package/src/vcsObject.ts +10 -1
- package/src/vectorCluster/vectorClusterGroup.ts +7 -4
- package/src/vectorCluster/vectorClusterStyleItem.ts +8 -4
- package/dist/src/map/cesiumMapHelpers.d.ts +0 -7
- package/dist/src/map/cesiumMapHelpers.js +0 -144
- package/dist/src/map/cesiumMapHelpers.js.map +0 -1
- package/src/map/cesiumMapHelpers.ts +0 -219
|
@@ -29,7 +29,16 @@ export function getMockScene(): import("@vcmap-cesium/engine").Scene;
|
|
|
29
29
|
* @returns {import("@vcmap-cesium/engine").CesiumWidget}
|
|
30
30
|
*/
|
|
31
31
|
export function getMockCesiumWidget(): import("@vcmap-cesium/engine").CesiumWidget;
|
|
32
|
-
|
|
32
|
+
/**
|
|
33
|
+
* @param {import("@vcmap/core").CesiumMapOptions} [mapOptions={}]
|
|
34
|
+
* @returns {CesiumMap}
|
|
35
|
+
*/
|
|
36
|
+
export function getCesiumMap(mapOptions?: any): CesiumMap;
|
|
37
|
+
/**
|
|
38
|
+
* @param {import("@vcmap/core").VcsMapOptions} [mapOptions={}]
|
|
39
|
+
* @returns {BaseCesiumMap}
|
|
40
|
+
*/
|
|
41
|
+
export function getBaseCesiumMap(mapOptions?: any): BaseCesiumMap;
|
|
33
42
|
/**
|
|
34
43
|
* @param {VcsApp} app
|
|
35
44
|
* @returns {Promise<CesiumMap>}
|
|
@@ -68,3 +77,4 @@ export namespace tilesetJSON {
|
|
|
68
77
|
import CesiumMap from '../../../src/map/cesiumMap.js';
|
|
69
78
|
import CesiumTilesetLayer from '../../../src/layer/cesiumTilesetLayer.js';
|
|
70
79
|
import DataSourceLayer from '../../../src/layer/dataSourceLayer.js';
|
|
80
|
+
import BaseCesiumMap from '../../../src/map/baseCesiumMap.js';
|
|
@@ -4,6 +4,7 @@ import CesiumTilesetLayer from '../../../src/layer/cesiumTilesetLayer.js';
|
|
|
4
4
|
import DataSourceLayer from '../../../src/layer/dataSourceLayer.js';
|
|
5
5
|
import CesiumMap from '../../../src/map/cesiumMap.js';
|
|
6
6
|
import Viewpoint from '../../../src/util/viewpoint.js';
|
|
7
|
+
import BaseCesiumMap from '../../../src/map/baseCesiumMap.js';
|
|
7
8
|
export const tilesetJSON = {
|
|
8
9
|
asset: {
|
|
9
10
|
version: '0.0',
|
|
@@ -179,8 +180,7 @@ export function getMockCesiumWidget() {
|
|
|
179
180
|
resize() { },
|
|
180
181
|
};
|
|
181
182
|
}
|
|
182
|
-
|
|
183
|
-
const map = new CesiumMap(mapOptions || {});
|
|
183
|
+
function hackMap(map) {
|
|
184
184
|
const cesiumWidget = getMockCesiumWidget();
|
|
185
185
|
const { scene } = cesiumWidget;
|
|
186
186
|
map._cesiumWidget = cesiumWidget;
|
|
@@ -204,6 +204,23 @@ export function getCesiumMap(mapOptions) {
|
|
|
204
204
|
}
|
|
205
205
|
return new Viewpoint({});
|
|
206
206
|
};
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* @param {import("@vcmap/core").CesiumMapOptions} [mapOptions={}]
|
|
210
|
+
* @returns {CesiumMap}
|
|
211
|
+
*/
|
|
212
|
+
export function getCesiumMap(mapOptions) {
|
|
213
|
+
const map = new CesiumMap(mapOptions || {});
|
|
214
|
+
hackMap(map);
|
|
215
|
+
return map;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* @param {import("@vcmap/core").VcsMapOptions} [mapOptions={}]
|
|
219
|
+
* @returns {BaseCesiumMap}
|
|
220
|
+
*/
|
|
221
|
+
export function getBaseCesiumMap(mapOptions = {}) {
|
|
222
|
+
const map = new BaseCesiumMap(mapOptions);
|
|
223
|
+
hackMap(map);
|
|
207
224
|
return map;
|
|
208
225
|
}
|
|
209
226
|
/**
|
|
@@ -247,7 +264,7 @@ export function setupCesiumContextLimits() {
|
|
|
247
264
|
}
|
|
248
265
|
class BatchTable {
|
|
249
266
|
constructor(properties) {
|
|
250
|
-
this.properties = properties;
|
|
267
|
+
this.properties = properties ?? {};
|
|
251
268
|
this.color = new Color();
|
|
252
269
|
this.show = true;
|
|
253
270
|
this.destroyed = false;
|
|
@@ -258,6 +275,12 @@ class BatchTable {
|
|
|
258
275
|
getProperty(id, prop) {
|
|
259
276
|
return this.properties[prop];
|
|
260
277
|
}
|
|
278
|
+
setProperty(id, prop, value) {
|
|
279
|
+
this.properties[prop] = value;
|
|
280
|
+
}
|
|
281
|
+
hasProperty(id, prop) {
|
|
282
|
+
return this.properties[prop] !== undefined;
|
|
283
|
+
}
|
|
261
284
|
getColor() {
|
|
262
285
|
return this.color;
|
|
263
286
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cesiumHelpers.js","sourceRoot":"","sources":["../../../../tests/unit/helpers/cesiumHelpers.js"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EACL,cAAc,EACd,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,EACL,KAAK,IAAI,WAAW,EACpB,SAAS,EACT,sBAAsB,EACtB,KAAK,EACL,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,GAAG,GACJ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,kBAAkB,MAAM,0CAA0C,CAAC;AAC1E,OAAO,eAAe,MAAM,uCAAuC,CAAC;AACpE,OAAO,SAAS,MAAM,+BAA+B,CAAC;AACtD,OAAO,SAAS,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"cesiumHelpers.js","sourceRoot":"","sources":["../../../../tests/unit/helpers/cesiumHelpers.js"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export function getPanoramaMap(options = {}) {
|
|
|
17
17
|
map._cesiumWidget = cesiumWidget;
|
|
18
18
|
scene.screenSpaceCameraController.enableInputs = false;
|
|
19
19
|
scene.primitives.destroyPrimitives = false;
|
|
20
|
-
map.
|
|
20
|
+
map.screenSpaceEventHandler = new ScreenSpaceEventHandler(cesiumWidget.canvas);
|
|
21
21
|
map._imageView = createPanoramaImageView(map);
|
|
22
22
|
map._cameraController = createPanoramaCameraController(map);
|
|
23
23
|
map.initialized = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panoramaHelpers.js","sourceRoot":"","sources":["../../../../tests/unit/helpers/panoramaHelpers.js"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAO,GAAG,EAAE;IACzC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IAC/B,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC;IAEjC,KAAK,CAAC,2BAA2B,CAAC,YAAY,GAAG,KAAK,CAAC;IACvD,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAE3C,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"panoramaHelpers.js","sourceRoot":"","sources":["../../../../tests/unit/helpers/panoramaHelpers.js"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAO,GAAG,EAAE;IACzC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IAC/B,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC;IAEjC,KAAK,CAAC,2BAA2B,CAAC,YAAY,GAAG,KAAK,CAAC;IACvD,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAE3C,GAAG,CAAC,uBAAuB,GAAG,IAAI,uBAAuB,CACvD,YAAY,CAAC,MAAM,CACpB,CAAC;IAEF,GAAG,CAAC,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC9C,GAAG,CAAC,iBAAiB,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;IAE5D,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,MAAM,CAAC,aAAa,EAAE,WAAW;YAC/B,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,sBAAsB;gBAC1D,CAAC;gBAED,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,MAAM,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,OAAO,EACP,eAAe,EACf,IAAI,EACJ,QAAQ,GAAG,oBAAoB,EAC/B,KAAK,GAAG,KAAK,GACd,GAAG,EAAE;IACJ,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IAChE,IAAI,UAAU,CAAC;IACf,IAAI,KAAK,EAAE,CAAC;QACV,UAAU,GAAG,MAAM,QAAQ,CAAC,0CAA0C,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE;QACrD,UAAU;QACV,OAAO;QACP,eAAe;QACf,IAAI;QACJ,aAAa,EAAE,oBAAoB,EAAE;KACtC,CAAC,CAAC;IAEH,OAAO;QACL,aAAa;QACb,OAAO;YACL,aAAa,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,UAAU,EAAE,KAAK,EAAE,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/index.ts
CHANGED
|
@@ -30,12 +30,34 @@ export {
|
|
|
30
30
|
} from './src/classRegistry.js';
|
|
31
31
|
export type { AbstractFeatureProviderOptions } from './src/featureProvider/abstractFeatureProvider.js';
|
|
32
32
|
export { default as AbstractFeatureProvider } from './src/featureProvider/abstractFeatureProvider.js';
|
|
33
|
+
export {
|
|
34
|
+
default as AbstractAttributeProvider,
|
|
35
|
+
type AttributeProvider,
|
|
36
|
+
type AbstractAttributeProviderOptions,
|
|
37
|
+
} from './src/featureProvider/abstractAttributeProvider.js';
|
|
38
|
+
export {
|
|
39
|
+
default as CompositeFeatureProvider,
|
|
40
|
+
type CompositeFeatureProviderOptions,
|
|
41
|
+
} from './src/featureProvider/compositeFeatureProvider.js';
|
|
42
|
+
export {
|
|
43
|
+
default as CsvAttributeProvider,
|
|
44
|
+
type CsvAttributeProviderOptions,
|
|
45
|
+
} from './src/featureProvider/csvAttributeProvider.js';
|
|
33
46
|
export {
|
|
34
47
|
isProvidedFeature,
|
|
35
48
|
isProvidedClusterFeature,
|
|
36
49
|
} from './src/featureProvider/featureProviderSymbols.js';
|
|
50
|
+
export {
|
|
51
|
+
default as JSONAttributeProvider,
|
|
52
|
+
type JsonAttributeProviderOptions,
|
|
53
|
+
type JsonAttributeData,
|
|
54
|
+
} from './src/featureProvider/jsonAttributeProvider.js';
|
|
37
55
|
export type { TileProviderFeatureProviderOptions } from './src/featureProvider/tileProviderFeatureProvider.js';
|
|
38
56
|
export { default as TileProviderFeatureProvider } from './src/featureProvider/tileProviderFeatureProvider.js';
|
|
57
|
+
export {
|
|
58
|
+
default as UrlIdAttributeProvider,
|
|
59
|
+
type UrlIdAttributeProviderOptions,
|
|
60
|
+
} from './src/featureProvider/urlIdAttributeProvider.js';
|
|
39
61
|
export type {
|
|
40
62
|
FormatOptions,
|
|
41
63
|
WMSFeatureProviderOptions,
|
|
@@ -70,6 +92,7 @@ export {
|
|
|
70
92
|
} from './src/layer/cesium/cesiumTilesetCesiumImpl.js';
|
|
71
93
|
export { default as COGCesiumImpl } from './src/layer/cesium/cogCesiumImpl.js';
|
|
72
94
|
export { default as DataSourceCesiumImpl } from './src/layer/cesium/dataSourceCesiumImpl.js';
|
|
95
|
+
export { default as I3SCesiumImpl } from './src/layer/cesium/i3sCesiumImpl.js';
|
|
73
96
|
export { default as OpenStreetMapCesiumImpl } from './src/layer/cesium/openStreetMapCesiumImpl.js';
|
|
74
97
|
export { default as RasterLayerCesiumImpl } from './src/layer/cesium/rasterLayerCesiumImpl.js';
|
|
75
98
|
export { default as SingleImageCesiumImpl } from './src/layer/cesium/singleImageCesiumImpl.js';
|
|
@@ -221,6 +244,8 @@ export { default as WmsOpenlayersImpl } from './src/layer/openlayers/wmsOpenlaye
|
|
|
221
244
|
export { default as WmtsOpenlayersImpl } from './src/layer/openlayers/wmtsOpenlayersImpl.js';
|
|
222
245
|
export type { PointCloudOptions } from './src/layer/pointCloudLayer.js';
|
|
223
246
|
export { default as PointCloudLayer } from './src/layer/pointCloudLayer.js';
|
|
247
|
+
export type { I3SOptions } from './src/layer/i3sLayer.js';
|
|
248
|
+
export { default as I3SLayer } from './src/layer/i3sLayer.js';
|
|
224
249
|
export type {
|
|
225
250
|
RasterLayerOptions,
|
|
226
251
|
RasterLayerImplementation,
|
|
@@ -375,18 +400,16 @@ export type {
|
|
|
375
400
|
export { default as PanoramaDatasetLayer } from './src/layer/panoramaDatasetLayer.js';
|
|
376
401
|
export { default as VectorTilePanoramaImpl } from './src/layer/panorama/vectorTilePanoramaImpl.js';
|
|
377
402
|
export { default as PanoramaDatasetPanoramaImpl } from './src/layer/panorama/panoramaDatasetPanoramaImpl.js';
|
|
403
|
+
export { default as VectorPanoramaImpl } from './src/layer/panorama/vectorPanoramaImpl.js';
|
|
378
404
|
export { default as BaseOLMap } from './src/map/baseOLMap.js';
|
|
379
405
|
export type { CameraLimiterOptions } from './src/map/cameraLimiter.js';
|
|
380
406
|
export {
|
|
381
407
|
CameraLimiterMode,
|
|
382
408
|
default as CameraLimiter,
|
|
383
409
|
} from './src/map/cameraLimiter.js';
|
|
384
|
-
export type {
|
|
385
|
-
CesiumMapOptions,
|
|
386
|
-
CesiumMapEvent,
|
|
387
|
-
CesiumVisualisationType,
|
|
388
|
-
} from './src/map/cesiumMap.js';
|
|
410
|
+
export type { CesiumMapOptions, CesiumMapEvent } from './src/map/cesiumMap.js';
|
|
389
411
|
export { default as CesiumMap } from './src/map/cesiumMap.js';
|
|
412
|
+
export { default as BaseCesiumMap } from './src/map/baseCesiumMap.js';
|
|
390
413
|
export { default as MapState } from './src/map/mapState.js';
|
|
391
414
|
export type { ObliqueOptions } from './src/map/obliqueMap.js';
|
|
392
415
|
export {
|
|
@@ -759,6 +782,7 @@ export {
|
|
|
759
782
|
requestUrl,
|
|
760
783
|
requestJson,
|
|
761
784
|
requestArrayBuffer,
|
|
785
|
+
getInitForUrl,
|
|
762
786
|
} from './src/util/fetch.js';
|
|
763
787
|
export {
|
|
764
788
|
getFlatCoordinatesFromSimpleGeometry,
|
|
@@ -851,6 +875,7 @@ export type { ModuleLayerOptions } from './src/vcsModuleHelpers.js';
|
|
|
851
875
|
export {
|
|
852
876
|
deserializeMap,
|
|
853
877
|
deserializeViewpoint,
|
|
878
|
+
deserializeFeatureProvider,
|
|
854
879
|
deserializeLayer,
|
|
855
880
|
serializeLayer,
|
|
856
881
|
getLayerIndex,
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vcmap/core",
|
|
3
|
-
"version": "6.2
|
|
3
|
+
"version": "6.3.0-rc.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"pretest": "tsc -b tests && node -e \"require('fs').cpSync('tests/data', '.tests/tests/data', { recursive: true })\"",
|
|
10
|
-
"test": "mocha --exit --require .tests/tests/setupJsdom.js --require .tests/tests/setup.js --file .tests/tests/vcs.js \".tests/**/*.spec.js\"",
|
|
10
|
+
"test": "mocha --exit --require .tests/tests/setupJsdom.js --enable-source-maps --require .tests/tests/setup.js --file .tests/tests/vcs.js \".tests/**/*.spec.js\"",
|
|
11
11
|
"lint:js": "eslint . --ext .vue,.js,.cjs,.mjs,.ts",
|
|
12
12
|
"lint:prettier": "prettier --check .",
|
|
13
13
|
"lint": "npm run lint:js && npm run lint:prettier",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
},
|
|
77
77
|
"prettier": "@vcsuite/eslint-config/prettier.js",
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@vcsuite/check": "^3.
|
|
79
|
+
"@vcsuite/check": "^3.2.2",
|
|
80
80
|
"@vcsuite/logger": "^1.0.1",
|
|
81
81
|
"@vcsuite/parsers": "^2.0.0",
|
|
82
82
|
"fast-deep-equal": "^3.1.3",
|
package/src/category/category.ts
CHANGED
|
@@ -129,8 +129,8 @@ class Category<
|
|
|
129
129
|
private _moduleRemovedListener: () => void = () => {};
|
|
130
130
|
|
|
131
131
|
constructor(options: CategoryOptions<T>) {
|
|
132
|
-
super(options);
|
|
133
132
|
const defaultOptions = Category.getDefaultConfig();
|
|
133
|
+
super({ ...defaultOptions, ...options });
|
|
134
134
|
|
|
135
135
|
this.title = options.title || this.name;
|
|
136
136
|
this._featureProperty =
|
|
@@ -372,10 +372,9 @@ class Category<
|
|
|
372
372
|
};
|
|
373
373
|
}
|
|
374
374
|
|
|
375
|
-
toJSON(): CategoryOptions<T> {
|
|
376
|
-
const config: CategoryOptions<T> = super.toJSON();
|
|
375
|
+
toJSON(defaultOptions = Category.getDefaultConfig()): CategoryOptions<T> {
|
|
376
|
+
const config: CategoryOptions<T> = super.toJSON(defaultOptions);
|
|
377
377
|
|
|
378
|
-
const defaultOptions = Category.getDefaultConfig();
|
|
379
378
|
if (this.title !== this.name) {
|
|
380
379
|
config.title = this.title;
|
|
381
380
|
}
|
package/src/cesium/cesium.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ import type {
|
|
|
21
21
|
import type { isTiledFeature } from '../layer/featureStoreLayer.js';
|
|
22
22
|
import type { vectorClusterGroupName } from '../vectorCluster/vectorClusterSymbols.js';
|
|
23
23
|
import { scaleSymbol } from '../layer/vectorSymbols.js';
|
|
24
|
+
import { attributeProviderName } from '../featureProvider/abstractAttributeProvider.js';
|
|
24
25
|
|
|
25
26
|
declare module '@vcmap-cesium/engine' {
|
|
26
27
|
enum TextureWarp {
|
|
@@ -105,6 +106,7 @@ declare module '@vcmap-cesium/engine' {
|
|
|
105
106
|
[hidden]?: boolean;
|
|
106
107
|
[highlighted]?: VectorStyleItem;
|
|
107
108
|
[originalStyle]?: StyleLike | Color;
|
|
109
|
+
[attributeProviderName]?: string;
|
|
108
110
|
}
|
|
109
111
|
|
|
110
112
|
interface Primitive {
|
|
@@ -172,8 +174,14 @@ declare module '@vcmap-cesium/engine' {
|
|
|
172
174
|
[vcsLayerName]?: string;
|
|
173
175
|
}
|
|
174
176
|
|
|
177
|
+
interface I3SDataProvider {
|
|
178
|
+
[vcsLayerName]?: string;
|
|
179
|
+
[allowPicking]?: boolean;
|
|
180
|
+
}
|
|
181
|
+
|
|
175
182
|
interface Cesium3DTile {
|
|
176
183
|
boundingVolume: TileBoundingVolume;
|
|
184
|
+
contentBoundingVolume: TileBoundingVolume;
|
|
177
185
|
contentReady: boolean;
|
|
178
186
|
[cesiumTilesetLastUpdated]?: number;
|
|
179
187
|
}
|
|
@@ -209,6 +217,7 @@ declare module '@vcmap-cesium/engine' {
|
|
|
209
217
|
_batchId: number;
|
|
210
218
|
getId(): number | string;
|
|
211
219
|
getAttributes(): Record<string, unknown>;
|
|
220
|
+
setAttribute(key: string, value: unknown): void;
|
|
212
221
|
[vcsLayerName]?: string;
|
|
213
222
|
[globalHidden]?: boolean;
|
|
214
223
|
[hidden]?: boolean;
|
|
@@ -216,6 +225,7 @@ declare module '@vcmap-cesium/engine' {
|
|
|
216
225
|
[originalStyle]?: StyleLike | Color;
|
|
217
226
|
[isTiledFeature]?: boolean;
|
|
218
227
|
[allowPicking]?: boolean;
|
|
228
|
+
[attributeProviderName]?: string;
|
|
219
229
|
}
|
|
220
230
|
|
|
221
231
|
interface Cesium3DTilePointFeature {
|
|
@@ -223,12 +233,14 @@ declare module '@vcmap-cesium/engine' {
|
|
|
223
233
|
_batchId: number;
|
|
224
234
|
getId(): number | string;
|
|
225
235
|
getAttributes(): Record<string, unknown>;
|
|
236
|
+
setAttribute(key: string, value: unknown): void;
|
|
226
237
|
[vcsLayerName]?: string;
|
|
227
238
|
[globalHidden]?: boolean;
|
|
228
239
|
[hidden]?: boolean;
|
|
229
240
|
[highlighted]?: VectorStyleItem;
|
|
230
241
|
[originalStyle]?: StyleLike | Color;
|
|
231
242
|
[allowPicking]?: boolean;
|
|
243
|
+
[attributeProviderName]?: string;
|
|
232
244
|
}
|
|
233
245
|
|
|
234
246
|
interface Cesium3DTileStyle {
|
|
@@ -7,7 +7,7 @@ Cesium3DTileFeature.prototype.getId = function getId(
|
|
|
7
7
|
return (
|
|
8
8
|
(this.getProperty('id') as string | number) ||
|
|
9
9
|
`${this.content.url}${String(this._batchId)}`
|
|
10
|
-
);
|
|
10
|
+
);
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export function getAttributes(
|
|
@@ -16,7 +16,7 @@ export function getAttributes(
|
|
|
16
16
|
if (
|
|
17
17
|
(this.tileset.asset as { version: string } | undefined)?.version ===
|
|
18
18
|
'1.1' ||
|
|
19
|
-
!this.
|
|
19
|
+
!this.hasProperty('attributes')
|
|
20
20
|
) {
|
|
21
21
|
const attributes: Record<string, unknown> = {};
|
|
22
22
|
this.getPropertyIds().forEach((id) => {
|
|
@@ -24,7 +24,27 @@ export function getAttributes(
|
|
|
24
24
|
});
|
|
25
25
|
return attributes;
|
|
26
26
|
}
|
|
27
|
-
return this.getProperty('attributes') as Record<string, unknown
|
|
27
|
+
return (this.getProperty('attributes') as Record<string, unknown>) ?? {};
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
Cesium3DTileFeature.prototype.getAttributes = getAttributes;
|
|
31
|
+
|
|
32
|
+
export function setAttribute(
|
|
33
|
+
this: Cesium3DTileFeature | Cesium3DTilePointFeature,
|
|
34
|
+
key: string,
|
|
35
|
+
value: unknown,
|
|
36
|
+
): void {
|
|
37
|
+
if (
|
|
38
|
+
(this.tileset.asset as { version: string } | undefined)?.version ===
|
|
39
|
+
'1.1' ||
|
|
40
|
+
!this.hasProperty('attributes')
|
|
41
|
+
) {
|
|
42
|
+
this.setProperty(key, value);
|
|
43
|
+
}
|
|
44
|
+
const attributes =
|
|
45
|
+
(this.getProperty('attributes') as Record<string, unknown>) ?? {};
|
|
46
|
+
attributes[key] = value;
|
|
47
|
+
this.setProperty('attributes', attributes);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
Cesium3DTileFeature.prototype.setAttribute = setAttribute;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Cesium3DTilePointFeature } from '@vcmap-cesium/engine';
|
|
2
|
-
import { getAttributes } from './cesium3DTileFeature.js';
|
|
2
|
+
import { getAttributes, setAttribute } from './cesium3DTileFeature.js';
|
|
3
3
|
|
|
4
4
|
Cesium3DTilePointFeature.prototype.getId = function getId(
|
|
5
5
|
this: Cesium3DTilePointFeature,
|
|
@@ -11,3 +11,5 @@ Cesium3DTilePointFeature.prototype.getId = function getId(
|
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
Cesium3DTilePointFeature.prototype.getAttributes = getAttributes;
|
|
14
|
+
|
|
15
|
+
Cesium3DTilePointFeature.prototype.setAttribute = setAttribute;
|
package/src/classRegistry.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type VcsMap from './map/vcsMap.js';
|
|
|
7
7
|
import type StyleItem from './style/styleItem.js';
|
|
8
8
|
import type Category from './category/category.js';
|
|
9
9
|
import type AbstractFeatureProvider from './featureProvider/abstractFeatureProvider.js';
|
|
10
|
+
import type AbstractAttributeProvider from './featureProvider/abstractAttributeProvider.js';
|
|
10
11
|
import type TileProvider from './layer/tileProvider/tileProvider.js';
|
|
11
12
|
|
|
12
13
|
function logger(): Logger {
|
|
@@ -102,9 +103,13 @@ export const tileProviderClassRegistry = new ClassRegistry<
|
|
|
102
103
|
typeof TileProvider
|
|
103
104
|
>();
|
|
104
105
|
|
|
105
|
-
export
|
|
106
|
-
typeof AbstractFeatureProvider
|
|
107
|
-
|
|
106
|
+
export type FeatureProviderClass =
|
|
107
|
+
| ({ new (): AbstractFeatureProvider } & typeof AbstractFeatureProvider)
|
|
108
|
+
| ({
|
|
109
|
+
new (): AbstractAttributeProvider;
|
|
110
|
+
} & typeof AbstractAttributeProvider);
|
|
111
|
+
export const featureProviderClassRegistry =
|
|
112
|
+
new ClassRegistry<FeatureProviderClass>();
|
|
108
113
|
|
|
109
114
|
export const mapClassRegistry = new ClassRegistry<typeof VcsMap>();
|
|
110
115
|
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import Feature from 'ol/Feature.js';
|
|
2
|
+
import type { Extent } from 'ol/extent.js';
|
|
3
|
+
import { v4 as uuid } from 'uuid';
|
|
4
|
+
import { is, oneOf } from '@vcsuite/check';
|
|
5
|
+
import {
|
|
6
|
+
Cesium3DTileFeature,
|
|
7
|
+
Cesium3DTilePointFeature,
|
|
8
|
+
Entity,
|
|
9
|
+
} from '@vcmap-cesium/engine';
|
|
10
|
+
import VcsObject, { type VcsObjectOptions } from '../vcsObject.js';
|
|
11
|
+
import type { EventFeature } from '../interaction/abstractInteraction.js';
|
|
12
|
+
import { featureExists } from '../layer/featureVisibility.js';
|
|
13
|
+
|
|
14
|
+
export type AbstractAttributeProviderOptions = VcsObjectOptions & {
|
|
15
|
+
keyProperty?: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const attributeProviderName = Symbol('attributeProvider');
|
|
19
|
+
|
|
20
|
+
export interface AttributeProvider extends VcsObject {
|
|
21
|
+
/**
|
|
22
|
+
* Augments a feature with attributes from the provider
|
|
23
|
+
* @param feature
|
|
24
|
+
*/
|
|
25
|
+
augmentFeature(feature: EventFeature): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Augments multiple features with attributes from the provider
|
|
28
|
+
* @param features
|
|
29
|
+
* @param extent - optional extent in webmercator to limit attribute lookup on certain providers.
|
|
30
|
+
*/
|
|
31
|
+
augmentFeatures(features: EventFeature[], extent?: Extent): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default abstract class AbstractAttributeProvider
|
|
35
|
+
extends VcsObject
|
|
36
|
+
implements AttributeProvider
|
|
37
|
+
{
|
|
38
|
+
static get className(): string {
|
|
39
|
+
return 'AbstractAttributeProvider';
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static getDefaultOptions(): AbstractAttributeProviderOptions {
|
|
43
|
+
return {
|
|
44
|
+
...VcsObject.getDefaultOptions(),
|
|
45
|
+
keyProperty: undefined,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private _id = uuid();
|
|
50
|
+
|
|
51
|
+
keyProperty?: string;
|
|
52
|
+
|
|
53
|
+
constructor(options: AbstractAttributeProviderOptions) {
|
|
54
|
+
super(options);
|
|
55
|
+
|
|
56
|
+
this.keyProperty = options.keyProperty;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private _setAttributesOnFeature(
|
|
60
|
+
feature: EventFeature,
|
|
61
|
+
attributes: Record<string, unknown>,
|
|
62
|
+
): void {
|
|
63
|
+
if (feature instanceof Feature) {
|
|
64
|
+
feature.setProperties(attributes, true);
|
|
65
|
+
feature.changed();
|
|
66
|
+
} else if (
|
|
67
|
+
feature instanceof Cesium3DTileFeature ||
|
|
68
|
+
feature instanceof Cesium3DTilePointFeature
|
|
69
|
+
) {
|
|
70
|
+
if (featureExists(feature)) {
|
|
71
|
+
for (const key of Object.keys(attributes)) {
|
|
72
|
+
feature.setAttribute(key, attributes[key]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
feature[attributeProviderName] = this._id;
|
|
77
|
+
} else if (feature instanceof Entity) {
|
|
78
|
+
for (const key of Object.keys(attributes)) {
|
|
79
|
+
feature.properties?.addProperty(key, attributes[key]);
|
|
80
|
+
}
|
|
81
|
+
feature[attributeProviderName] = this._id;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
private _getKeyForFeature(feature: EventFeature): string | undefined {
|
|
86
|
+
let key: unknown;
|
|
87
|
+
if (this.keyProperty) {
|
|
88
|
+
key = feature.getProperty(this.keyProperty) as unknown;
|
|
89
|
+
} else {
|
|
90
|
+
key = feature.getId();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (is(key, oneOf(String, Number))) {
|
|
94
|
+
return String(key);
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Retrieves attributes for a given key and feature.
|
|
101
|
+
* Be sure not to use the feature id for lookup, but the provided key.
|
|
102
|
+
* @param key - the key to retrieve attributes for
|
|
103
|
+
* @param feature - the feature requesting the attributes
|
|
104
|
+
* @protected
|
|
105
|
+
*/
|
|
106
|
+
protected abstract _getAttributes(
|
|
107
|
+
key: string,
|
|
108
|
+
feature: EventFeature,
|
|
109
|
+
): Promise<Record<string, unknown> | undefined>;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Optional bulk attribute retrieval for multiple keys.
|
|
113
|
+
* Can be implemented for optimal loading of data.
|
|
114
|
+
* Provides a webmercator extent to limit the lookup if needed.
|
|
115
|
+
* You MUST return a same length array as keys, with undefined for missing attributes.
|
|
116
|
+
* @param bulk - array of key and feature pairs to retrieve attributes for
|
|
117
|
+
* @param _extent - optional extent in webmercator to limit attribute lookup on certain providers.
|
|
118
|
+
* @protected
|
|
119
|
+
*/
|
|
120
|
+
protected _getBulkAttributes(
|
|
121
|
+
bulk: { key: string; feature: EventFeature }[],
|
|
122
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
123
|
+
_extent?: Extent,
|
|
124
|
+
): Promise<(Record<string, unknown> | undefined)[]> {
|
|
125
|
+
return Promise.all(
|
|
126
|
+
bulk.map(({ key, feature }) => this._getAttributes(key, feature)),
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Augments a feature with attributes from the provider
|
|
132
|
+
* @param feature
|
|
133
|
+
*/
|
|
134
|
+
async augmentFeature(feature: EventFeature): Promise<void> {
|
|
135
|
+
if (feature[attributeProviderName] !== this._id) {
|
|
136
|
+
const key = this._getKeyForFeature(feature);
|
|
137
|
+
if (key) {
|
|
138
|
+
const attributes = await this._getAttributes(key, feature);
|
|
139
|
+
if (attributes) {
|
|
140
|
+
this._setAttributesOnFeature(feature, attributes);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
feature[attributeProviderName] = this._id;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Augments multiple features with attributes from the provider
|
|
149
|
+
* @param features
|
|
150
|
+
* @param extent - optional extent in webmercator to limit attribute lookup on certain providers.
|
|
151
|
+
*/
|
|
152
|
+
async augmentFeatures(
|
|
153
|
+
features: EventFeature[],
|
|
154
|
+
extent?: Extent,
|
|
155
|
+
): Promise<void> {
|
|
156
|
+
const bulk = features
|
|
157
|
+
.map((feature) => {
|
|
158
|
+
if (feature[attributeProviderName] !== this._id) {
|
|
159
|
+
const key = this._getKeyForFeature(feature);
|
|
160
|
+
if (key) {
|
|
161
|
+
return { key, feature };
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
feature[attributeProviderName] = this._id;
|
|
165
|
+
return undefined;
|
|
166
|
+
})
|
|
167
|
+
.filter((i) => !!i);
|
|
168
|
+
|
|
169
|
+
if (bulk.length === 0) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const attributes = await this._getBulkAttributes(bulk, extent);
|
|
174
|
+
if (attributes.length !== bulk.length) {
|
|
175
|
+
this.getLogger().error(
|
|
176
|
+
`Bulk attribute retrieval returned ${attributes.length} results for ${bulk.length} features.`,
|
|
177
|
+
);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
for (let i = 0; i < bulk.length; i++) {
|
|
182
|
+
const attr = attributes[i];
|
|
183
|
+
if (attr) {
|
|
184
|
+
this._setAttributesOnFeature(bulk[i].feature, attr);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
toJSON(
|
|
190
|
+
defaultOptions = AbstractAttributeProvider.getDefaultOptions(),
|
|
191
|
+
): AbstractAttributeProviderOptions {
|
|
192
|
+
const config = super.toJSON(
|
|
193
|
+
defaultOptions,
|
|
194
|
+
) as AbstractAttributeProviderOptions;
|
|
195
|
+
|
|
196
|
+
if (this.keyProperty !== defaultOptions.keyProperty) {
|
|
197
|
+
config.keyProperty = this.keyProperty;
|
|
198
|
+
}
|
|
199
|
+
return config;
|
|
200
|
+
}
|
|
201
|
+
}
|