@npm9912/v-map 0.1.0
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/LICENSE +21 -0
- package/README.md +185 -0
- package/dist/cjs/_commonjsHelpers-B83fTs8d.js +36 -0
- package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
- package/dist/cjs/cesium-provider-BiFFyAl9.js +2598 -0
- package/dist/cjs/deck-provider-Ctq3Q8a1.js +47824 -0
- package/dist/cjs/geotiff-CEwvF9cG.js +47 -0
- package/dist/cjs/geotiff-source-RaNzzWkC.js +1522 -0
- package/dist/cjs/index-B1oGO1g-.js +10658 -0
- package/dist/cjs/index-B8LHqjyg.js +1765 -0
- package/dist/cjs/index-BIL4VsgP.js +310 -0
- package/dist/cjs/index-Blku2QY8.js +167 -0
- package/dist/cjs/index-CJvvX4yx.js +21 -0
- package/dist/cjs/index-CbVT-Con.js +699 -0
- package/dist/cjs/index-ISOEpMC3.js +20478 -0
- package/dist/cjs/index-JSwBbvGA.js +1621 -0
- package/dist/cjs/index.browser-DQhD8Jwl.js +6873 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/layer-extension-B_olS0rc.js +65 -0
- package/dist/cjs/leaflet-provider-DOqfs7g5.js +1815 -0
- package/dist/cjs/loader.cjs.js +13 -0
- package/dist/cjs/main-dist-7TykwFci.js +2655 -0
- package/dist/cjs/messages-D7h4m8Tx.js +186 -0
- package/dist/cjs/openlayers-provider-Dfeg6L4n.js +1604 -0
- package/dist/cjs/polygon-layer-B9PrN7vr.js +1300 -0
- package/dist/cjs/scenegraph-layer-DwNoxQdi.js +2530 -0
- package/dist/cjs/styleconfig-CVRqArk-.js +23 -0
- package/dist/cjs/v-map-builder.cjs.entry.js +3786 -0
- package/dist/cjs/v-map-layer-geojson_12.cjs.entry.js +40894 -0
- package/dist/cjs/v-map-layer-helper-iAzxAg9I.js +285 -0
- package/dist/cjs/v-map-layer-terrain-geotiff.cjs.entry.js +258 -0
- package/dist/cjs/v-map-layercontrol.cjs.entry.js +247 -0
- package/dist/cjs/v-map.cjs.js +25 -0
- package/dist/cjs/v-map.v-map-layer-osm.v-map-layergroup-BsXp3BoL.js +582 -0
- package/dist/cjs/v-map_3.cjs.entry.js +12 -0
- package/dist/collection/collection-manifest.json +30 -0
- package/dist/collection/components/v-map/v-map.css +3 -0
- package/dist/collection/components/v-map/v-map.js +467 -0
- package/dist/collection/components/v-map/v-map.test.js +33 -0
- package/dist/collection/components/v-map-builder/v-map-builder.css +1 -0
- package/dist/collection/components/v-map-builder/v-map-builder.js +913 -0
- package/dist/collection/components/v-map-builder/v-map-builder.test.js +56 -0
- package/dist/collection/components/v-map-layer-geojson/v-map-layer-geojson.js +862 -0
- package/dist/collection/components/v-map-layer-geojson/v-map-layer-geojson.test.js +42 -0
- package/dist/collection/components/v-map-layer-geotiff/v-map-layer-geotiff.css +4 -0
- package/dist/collection/components/v-map-layer-geotiff/v-map-layer-geotiff.js +500 -0
- package/dist/collection/components/v-map-layer-geotiff/v-map-layer-geotiff.test.js +38 -0
- package/dist/collection/components/v-map-layer-google/v-map-layer-google.css +1 -0
- package/dist/collection/components/v-map-layer-google/v-map-layer-google.js +442 -0
- package/dist/collection/components/v-map-layer-osm/error-api.test.js +108 -0
- package/dist/collection/components/v-map-layer-osm/v-map-layer-osm.css +4 -0
- package/dist/collection/components/v-map-layer-osm/v-map-layer-osm.js +311 -0
- package/dist/collection/components/v-map-layer-osm/v-map-layer-osm.test.js +36 -0
- package/dist/collection/components/v-map-layer-scatterplot/v-map-layer-scatterplot.css +1 -0
- package/dist/collection/components/v-map-layer-scatterplot/v-map-layer-scatterplot.js +305 -0
- package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.css +3 -0
- package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.js +548 -0
- package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.test.js +36 -0
- package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.css +3 -0
- package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.js +735 -0
- package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.test.js +42 -0
- package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.css +3 -0
- package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.js +449 -0
- package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.test.js +50 -0
- package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.css +1 -0
- package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.js +448 -0
- package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.test.js +39 -0
- package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.css +1 -0
- package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.js +489 -0
- package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.test.js +43 -0
- package/dist/collection/components/v-map-layer-wkt/v-map-layer-wkt.css +1 -0
- package/dist/collection/components/v-map-layer-wkt/v-map-layer-wkt.js +811 -0
- package/dist/collection/components/v-map-layer-wkt/v-map-layer-wkt.test.js +34 -0
- package/dist/collection/components/v-map-layer-wms/v-map-layer-wms.css +1 -0
- package/dist/collection/components/v-map-layer-wms/v-map-layer-wms.js +453 -0
- package/dist/collection/components/v-map-layer-wms/v-map-layer-wms.test.js +36 -0
- package/dist/collection/components/v-map-layer-xyz/v-map-layer-xyz.css +1 -0
- package/dist/collection/components/v-map-layer-xyz/v-map-layer-xyz.js +331 -0
- package/dist/collection/components/v-map-layer-xyz/v-map-layer-xyz.test.js +28 -0
- package/dist/collection/components/v-map-layercontrol/v-map-layercontrol.css +74 -0
- package/dist/collection/components/v-map-layercontrol/v-map-layercontrol.js +277 -0
- package/dist/collection/components/v-map-layercontrol/v-map-layercontrol.test.js +134 -0
- package/dist/collection/components/v-map-layergroup/v-map-layergroup.css +4 -0
- package/dist/collection/components/v-map-layergroup/v-map-layergroup.js +212 -0
- package/dist/collection/components/v-map-layergroup/v-map-layergroup.test.js +39 -0
- package/dist/collection/components/v-map-style/v-map-style.css +38 -0
- package/dist/collection/components/v-map-style/v-map-style.js +492 -0
- package/dist/collection/components/v-map-style/v-map-style.unit.js +62 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/layer/v-map-layer-helper.js +281 -0
- package/dist/collection/layer/v-map-layer-helper.unit.js +234 -0
- package/dist/collection/lib/cesium-loader.js +58 -0
- package/dist/collection/lib/ensure-importmap.js +12 -0
- package/dist/collection/lib/ensure-importmap.unit.js +57 -0
- package/dist/collection/lib/versions.gen.js +6 -0
- package/dist/collection/lib/vstyle.js +8 -0
- package/dist/collection/map-provider/cesium/CesiumGeoTIFFTerrainProvider.js +285 -0
- package/dist/collection/map-provider/cesium/CesiumLayerGroups.js +159 -0
- package/dist/collection/map-provider/cesium/GeoTIFFImageryProvider.js +192 -0
- package/dist/collection/map-provider/cesium/GeoTIFFImageryProvider.test.js +57 -0
- package/dist/collection/map-provider/cesium/cesium-provider.js +1408 -0
- package/dist/collection/map-provider/cesium/i-layer.js +1 -0
- package/dist/collection/map-provider/cesium/layer-manager.js +467 -0
- package/dist/collection/map-provider/deck/DeckGLGeoTIFFLayer.js +483 -0
- package/dist/collection/map-provider/deck/DeckGLGeoTIFFTerrainLayer.js +410 -0
- package/dist/collection/map-provider/deck/LayerGroupWithModel.js +169 -0
- package/dist/collection/map-provider/deck/LayerGroups.js +192 -0
- package/dist/collection/map-provider/deck/LayerModel.js +1 -0
- package/dist/collection/map-provider/deck/RenderableGroup.js +1 -0
- package/dist/collection/map-provider/deck/deck-provider.js +1563 -0
- package/dist/collection/map-provider/geotiff/geotiff-source.js +172 -0
- package/dist/collection/map-provider/geotiff/utils/AABB2D.js +24 -0
- package/dist/collection/map-provider/geotiff/utils/BVHNode2D.js +166 -0
- package/dist/collection/map-provider/geotiff/utils/GeoTIFFTileProcessor.js +484 -0
- package/dist/collection/map-provider/geotiff/utils/Triangle.js +1 -0
- package/dist/collection/map-provider/geotiff/utils/Triangulation.js +321 -0
- package/dist/collection/map-provider/geotiff/utils/colormap-utils.js +190 -0
- package/dist/collection/map-provider/geotiff/utils/normalization-utils.js +122 -0
- package/dist/collection/map-provider/geotiff/utils/sampling-utils.js +108 -0
- package/dist/collection/map-provider/leaflet/GeoTIFFGridLayer.js +147 -0
- package/dist/collection/map-provider/leaflet/WCSGridLayer.js +124 -0
- package/dist/collection/map-provider/leaflet/google-map-tiles-layer.js +352 -0
- package/dist/collection/map-provider/leaflet/leaflet-helpers.js +94 -0
- package/dist/collection/map-provider/leaflet/leaflet-provider.js +1095 -0
- package/dist/collection/map-provider/ol/CustomGeoTiff.js +145 -0
- package/dist/collection/map-provider/ol/openlayers-helper.js +26 -0
- package/dist/collection/map-provider/ol/openlayers-provider.js +1427 -0
- package/dist/collection/map-provider/provider-factory.js +44 -0
- package/dist/collection/map-provider/provider-factory.unit.js +66 -0
- package/dist/collection/testing/browser-test-utils.js +49 -0
- package/dist/collection/testing/e2e-testing.js +122 -0
- package/dist/collection/testing/e2e-utils.js +70 -0
- package/dist/collection/testing/geotiff-test-server.js +100 -0
- package/dist/collection/testing/mocks/geostyler-lyrx-parser.js +12 -0
- package/dist/collection/testing/mocks/geostyler-mapbox-parser.js +12 -0
- package/dist/collection/testing/mocks/geostyler-qgis-parser.js +12 -0
- package/dist/collection/testing/mocks/geostyler-sld-parser.js +13 -0
- package/dist/collection/testing/mocks/geostyler-style.js +5 -0
- package/dist/collection/testing/setupTests.browser.js +1 -0
- package/dist/collection/testing/setupTests.stencil.js +20 -0
- package/dist/collection/testing/setupTests.vitest.js +59 -0
- package/dist/collection/testing/stencil-testing-wrapper.js +43 -0
- package/dist/collection/testing/styleMock.js +1 -0
- package/dist/collection/types/color.js +1 -0
- package/dist/collection/types/cssmode.js +1 -0
- package/dist/collection/types/flavour.js +1 -0
- package/dist/collection/types/layerconfig.js +1 -0
- package/dist/collection/types/lonlat.js +1 -0
- package/dist/collection/types/mapinitoptions.js +1 -0
- package/dist/collection/types/mapprovider.js +1 -0
- package/dist/collection/types/provideroptions.js +1 -0
- package/dist/collection/types/styleconfig.js +19 -0
- package/dist/collection/types/styling.js +13 -0
- package/dist/collection/types/styling.unit.js +37 -0
- package/dist/collection/types/vmaplayer.js +1 -0
- package/dist/collection/utils/async-mutex.js +28 -0
- package/dist/collection/utils/diff.js +142 -0
- package/dist/collection/utils/diff.unit.js +59 -0
- package/dist/collection/utils/dom-env.js +43 -0
- package/dist/collection/utils/dom-env.unit.js +92 -0
- package/dist/collection/utils/events.js +8 -0
- package/dist/collection/utils/logger.js +183 -0
- package/dist/collection/utils/logger.unit.js +98 -0
- package/dist/collection/utils/messages.js +12 -0
- package/dist/collection/utils/spatial-utils.js +27 -0
- package/dist/collection/utils/spatial-utils.unit.js +24 -0
- package/dist/components/_commonjsHelpers.js +1 -0
- package/dist/components/cesium-provider.js +1 -0
- package/dist/components/deck-provider.js +1 -0
- package/dist/components/events.js +1 -0
- package/dist/components/geotiff-source.js +1 -0
- package/dist/components/geotiff.js +4 -0
- package/dist/components/index.browser.js +15 -0
- package/dist/components/index.d.ts +35 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index2.js +1 -0
- package/dist/components/index3.js +1 -0
- package/dist/components/index4.js +1 -0
- package/dist/components/index5.js +1 -0
- package/dist/components/index6.js +1 -0
- package/dist/components/index7.js +1 -0
- package/dist/components/index8.js +7 -0
- package/dist/components/layer-extension.js +1 -0
- package/dist/components/leaflet-provider.js +1 -0
- package/dist/components/main-dist.js +1 -0
- package/dist/components/messages.js +1 -0
- package/dist/components/openlayers-provider.js +1 -0
- package/dist/components/polygon-layer.js +1 -0
- package/dist/components/scenegraph-layer.js +1 -0
- package/dist/components/styleconfig.js +1 -0
- package/dist/components/styling.js +1 -0
- package/dist/components/v-map-builder.d.ts +11 -0
- package/dist/components/v-map-builder.js +2 -0
- package/dist/components/v-map-layer-geojson.d.ts +11 -0
- package/dist/components/v-map-layer-geojson.js +1 -0
- package/dist/components/v-map-layer-geojson2.js +1 -0
- package/dist/components/v-map-layer-geotiff.d.ts +11 -0
- package/dist/components/v-map-layer-geotiff.js +1 -0
- package/dist/components/v-map-layer-geotiff2.js +1 -0
- package/dist/components/v-map-layer-google.d.ts +11 -0
- package/dist/components/v-map-layer-google.js +1 -0
- package/dist/components/v-map-layer-google2.js +1 -0
- package/dist/components/v-map-layer-helper.js +1 -0
- package/dist/components/v-map-layer-osm.d.ts +11 -0
- package/dist/components/v-map-layer-osm.js +1 -0
- package/dist/components/v-map-layer-osm2.js +1 -0
- package/dist/components/v-map-layer-scatterplot.d.ts +11 -0
- package/dist/components/v-map-layer-scatterplot.js +1 -0
- package/dist/components/v-map-layer-scatterplot2.js +1 -0
- package/dist/components/v-map-layer-terrain-geotiff.d.ts +11 -0
- package/dist/components/v-map-layer-terrain-geotiff.js +1 -0
- package/dist/components/v-map-layer-terrain.d.ts +11 -0
- package/dist/components/v-map-layer-terrain.js +1 -0
- package/dist/components/v-map-layer-terrain2.js +1 -0
- package/dist/components/v-map-layer-tile3d.d.ts +11 -0
- package/dist/components/v-map-layer-tile3d.js +1 -0
- package/dist/components/v-map-layer-tile3d2.js +1 -0
- package/dist/components/v-map-layer-wcs.d.ts +11 -0
- package/dist/components/v-map-layer-wcs.js +1 -0
- package/dist/components/v-map-layer-wcs2.js +1 -0
- package/dist/components/v-map-layer-wfs.d.ts +11 -0
- package/dist/components/v-map-layer-wfs.js +1 -0
- package/dist/components/v-map-layer-wfs2.js +1 -0
- package/dist/components/v-map-layer-wkt.d.ts +11 -0
- package/dist/components/v-map-layer-wkt.js +1 -0
- package/dist/components/v-map-layer-wkt2.js +1 -0
- package/dist/components/v-map-layer-wms.d.ts +11 -0
- package/dist/components/v-map-layer-wms.js +1 -0
- package/dist/components/v-map-layer-wms2.js +1 -0
- package/dist/components/v-map-layer-xyz.d.ts +11 -0
- package/dist/components/v-map-layer-xyz.js +1 -0
- package/dist/components/v-map-layer-xyz2.js +1 -0
- package/dist/components/v-map-layercontrol.d.ts +11 -0
- package/dist/components/v-map-layercontrol.js +1 -0
- package/dist/components/v-map-layergroup.d.ts +11 -0
- package/dist/components/v-map-layergroup.js +1 -0
- package/dist/components/v-map-layergroup2.js +1 -0
- package/dist/components/v-map-style.d.ts +11 -0
- package/dist/components/v-map-style.js +1 -0
- package/dist/components/v-map-style2.js +10 -0
- package/dist/components/v-map.d.ts +11 -0
- package/dist/components/v-map.js +1 -0
- package/dist/components/v-map2.js +1 -0
- package/dist/esm/_commonjsHelpers-E-ZsRS8r.js +32 -0
- package/dist/esm/app-globals-DQuL1Twl.js +3 -0
- package/dist/esm/cesium-provider-BJfAup3w.js +2596 -0
- package/dist/esm/deck-provider-C7U9VDEq.js +47709 -0
- package/dist/esm/geotiff-BEWxTIfH.js +45 -0
- package/dist/esm/geotiff-source-esnDnC-u.js +1516 -0
- package/dist/esm/index-B1zwA4IC.js +685 -0
- package/dist/esm/index-BBpiaTpT.js +165 -0
- package/dist/esm/index-BIEmlzCf.js +1697 -0
- package/dist/esm/index-BUHa4Jj0.js +307 -0
- package/dist/esm/index-DbSdn93t.js +20461 -0
- package/dist/esm/index-RpJarvr_.js +10656 -0
- package/dist/esm/index-jN06TXUp.js +14 -0
- package/dist/esm/index-jzneDarq.js +1613 -0
- package/dist/esm/index.browser-DhQAXuA7.js +6860 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/layer-extension-CZXK5goK.js +63 -0
- package/dist/esm/leaflet-provider-Q41TB6ku.js +1794 -0
- package/dist/esm/loader.js +11 -0
- package/dist/esm/main-dist-CwnA7_Xn.js +2652 -0
- package/dist/esm/messages-CMKJzsgL.js +180 -0
- package/dist/esm/openlayers-provider-CMsDsQTQ.js +1602 -0
- package/dist/esm/polygon-layer-ByhxGhWC.js +1295 -0
- package/dist/esm/scenegraph-layer-09K_B6DT.js +2526 -0
- package/dist/esm/styleconfig-B-bAcABs.js +21 -0
- package/dist/esm/v-map-builder.entry.js +3784 -0
- package/dist/esm/v-map-layer-geojson_12.entry.js +40881 -0
- package/dist/esm/v-map-layer-helper-Dys44Cgo.js +283 -0
- package/dist/esm/v-map-layer-terrain-geotiff.entry.js +256 -0
- package/dist/esm/v-map-layercontrol.entry.js +245 -0
- package/dist/esm/v-map.js +21 -0
- package/dist/esm/v-map.v-map-layer-osm.v-map-layergroup-B4pFHuSf.js +572 -0
- package/dist/esm/v-map_3.entry.js +4 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/types/cesium-augment.d.ts +5 -0
- package/dist/types/components/v-map/v-map.d.ts +70 -0
- package/dist/types/components/v-map/v-map.test.d.ts +1 -0
- package/dist/types/components/v-map-builder/v-map-builder.d.ts +48 -0
- package/dist/types/components/v-map-builder/v-map-builder.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-geojson/v-map-layer-geojson.d.ts +129 -0
- package/dist/types/components/v-map-layer-geojson/v-map-layer-geojson.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-geotiff/v-map-layer-geotiff.d.ts +74 -0
- package/dist/types/components/v-map-layer-geotiff/v-map-layer-geotiff.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-google/v-map-layer-google.d.ts +78 -0
- package/dist/types/components/v-map-layer-osm/error-api.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-osm/v-map-layer-osm.d.ts +50 -0
- package/dist/types/components/v-map-layer-osm/v-map-layer-osm.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-scatterplot/v-map-layer-scatterplot.d.ts +54 -0
- package/dist/types/components/v-map-layer-terrain/v-map-layer-terrain.d.ts +74 -0
- package/dist/types/components/v-map-layer-terrain/v-map-layer-terrain.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.d.ts +117 -0
- package/dist/types/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-tile3d/v-map-layer-tile3d.d.ts +69 -0
- package/dist/types/components/v-map-layer-tile3d/v-map-layer-tile3d.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-wcs/v-map-layer-wcs.d.ts +47 -0
- package/dist/types/components/v-map-layer-wcs/v-map-layer-wcs.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-wfs/v-map-layer-wfs.d.ts +59 -0
- package/dist/types/components/v-map-layer-wfs/v-map-layer-wfs.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-wkt/v-map-layer-wkt.d.ts +132 -0
- package/dist/types/components/v-map-layer-wkt/v-map-layer-wkt.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-wms/v-map-layer-wms.d.ts +76 -0
- package/dist/types/components/v-map-layer-wms/v-map-layer-wms.test.d.ts +1 -0
- package/dist/types/components/v-map-layer-xyz/v-map-layer-xyz.d.ts +59 -0
- package/dist/types/components/v-map-layer-xyz/v-map-layer-xyz.test.d.ts +1 -0
- package/dist/types/components/v-map-layercontrol/v-map-layercontrol.d.ts +44 -0
- package/dist/types/components/v-map-layercontrol/v-map-layercontrol.test.d.ts +1 -0
- package/dist/types/components/v-map-layergroup/v-map-layergroup.d.ts +31 -0
- package/dist/types/components/v-map-layergroup/v-map-layergroup.test.d.ts +1 -0
- package/dist/types/components/v-map-style/v-map-style.d.ts +75 -0
- package/dist/types/components/v-map-style/v-map-style.unit.d.ts +1 -0
- package/dist/types/components.d.ts +2391 -0
- package/dist/types/globals.d.ts +16 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/layer/v-map-layer-helper.d.ts +45 -0
- package/dist/types/layer/v-map-layer-helper.unit.d.ts +1 -0
- package/dist/types/leaflet-augment.d.ts +15 -0
- package/dist/types/lib/cesium-loader.d.ts +3 -0
- package/dist/types/lib/ensure-importmap.d.ts +3 -0
- package/dist/types/lib/ensure-importmap.unit.d.ts +1 -0
- package/dist/types/lib/versions.gen.d.ts +5 -0
- package/dist/types/lib/vstyle.d.ts +44 -0
- package/dist/types/map-provider/cesium/CesiumGeoTIFFTerrainProvider.d.ts +92 -0
- package/dist/types/map-provider/cesium/CesiumLayerGroups.d.ts +64 -0
- package/dist/types/map-provider/cesium/GeoTIFFImageryProvider.d.ts +75 -0
- package/dist/types/map-provider/cesium/GeoTIFFImageryProvider.test.d.ts +1 -0
- package/dist/types/map-provider/cesium/cesium-provider.d.ts +87 -0
- package/dist/types/map-provider/cesium/i-layer.d.ts +11 -0
- package/dist/types/map-provider/cesium/layer-manager.d.ts +31 -0
- package/dist/types/map-provider/deck/DeckGLGeoTIFFLayer.d.ts +91 -0
- package/dist/types/map-provider/deck/DeckGLGeoTIFFTerrainLayer.d.ts +82 -0
- package/dist/types/map-provider/deck/LayerGroupWithModel.d.ts +55 -0
- package/dist/types/map-provider/deck/LayerGroups.d.ts +63 -0
- package/dist/types/map-provider/deck/LayerModel.d.ts +8 -0
- package/dist/types/map-provider/deck/RenderableGroup.d.ts +20 -0
- package/dist/types/map-provider/deck/deck-provider.d.ts +92 -0
- package/dist/types/map-provider/geotiff/geotiff-source.d.ts +30 -0
- package/dist/types/map-provider/geotiff/utils/AABB2D.d.ts +28 -0
- package/dist/types/map-provider/geotiff/utils/BVHNode2D.d.ts +36 -0
- package/dist/types/map-provider/geotiff/utils/GeoTIFFTileProcessor.d.ts +116 -0
- package/dist/types/map-provider/geotiff/utils/Triangle.d.ts +5 -0
- package/dist/types/map-provider/geotiff/utils/Triangulation.d.ts +94 -0
- package/dist/types/map-provider/geotiff/utils/colormap-utils.d.ts +47 -0
- package/dist/types/map-provider/geotiff/utils/normalization-utils.d.ts +39 -0
- package/dist/types/map-provider/geotiff/utils/sampling-utils.d.ts +13 -0
- package/dist/types/map-provider/leaflet/GeoTIFFGridLayer.d.ts +34 -0
- package/dist/types/map-provider/leaflet/WCSGridLayer.d.ts +38 -0
- package/dist/types/map-provider/leaflet/google-map-tiles-layer.d.ts +73 -0
- package/dist/types/map-provider/leaflet/leaflet-helpers.d.ts +6 -0
- package/dist/types/map-provider/leaflet/leaflet-provider.d.ts +73 -0
- package/dist/types/map-provider/ol/CustomGeoTiff.d.ts +14 -0
- package/dist/types/map-provider/ol/openlayers-helper.d.ts +2 -0
- package/dist/types/map-provider/ol/openlayers-provider.d.ts +80 -0
- package/dist/types/map-provider/provider-factory.d.ts +12 -0
- package/dist/types/map-provider/provider-factory.unit.d.ts +1 -0
- package/dist/types/namespaces.d.ts +3 -0
- package/dist/types/ol-augment.d.ts +3 -0
- package/dist/types/ol-override.d.ts +7 -0
- package/dist/types/ol.d.ts +10 -0
- package/dist/types/stencil-public-runtime.d.ts +1860 -0
- package/dist/types/testing/browser-test-utils.d.ts +6 -0
- package/dist/types/testing/e2e-testing.d.ts +5 -0
- package/dist/types/testing/e2e-utils.d.ts +4 -0
- package/dist/types/testing/geotiff-test-server.d.ts +5 -0
- package/dist/types/testing/mocks/geostyler-lyrx-parser.d.ts +11 -0
- package/dist/types/testing/mocks/geostyler-mapbox-parser.d.ts +11 -0
- package/dist/types/testing/mocks/geostyler-qgis-parser.d.ts +11 -0
- package/dist/types/testing/mocks/geostyler-sld-parser.d.ts +11 -0
- package/dist/types/testing/mocks/geostyler-style.d.ts +5 -0
- package/dist/types/testing/setupTests.browser.d.ts +1 -0
- package/dist/types/testing/setupTests.stencil.d.ts +1 -0
- package/dist/types/testing/setupTests.vitest.d.ts +1 -0
- package/dist/types/testing/stencil-testing-wrapper.d.ts +3 -0
- package/dist/types/types/color.d.ts +1 -0
- package/dist/types/types/cssmode.d.ts +1 -0
- package/dist/types/types/flavour.d.ts +1 -0
- package/dist/types/types/layerconfig.d.ts +207 -0
- package/dist/types/types/lonlat.d.ts +1 -0
- package/dist/types/types/mapinitoptions.d.ts +4 -0
- package/dist/types/types/mapprovider.d.ts +46 -0
- package/dist/types/types/provideroptions.d.ts +8 -0
- package/dist/types/types/styleconfig.d.ts +27 -0
- package/dist/types/types/styling.d.ts +24 -0
- package/dist/types/types/styling.unit.d.ts +1 -0
- package/dist/types/types/vmaplayer.d.ts +10 -0
- package/dist/types/utils/async-mutex.d.ts +7 -0
- package/dist/types/utils/diff.d.ts +64 -0
- package/dist/types/utils/diff.unit.d.ts +1 -0
- package/dist/types/utils/dom-env.d.ts +5 -0
- package/dist/types/utils/dom-env.unit.d.ts +1 -0
- package/dist/types/utils/events.d.ts +29 -0
- package/dist/types/utils/logger.d.ts +47 -0
- package/dist/types/utils/logger.unit.d.ts +1 -0
- package/dist/types/utils/messages.d.ts +12 -0
- package/dist/types/utils/spatial-utils.d.ts +6 -0
- package/dist/types/utils/spatial-utils.unit.d.ts +1 -0
- package/dist/types/versions.d.ts +7 -0
- package/dist/v-map/index.esm.js +0 -0
- package/dist/v-map/p--vVleK-M.js +1 -0
- package/dist/v-map/p-09d10db0.entry.js +1 -0
- package/dist/v-map/p-5eba6058.entry.js +10 -0
- package/dist/v-map/p-6b102336.entry.js +1 -0
- package/dist/v-map/p-B-bAcABs.js +1 -0
- package/dist/v-map/p-BBpiaTpT.js +1 -0
- package/dist/v-map/p-BdijL4Av.js +1 -0
- package/dist/v-map/p-Be3r33VF.js +4 -0
- package/dist/v-map/p-BeFu0ap4.js +1 -0
- package/dist/v-map/p-BxFJezdK.js +1 -0
- package/dist/v-map/p-CMKJzsgL.js +1 -0
- package/dist/v-map/p-CXfA_q8m.js +1 -0
- package/dist/v-map/p-CZqY0yW4.js +1 -0
- package/dist/v-map/p-CafTHT9i.js +1 -0
- package/dist/v-map/p-DCTHyf58.js +1 -0
- package/dist/v-map/p-DQuL1Twl.js +1 -0
- package/dist/v-map/p-DR9McdNX.js +1 -0
- package/dist/v-map/p-Dckgonw8.js +1 -0
- package/dist/v-map/p-DhQAXuA7.js +15 -0
- package/dist/v-map/p-DmICdG34.js +7 -0
- package/dist/v-map/p-DrOQ9V4h.js +1 -0
- package/dist/v-map/p-DvHXtWUg.js +1 -0
- package/dist/v-map/p-E-ZsRS8r.js +1 -0
- package/dist/v-map/p-MyTSFnEk.js +1 -0
- package/dist/v-map/p-RpJarvr_.js +1 -0
- package/dist/v-map/p-WaMDUuAz.js +1 -0
- package/dist/v-map/p-aa410e64.entry.js +2 -0
- package/dist/v-map/p-c21c93fe.entry.js +1 -0
- package/dist/v-map/p-jzneDarq.js +2 -0
- package/dist/v-map/p-uiIP-taz.js +1 -0
- package/dist/v-map/v-map.esm.js +1 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +193 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { Layer, LayerProps } from '@deck.gl/core';
|
|
2
|
+
import type { ColorMap as GeoStylerColorMap } from 'geostyler-style';
|
|
3
|
+
import { type ColorMapName } from '../geotiff/utils/colormap-utils';
|
|
4
|
+
export interface DeckGLGeoTIFFTerrainLayerProps extends LayerProps {
|
|
5
|
+
url?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Quell-Projektion des GeoTIFF (z. B. \"EPSG:32632\" oder proj4-String)
|
|
8
|
+
*/
|
|
9
|
+
projection?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Erzwingt die Verwendung der projection-Prop, ignoriert GeoKeys
|
|
12
|
+
*/
|
|
13
|
+
forceProjection?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* NoData-Wert für ungültige Höhendaten
|
|
16
|
+
*/
|
|
17
|
+
noDataValue?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Minimale Zoom-Stufe
|
|
20
|
+
*/
|
|
21
|
+
minZoom?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Maximale Zoom-Stufe
|
|
24
|
+
*/
|
|
25
|
+
maxZoom?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Tile-Größe in Pixeln (muss 2^n sein, z. B. 256 oder 512)
|
|
28
|
+
*/
|
|
29
|
+
tileSize?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Mesh-Fehlertoleranz in Metern für Martini-Triangulierung.
|
|
32
|
+
* Kleinere Werte = detaillierteres Mesh, aber höhere GPU-Last.
|
|
33
|
+
* Default: 4.0
|
|
34
|
+
*/
|
|
35
|
+
meshMaxError?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Wireframe-Modus: zeigt nur Mesh-Linien (terrain-Modus)
|
|
38
|
+
* Default: false
|
|
39
|
+
*/
|
|
40
|
+
wireframe?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Textur-URL (optional)
|
|
43
|
+
*/
|
|
44
|
+
texture?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Farbe für das Terrain-Mesh (terrain-Modus, wenn keine Textur)
|
|
47
|
+
* [r, g, b] mit Werten 0-255
|
|
48
|
+
*/
|
|
49
|
+
color?: [number, number, number];
|
|
50
|
+
/**
|
|
51
|
+
* ColorMap für Höhendaten-Visualisierung (colormap-Modus)
|
|
52
|
+
*/
|
|
53
|
+
colorMap?: ColorMapName | GeoStylerColorMap;
|
|
54
|
+
/**
|
|
55
|
+
* Wertebereich für ColorMap-Normalisierung [min, max]
|
|
56
|
+
*/
|
|
57
|
+
valueRange?: [number, number];
|
|
58
|
+
/**
|
|
59
|
+
* Höhen-Überhöhung (terrain-Modus)
|
|
60
|
+
* Default: 1.0
|
|
61
|
+
*/
|
|
62
|
+
elevationScale?: number;
|
|
63
|
+
/**
|
|
64
|
+
* Rendering-Modus:
|
|
65
|
+
* - 'terrain': 3D-Mesh via Martini-Algorithmus (Standard)
|
|
66
|
+
* - 'colormap': 2D-Kacheln mit Farbkarte (TileLayer + BitmapLayer)
|
|
67
|
+
*/
|
|
68
|
+
renderMode?: 'terrain' | 'colormap';
|
|
69
|
+
/** Optional callback for tile load errors, wired by provider. */
|
|
70
|
+
onTileLoadError?: (err: Error) => void;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Factory-Funktion zum Erstellen eines DeckGLGeoTIFFTerrainLayer
|
|
74
|
+
*
|
|
75
|
+
* Rendert GeoTIFF-Höhendaten als 3D-Terrain-Mesh (Standard) oder als
|
|
76
|
+
* colormap-basierte 2D-Kacheln.
|
|
77
|
+
*
|
|
78
|
+
* Im terrain-Modus (Standard) wird der Martini-Algorithmus (@mapbox/martini)
|
|
79
|
+
* für adaptive RTIN-Mesh-Generierung verwendet. meshMaxError, wireframe und
|
|
80
|
+
* elevationScale sind in diesem Modus funktional.
|
|
81
|
+
*/
|
|
82
|
+
export declare function createDeckGLGeoTIFFTerrainLayer(props: DeckGLGeoTIFFTerrainLayerProps): Promise<Layer>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Layer } from '@deck.gl/core';
|
|
2
|
+
import type { RenderableGroup } from './RenderableGroup';
|
|
3
|
+
import type { LayerModel } from './LayerModel';
|
|
4
|
+
export type SyncMode = 'force-model' | 'respect-deck';
|
|
5
|
+
type LayerOverrides<L extends Layer> = Partial<L['props']> & {
|
|
6
|
+
opacity?: number;
|
|
7
|
+
visible?: boolean;
|
|
8
|
+
zIndex?: number;
|
|
9
|
+
data?: unknown;
|
|
10
|
+
url?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare class LayerGroupWithModel<L extends Layer = Layer> implements RenderableGroup<L> {
|
|
13
|
+
readonly id: string;
|
|
14
|
+
private _visible;
|
|
15
|
+
private _syncMode;
|
|
16
|
+
private _models;
|
|
17
|
+
private _instances;
|
|
18
|
+
private _recreateOnNextEmit;
|
|
19
|
+
private _overrides;
|
|
20
|
+
private _dirty;
|
|
21
|
+
private _cachedLayers;
|
|
22
|
+
private _basemap;
|
|
23
|
+
constructor(opts: {
|
|
24
|
+
id: string;
|
|
25
|
+
visible?: boolean;
|
|
26
|
+
syncMode?: SyncMode;
|
|
27
|
+
models?: ReadonlyArray<LayerModel<L>>;
|
|
28
|
+
basemap?: string | null;
|
|
29
|
+
});
|
|
30
|
+
get visible(): boolean;
|
|
31
|
+
set visible(v: boolean);
|
|
32
|
+
get syncMode(): SyncMode;
|
|
33
|
+
set syncMode(m: SyncMode);
|
|
34
|
+
set basemap(b: string | null);
|
|
35
|
+
get basemap(): string | null;
|
|
36
|
+
isDirty(): boolean;
|
|
37
|
+
addModel(model: LayerModel<L>): void;
|
|
38
|
+
addModels(models: ReadonlyArray<LayerModel<L>>): void;
|
|
39
|
+
getModel(id: string): {
|
|
40
|
+
id: string;
|
|
41
|
+
elementId: string;
|
|
42
|
+
enabled: boolean;
|
|
43
|
+
make: () => L;
|
|
44
|
+
meta?: Record<string, unknown>;
|
|
45
|
+
};
|
|
46
|
+
removeModel(id: string): void;
|
|
47
|
+
clear(): void;
|
|
48
|
+
setModelEnabled(id: string, enabled: boolean): void;
|
|
49
|
+
replaceModel(model: LayerModel<L>): void;
|
|
50
|
+
setModelOverrides(id: string, overrides: LayerOverrides<L>): void;
|
|
51
|
+
clearModelOverrides(id: string): void;
|
|
52
|
+
getLayers(): readonly L[];
|
|
53
|
+
destroy(): void;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Layer } from '@deck.gl/core';
|
|
2
|
+
import type { Deck, DeckProps } from '@deck.gl/core';
|
|
3
|
+
import type { RenderableGroup } from './RenderableGroup';
|
|
4
|
+
/** Kompatibel zu deck.gl Deck.setProps */
|
|
5
|
+
export interface DeckLike {
|
|
6
|
+
setProps(props: Partial<DeckProps<any>>): void;
|
|
7
|
+
}
|
|
8
|
+
export interface LayerGroupsProps<L extends Layer = Layer, G extends RenderableGroup<L> = RenderableGroup<L>> {
|
|
9
|
+
groups?: ReadonlyArray<G>;
|
|
10
|
+
}
|
|
11
|
+
export declare class LayerGroups<L extends Layer = Layer, G extends RenderableGroup<L> = RenderableGroup<L>> {
|
|
12
|
+
private _groups;
|
|
13
|
+
private _dirty;
|
|
14
|
+
private _cachedLayers;
|
|
15
|
+
private _deck;
|
|
16
|
+
constructor(props?: LayerGroupsProps<L, G>);
|
|
17
|
+
get size(): number;
|
|
18
|
+
get groups(): readonly G[];
|
|
19
|
+
getGroup(id: string): G | undefined;
|
|
20
|
+
hasGroup(id: string): boolean;
|
|
21
|
+
attachDeck(deck: Deck | DeckLike): void;
|
|
22
|
+
detachDeck(): void;
|
|
23
|
+
applyToDeck(options?: {
|
|
24
|
+
respectExternalChanges?: boolean;
|
|
25
|
+
}): void;
|
|
26
|
+
addGroup(group: G): void;
|
|
27
|
+
addGroups(groups: ReadonlyArray<G>): void;
|
|
28
|
+
removeGroup(id: string, opts?: {
|
|
29
|
+
destroy?: boolean;
|
|
30
|
+
}): void;
|
|
31
|
+
clear(opts?: {
|
|
32
|
+
destroy?: boolean;
|
|
33
|
+
}): void;
|
|
34
|
+
replaceGroup(group: G, keepPosition?: boolean): void;
|
|
35
|
+
moveGroup(id: string, toIndex: number): void;
|
|
36
|
+
setGroupVisible(id: string, visible: boolean, opts?: {
|
|
37
|
+
respectExternalChanges?: boolean;
|
|
38
|
+
}): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Entfernt einen Layer mit gegebener ID aus allen Gruppen, die
|
|
41
|
+
* klassische LayerGroup **unterstützen**. Bei modellbasierten Gruppen
|
|
42
|
+
* suchst du nach Model-ID und nutzt removeModel().
|
|
43
|
+
*/
|
|
44
|
+
removeLayer(layerId: string, opts?: {
|
|
45
|
+
removeFromAll?: boolean;
|
|
46
|
+
respectExternalChanges?: boolean;
|
|
47
|
+
}): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Convenience: Für modellbasierte Gruppen – LayerModel enabled togglen.
|
|
50
|
+
* No-Op für klassische LayerGroup.
|
|
51
|
+
*/
|
|
52
|
+
setModelEnabled(groupId: string, modelId: string, enabled: boolean, opts?: {
|
|
53
|
+
apply?: boolean;
|
|
54
|
+
}): void;
|
|
55
|
+
withUpdate(fn: (store: this) => void): void;
|
|
56
|
+
getLayers(options?: {
|
|
57
|
+
respectExternalChanges?: boolean;
|
|
58
|
+
}): readonly L[];
|
|
59
|
+
markDirty(): void;
|
|
60
|
+
destroy(opts?: {
|
|
61
|
+
destroyGroups?: boolean;
|
|
62
|
+
}): void;
|
|
63
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Layer } from '@deck.gl/core';
|
|
2
|
+
/**
|
|
3
|
+
* Gemeinsames Interface, das sowohl von der klassischen LayerGroup als auch
|
|
4
|
+
* von der modellbasierten LayerGroupWithModel implementiert wird.
|
|
5
|
+
*/
|
|
6
|
+
export interface RenderableGroup<L extends Layer = Layer> {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
visible: boolean;
|
|
9
|
+
/** true, wenn ein Rebuild der Ausgabe-Layer nötig ist */
|
|
10
|
+
isDirty(): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Liefert die Deck-Layer zur Darstellung.
|
|
13
|
+
* groups/LayerGroups reichen intern options weiter (falls benötigt).
|
|
14
|
+
*/
|
|
15
|
+
getLayers(options?: {
|
|
16
|
+
respectExternalChanges?: boolean;
|
|
17
|
+
}): readonly L[];
|
|
18
|
+
/** Optionale Ressourcenfreigabe */
|
|
19
|
+
destroy?(): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { MapProvider, LayerUpdate, LayerErrorCallback } from '../../types/mapprovider';
|
|
2
|
+
import type { ProviderOptions } from '../../types/provideroptions';
|
|
3
|
+
import type { LayerConfig } from '../../types/layerconfig';
|
|
4
|
+
import type { LonLat } from '../../types/lonlat';
|
|
5
|
+
import { Deck } from '@deck.gl/core';
|
|
6
|
+
import type { Layer } from '@deck.gl/core';
|
|
7
|
+
export declare class DeckProvider implements MapProvider {
|
|
8
|
+
private deck;
|
|
9
|
+
private target;
|
|
10
|
+
private shadowRoot;
|
|
11
|
+
private injectedStyle;
|
|
12
|
+
private layerGroups;
|
|
13
|
+
private layerErrorCallbacks;
|
|
14
|
+
init(opts: ProviderOptions): Promise<void>;
|
|
15
|
+
/** Liefert (oder erzeugt) eine modellbasierte Gruppe */
|
|
16
|
+
private ensureModelGroup;
|
|
17
|
+
/** Erzeugt ein LayerModel aus einem LayerConfig + Factory */
|
|
18
|
+
private createLayerModel;
|
|
19
|
+
private buildXyzTileLayer;
|
|
20
|
+
private buildArcgisUrl;
|
|
21
|
+
private buildArcgisTileLayer;
|
|
22
|
+
private buildTerrainLayer;
|
|
23
|
+
private getModelUrl;
|
|
24
|
+
private normalizeElevationDecoder;
|
|
25
|
+
/**
|
|
26
|
+
* Convert a Geostyler style to Deck.gl style configuration
|
|
27
|
+
*/
|
|
28
|
+
private createGeostylerDeckGLStyle;
|
|
29
|
+
/**
|
|
30
|
+
* Convert CSS color to Deck.gl RGBA array
|
|
31
|
+
*/
|
|
32
|
+
private parseColor;
|
|
33
|
+
/**
|
|
34
|
+
* Apply opacity to color array
|
|
35
|
+
*/
|
|
36
|
+
private applyOpacity;
|
|
37
|
+
/**
|
|
38
|
+
* Create Deck.gl style configuration from StyleConfig
|
|
39
|
+
*/
|
|
40
|
+
private createDeckGLStyle;
|
|
41
|
+
private buildOsmLayer;
|
|
42
|
+
private buildGoogleTileLayer;
|
|
43
|
+
private getGoogleMapTypeId;
|
|
44
|
+
/**
|
|
45
|
+
* Load Google Maps JavaScript API
|
|
46
|
+
*/
|
|
47
|
+
private loadGoogleMapsApi;
|
|
48
|
+
/**
|
|
49
|
+
* Add Google logo for compliance
|
|
50
|
+
*/
|
|
51
|
+
private ensureGoogleLogo;
|
|
52
|
+
buildScatterPlot(layerConfig: Extract<LayerConfig, {
|
|
53
|
+
type: 'scatterplot';
|
|
54
|
+
}>, layerId: string): Promise<Layer>;
|
|
55
|
+
private createGeoJSONLayer;
|
|
56
|
+
private buildWmsTileLayer;
|
|
57
|
+
/**
|
|
58
|
+
* Build WCS (Web Coverage Service) TileLayer for deck.gl
|
|
59
|
+
* Supports WCS 2.0.1 (subset) and 1.x.x (BBOX) versions
|
|
60
|
+
*/
|
|
61
|
+
private buildWcsTileLayer;
|
|
62
|
+
private createLayer;
|
|
63
|
+
addLayerToGroup(layerConfig: LayerConfig): Promise<string>;
|
|
64
|
+
addBaseLayer(layerConfig: LayerConfig, basemapid: string, layerElementId: string): Promise<string>;
|
|
65
|
+
setBaseLayer(groupId: string, layerElementId: string): Promise<void>;
|
|
66
|
+
ensureGroup(groupId: string, visible: boolean, _opts?: {
|
|
67
|
+
basemapid?: string;
|
|
68
|
+
}): Promise<void>;
|
|
69
|
+
private _ensureGroup;
|
|
70
|
+
updateLayer(layerId: string, update: LayerUpdate): Promise<void>;
|
|
71
|
+
onLayerError(layerId: string, callback: LayerErrorCallback): void;
|
|
72
|
+
offLayerError(layerId: string): void;
|
|
73
|
+
removeLayer(layerId: string): Promise<void>;
|
|
74
|
+
setOpacity(layerId: string, opacity: number): Promise<void>;
|
|
75
|
+
setZIndex(layerId: string, zIndex: number): Promise<void>;
|
|
76
|
+
setVisible(layerId: string, visible: boolean): Promise<void>;
|
|
77
|
+
setGroupVisible(groupId: string, visible: boolean): Promise<void>;
|
|
78
|
+
setView([lon, lat]: LonLat, zoom: number): Promise<void>;
|
|
79
|
+
private createWKTLayer;
|
|
80
|
+
private resolveWktToGeoJSON;
|
|
81
|
+
private resolveWktText;
|
|
82
|
+
private wktToGeoJSON;
|
|
83
|
+
private createGeoTIFFLayer;
|
|
84
|
+
private createGeoTIFFTerrainLayer;
|
|
85
|
+
onPointerMove(callback: (coordinate: [number, number] | null, pixel: [number, number]) => void): () => void;
|
|
86
|
+
destroy(): Promise<void>;
|
|
87
|
+
private createWFSLayer;
|
|
88
|
+
private fetchWFSFromUrl;
|
|
89
|
+
private appendParams;
|
|
90
|
+
getMap(): Deck<null>;
|
|
91
|
+
}
|
|
92
|
+
export default DeckProvider;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { GeoTIFF, GeoTIFFImage } from 'geotiff';
|
|
2
|
+
import type proj4Type from 'proj4';
|
|
3
|
+
export interface GeoTIFFSourceOptions {
|
|
4
|
+
projection?: string;
|
|
5
|
+
forceProjection?: boolean;
|
|
6
|
+
nodata?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface GeoTIFFLoaderDeps {
|
|
9
|
+
geotiff: typeof import('geotiff');
|
|
10
|
+
proj4: typeof proj4Type;
|
|
11
|
+
geokeysToProj4: typeof import('geotiff-geokeys-to-proj4');
|
|
12
|
+
}
|
|
13
|
+
export interface GeoTIFFSource {
|
|
14
|
+
tiff: GeoTIFF;
|
|
15
|
+
baseImage: GeoTIFFImage;
|
|
16
|
+
overviewImages: GeoTIFFImage[];
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
samplesPerPixel: number;
|
|
20
|
+
fromProjection: string;
|
|
21
|
+
sourceBounds: [number, number, number, number];
|
|
22
|
+
sourceRef: [number, number];
|
|
23
|
+
resolution: number;
|
|
24
|
+
proj4: typeof proj4Type;
|
|
25
|
+
noDataValue?: number;
|
|
26
|
+
wgs84Bounds: [number, number, number, number];
|
|
27
|
+
transformToWgs84: (coord: [number, number]) => [number, number];
|
|
28
|
+
}
|
|
29
|
+
export declare function loadGeoTIFFSource(url: string, options: GeoTIFFSourceOptions, deps: GeoTIFFLoaderDeps): Promise<GeoTIFFSource>;
|
|
30
|
+
export declare function getGeoTIFFSource(url: string, projection: string, forceProjection: boolean, nodata: number): Promise<GeoTIFFSource>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ITriangle } from './Triangle';
|
|
2
|
+
export type AffineTransform = {
|
|
3
|
+
a: number;
|
|
4
|
+
b: number;
|
|
5
|
+
c: number;
|
|
6
|
+
d: number;
|
|
7
|
+
e: number;
|
|
8
|
+
f: number;
|
|
9
|
+
};
|
|
10
|
+
export type Point2D = {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
};
|
|
14
|
+
export type Triangle2D = {
|
|
15
|
+
a: Point2D;
|
|
16
|
+
b: Point2D;
|
|
17
|
+
c: Point2D;
|
|
18
|
+
triangle: ITriangle;
|
|
19
|
+
transform: AffineTransform | null;
|
|
20
|
+
};
|
|
21
|
+
export declare class AABB2D {
|
|
22
|
+
min: Point2D;
|
|
23
|
+
max: Point2D;
|
|
24
|
+
constructor(min: Point2D, max: Point2D);
|
|
25
|
+
contains(point: Point2D): boolean;
|
|
26
|
+
static fromTriangle(triangle: Triangle2D): AABB2D;
|
|
27
|
+
static union(a: AABB2D, b: AABB2D): AABB2D;
|
|
28
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AABB2D, Point2D, Triangle2D } from './AABB2D';
|
|
2
|
+
import { ITriangle } from './Triangle';
|
|
3
|
+
export declare class BVHNode2D {
|
|
4
|
+
bbox: AABB2D;
|
|
5
|
+
triangles: Triangle2D[];
|
|
6
|
+
left: BVHNode2D | null;
|
|
7
|
+
right: BVHNode2D | null;
|
|
8
|
+
constructor(bbox: AABB2D, triangles?: Triangle2D[], left?: BVHNode2D | null, right?: BVHNode2D | null);
|
|
9
|
+
static build(triangles: Triangle2D[], depth?: number, maxDepth?: number): BVHNode2D;
|
|
10
|
+
/**
|
|
11
|
+
* Finds the triangle containing the given point.
|
|
12
|
+
* @param point The point to test.
|
|
13
|
+
* @returns The containing triangle or `null`.
|
|
14
|
+
*/
|
|
15
|
+
findContainingTriangle(point: Point2D): Triangle2D | null;
|
|
16
|
+
static punktInDreieck2D(p: Point2D, triangle: Triangle2D): boolean;
|
|
17
|
+
static toTriangle2D(triangle: ITriangle): Triangle2D;
|
|
18
|
+
/**
|
|
19
|
+
* Returns a string representation of the BVH tree structure
|
|
20
|
+
* @param indent - Internal parameter for recursive formatting
|
|
21
|
+
* @returns Formatted string showing tree structure
|
|
22
|
+
*/
|
|
23
|
+
toString(indent?: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Get statistics about the BVH tree
|
|
26
|
+
* @returns Object with tree statistics
|
|
27
|
+
*/
|
|
28
|
+
getStats(): {
|
|
29
|
+
depth: number;
|
|
30
|
+
nodeCount: number;
|
|
31
|
+
leafCount: number;
|
|
32
|
+
triangleCount: number;
|
|
33
|
+
minTrianglesPerLeaf: number;
|
|
34
|
+
maxTrianglesPerLeaf: number;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { GeoTIFFImage } from 'geotiff';
|
|
2
|
+
import { Triangulation } from './Triangulation';
|
|
3
|
+
import { type ColorStop } from './colormap-utils';
|
|
4
|
+
import { GeoTIFFSource } from '../geotiff-source';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for the GeoTIFF Tile Processor
|
|
7
|
+
*/
|
|
8
|
+
export interface GeoTIFFTileProcessorConfig {
|
|
9
|
+
transformViewToSourceMapFn: (coord: [number, number]) => [number, number];
|
|
10
|
+
transformSourceMapToViewFn: (coord: [number, number]) => [number, number];
|
|
11
|
+
sourceBounds: [number, number, number, number];
|
|
12
|
+
sourceRef: [number, number];
|
|
13
|
+
resolution: number;
|
|
14
|
+
imageWidth: number;
|
|
15
|
+
imageHeight: number;
|
|
16
|
+
fromProjection: string;
|
|
17
|
+
toProjection: string;
|
|
18
|
+
baseImage: GeoTIFFImage;
|
|
19
|
+
overviewImages: GeoTIFFImage[];
|
|
20
|
+
noDataValue?: number;
|
|
21
|
+
worldSize?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Parameters for tile data generation
|
|
25
|
+
*/
|
|
26
|
+
export interface TileDataParams {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
z: number;
|
|
30
|
+
tileSize: number;
|
|
31
|
+
resolution: number;
|
|
32
|
+
resampleMethod: 'near' | 'bilinear';
|
|
33
|
+
colorStops?: ColorStop[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Processes GeoTIFF tiles with triangulation-based reprojection
|
|
37
|
+
*
|
|
38
|
+
* This class encapsulates the tile rendering logic using triangulation
|
|
39
|
+
* for efficient reprojection from arbitrary source projections to Web Mercator.
|
|
40
|
+
*/
|
|
41
|
+
export declare class GeoTIFFTileProcessor {
|
|
42
|
+
private config;
|
|
43
|
+
private worldSize;
|
|
44
|
+
private globalTriangulation?;
|
|
45
|
+
constructor(config: GeoTIFFTileProcessorConfig);
|
|
46
|
+
/**
|
|
47
|
+
* Create global triangulation for the entire GeoTIFF image
|
|
48
|
+
* This is called once to avoid recreating triangulation for every tile
|
|
49
|
+
*/
|
|
50
|
+
createGlobalTriangulation(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Get the global triangulation (may be undefined if not created yet)
|
|
53
|
+
*/
|
|
54
|
+
getGlobalTriangulation(): Triangulation | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Normalize terrain samples so mesh generation does not create spikes
|
|
57
|
+
* for nodata or otherwise invalid height values.
|
|
58
|
+
*/
|
|
59
|
+
private sanitizeElevationValue;
|
|
60
|
+
/**
|
|
61
|
+
* Calculate tile size in meters for a given zoom level
|
|
62
|
+
*/
|
|
63
|
+
private getTileSizeInMeter;
|
|
64
|
+
/**
|
|
65
|
+
* Convert tile coordinates to View projection bounds
|
|
66
|
+
* For Web Mercator (deck.gl/Leaflet/Cesium): returns bounds in meters
|
|
67
|
+
* Note: This assumes Web Mercator tiling scheme. Override for other projections.
|
|
68
|
+
*/
|
|
69
|
+
private getTileBounds;
|
|
70
|
+
/**
|
|
71
|
+
* Select best overview image based on zoom level
|
|
72
|
+
*/
|
|
73
|
+
private selectOverviewImage;
|
|
74
|
+
/**
|
|
75
|
+
* Calculate source bounds for a tile after transformation
|
|
76
|
+
* @param viewBounds - Tile bounds in View projection
|
|
77
|
+
*/
|
|
78
|
+
private calculateTileSourceBounds;
|
|
79
|
+
/**
|
|
80
|
+
* Calculate pixel window for reading from GeoTIFF
|
|
81
|
+
*/
|
|
82
|
+
private calculateReadWindow;
|
|
83
|
+
/**
|
|
84
|
+
* Load and convert raster data from GeoTIFF image
|
|
85
|
+
*/
|
|
86
|
+
private loadAndConvertRasterData;
|
|
87
|
+
/**
|
|
88
|
+
* Render tile pixels using triangulation-based reprojection
|
|
89
|
+
*/
|
|
90
|
+
private renderTilePixels;
|
|
91
|
+
/**
|
|
92
|
+
* Check if tile intersects with GeoTIFF source bounds
|
|
93
|
+
* @param viewBounds - Tile bounds in View projection (e.g., Web Mercator for deck.gl/Leaflet/Cesium)
|
|
94
|
+
*/
|
|
95
|
+
private tileIntersectsSource;
|
|
96
|
+
/**
|
|
97
|
+
* Generate tile data with triangulation-based reprojection
|
|
98
|
+
*
|
|
99
|
+
* This is the main method that orchestrates the entire tile rendering process.
|
|
100
|
+
*/
|
|
101
|
+
getTileData(params: TileDataParams): Promise<Uint8ClampedArray | null>;
|
|
102
|
+
/**
|
|
103
|
+
* Get raw elevation values for a tile as Float32Array.
|
|
104
|
+
*
|
|
105
|
+
* Returns a (tileSize+1) × (tileSize+1) float array suitable for Martini
|
|
106
|
+
* terrain mesh generation. Border pixels are backfilled for Martini compatibility.
|
|
107
|
+
* Band 0 of the GeoTIFF is used as the elevation source.
|
|
108
|
+
*/
|
|
109
|
+
getElevationData(params: {
|
|
110
|
+
x: number;
|
|
111
|
+
y: number;
|
|
112
|
+
z: number;
|
|
113
|
+
tileSize: number;
|
|
114
|
+
}): Promise<Float32Array | null>;
|
|
115
|
+
}
|
|
116
|
+
export declare function getTileProcessorConfig(tiffSource: GeoTIFFSource, viewProjection: string): Promise<GeoTIFFTileProcessorConfig>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Triangulation for raster reprojection
|
|
3
|
+
*
|
|
4
|
+
* Based on OpenLayers' triangulation approach for efficient raster reprojection.
|
|
5
|
+
* Instead of transforming every pixel, we:
|
|
6
|
+
* 1. Divide the target extent into triangles
|
|
7
|
+
* 2. Transform only triangle vertices with proj4
|
|
8
|
+
* 3. Use affine transformation to map pixels within each triangle
|
|
9
|
+
*
|
|
10
|
+
* This reduces proj4 calls from ~65,536 per tile to ~50-200 per tile.
|
|
11
|
+
*/
|
|
12
|
+
import { ITriangle } from './Triangle';
|
|
13
|
+
import { AffineTransform } from './AABB2D';
|
|
14
|
+
interface TransformFunction {
|
|
15
|
+
(coord: [number, number]): [number, number];
|
|
16
|
+
}
|
|
17
|
+
export type TriResult = {
|
|
18
|
+
tri: ITriangle;
|
|
19
|
+
transform: AffineTransform | null;
|
|
20
|
+
};
|
|
21
|
+
export type Bounds = {
|
|
22
|
+
minX: number;
|
|
23
|
+
minY: number;
|
|
24
|
+
maxX: number;
|
|
25
|
+
maxY: number;
|
|
26
|
+
};
|
|
27
|
+
export declare function calculateBounds(sourceRef: [number, number], resolution: number, targetExtent: [number, number, number, number], transformFn: TransformFunction, step?: number): {
|
|
28
|
+
source: Bounds;
|
|
29
|
+
target: Bounds;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Class for triangulation of the given target extent
|
|
33
|
+
* Used for determining source data and the reprojection itself
|
|
34
|
+
*/
|
|
35
|
+
export declare class Triangulation {
|
|
36
|
+
private triangles_;
|
|
37
|
+
private transformFn_;
|
|
38
|
+
private errorThresholdSquared_;
|
|
39
|
+
private bvh_;
|
|
40
|
+
private bounds;
|
|
41
|
+
/**
|
|
42
|
+
* @param transformFn - Function that transforms [x, y] from target to source projection
|
|
43
|
+
* @param targetExtent - [west, south, east, north] in target projection
|
|
44
|
+
* @param errorThreshold - Maximum allowed error in pixels (default: 0.5)
|
|
45
|
+
*/
|
|
46
|
+
constructor(transformFn: TransformFunction, targetExtent: [number, number, number, number], errorThreshold?: number, sourceRef?: [number, number], resolution?: number, step?: number);
|
|
47
|
+
getBounds(): Bounds;
|
|
48
|
+
/**
|
|
49
|
+
* Recursively subdivide a quadrilateral if needed
|
|
50
|
+
*/
|
|
51
|
+
private addQuad_;
|
|
52
|
+
/**
|
|
53
|
+
* Add a single triangle
|
|
54
|
+
*/
|
|
55
|
+
private addTriangle_;
|
|
56
|
+
/**
|
|
57
|
+
* Calculate squared error between two points
|
|
58
|
+
*/
|
|
59
|
+
private getSquaredError_;
|
|
60
|
+
/**
|
|
61
|
+
* Get all triangles
|
|
62
|
+
*/
|
|
63
|
+
getTriangles(): ITriangle[];
|
|
64
|
+
/**
|
|
65
|
+
* Calculate the bounding extent of all source coordinates
|
|
66
|
+
*/
|
|
67
|
+
calculateSourceExtent(): [number, number, number, number] | null;
|
|
68
|
+
buildBVH(): void;
|
|
69
|
+
findSourceTriangleForTargetPoint(point: [number, number], extraTri?: TriResult): TriResult | null;
|
|
70
|
+
/**
|
|
71
|
+
* Calculate affine transformation matrix for a triangle
|
|
72
|
+
* Maps from target triangle to source triangle
|
|
73
|
+
*/
|
|
74
|
+
calculateAffineTransform(triangle: ITriangle): {
|
|
75
|
+
a: number;
|
|
76
|
+
b: number;
|
|
77
|
+
c: number;
|
|
78
|
+
d: number;
|
|
79
|
+
e: number;
|
|
80
|
+
f: number;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Apply affine transformation to a point
|
|
84
|
+
*/
|
|
85
|
+
applyAffineTransform(x: number, y: number, transform: {
|
|
86
|
+
a: number;
|
|
87
|
+
b: number;
|
|
88
|
+
c: number;
|
|
89
|
+
d: number;
|
|
90
|
+
e: number;
|
|
91
|
+
f: number;
|
|
92
|
+
}): [number, number];
|
|
93
|
+
}
|
|
94
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ColorMap utilities for GeoTIFF visualization
|
|
3
|
+
* Extracted for testability
|
|
4
|
+
*/
|
|
5
|
+
import type { ColorMap as GeoStylerColorMap } from 'geostyler-style';
|
|
6
|
+
export interface ColorStop {
|
|
7
|
+
value: number;
|
|
8
|
+
color: [number, number, number];
|
|
9
|
+
}
|
|
10
|
+
export type ColorMapName = 'grayscale' | 'viridis' | 'terrain' | 'turbo' | 'rainbow';
|
|
11
|
+
/**
|
|
12
|
+
* Predefined color maps
|
|
13
|
+
*/
|
|
14
|
+
export declare const PREDEFINED_COLORMAPS: Record<ColorMapName, ColorStop[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Parse a hex color string to RGB array
|
|
17
|
+
* @param hexColor - Hex color string (e.g., "#FF0000" or "#F00")
|
|
18
|
+
* @returns RGB array [r, g, b] with values 0-255
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseHexColor(hexColor: string): [number, number, number];
|
|
21
|
+
/**
|
|
22
|
+
* Convert GeoStyler ColorMap to internal ColorStop array
|
|
23
|
+
* @param geoStylerColorMap - GeoStyler ColorMap object
|
|
24
|
+
* @param valueRange - Optional value range [min, max] for normalization
|
|
25
|
+
* @returns Object with ColorStop array and computed range
|
|
26
|
+
*/
|
|
27
|
+
export declare function convertGeoStylerColorMap(geoStylerColorMap: GeoStylerColorMap, valueRange?: [number, number]): {
|
|
28
|
+
stops: ColorStop[];
|
|
29
|
+
computedRange?: [number, number];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Apply colormap to a normalized value using interpolation
|
|
33
|
+
* @param normalizedValue - Value between 0 and 1
|
|
34
|
+
* @param colorStops - Array of color stops (must be sorted by value)
|
|
35
|
+
* @returns RGB color [r, g, b]
|
|
36
|
+
*/
|
|
37
|
+
export declare function applyColorMap(normalizedValue: number, colorStops: ColorStop[]): [number, number, number];
|
|
38
|
+
/**
|
|
39
|
+
* Get ColorStop array from ColorMapName or GeoStyler ColorMap
|
|
40
|
+
* @param colorMap - Predefined name or GeoStyler ColorMap
|
|
41
|
+
* @param valueRange - Optional value range for GeoStyler ColorMap
|
|
42
|
+
* @returns ColorStop array and computed range (if applicable)
|
|
43
|
+
*/
|
|
44
|
+
export declare function getColorStops(colorMap: ColorMapName | GeoStylerColorMap, valueRange?: [number, number]): {
|
|
45
|
+
stops: ColorStop[];
|
|
46
|
+
computedRange?: [number, number];
|
|
47
|
+
};
|