@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.
Files changed (438) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +185 -0
  3. package/dist/cjs/_commonjsHelpers-B83fTs8d.js +36 -0
  4. package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
  5. package/dist/cjs/cesium-provider-BiFFyAl9.js +2598 -0
  6. package/dist/cjs/deck-provider-Ctq3Q8a1.js +47824 -0
  7. package/dist/cjs/geotiff-CEwvF9cG.js +47 -0
  8. package/dist/cjs/geotiff-source-RaNzzWkC.js +1522 -0
  9. package/dist/cjs/index-B1oGO1g-.js +10658 -0
  10. package/dist/cjs/index-B8LHqjyg.js +1765 -0
  11. package/dist/cjs/index-BIL4VsgP.js +310 -0
  12. package/dist/cjs/index-Blku2QY8.js +167 -0
  13. package/dist/cjs/index-CJvvX4yx.js +21 -0
  14. package/dist/cjs/index-CbVT-Con.js +699 -0
  15. package/dist/cjs/index-ISOEpMC3.js +20478 -0
  16. package/dist/cjs/index-JSwBbvGA.js +1621 -0
  17. package/dist/cjs/index.browser-DQhD8Jwl.js +6873 -0
  18. package/dist/cjs/index.cjs.js +2 -0
  19. package/dist/cjs/layer-extension-B_olS0rc.js +65 -0
  20. package/dist/cjs/leaflet-provider-DOqfs7g5.js +1815 -0
  21. package/dist/cjs/loader.cjs.js +13 -0
  22. package/dist/cjs/main-dist-7TykwFci.js +2655 -0
  23. package/dist/cjs/messages-D7h4m8Tx.js +186 -0
  24. package/dist/cjs/openlayers-provider-Dfeg6L4n.js +1604 -0
  25. package/dist/cjs/polygon-layer-B9PrN7vr.js +1300 -0
  26. package/dist/cjs/scenegraph-layer-DwNoxQdi.js +2530 -0
  27. package/dist/cjs/styleconfig-CVRqArk-.js +23 -0
  28. package/dist/cjs/v-map-builder.cjs.entry.js +3786 -0
  29. package/dist/cjs/v-map-layer-geojson_12.cjs.entry.js +40894 -0
  30. package/dist/cjs/v-map-layer-helper-iAzxAg9I.js +285 -0
  31. package/dist/cjs/v-map-layer-terrain-geotiff.cjs.entry.js +258 -0
  32. package/dist/cjs/v-map-layercontrol.cjs.entry.js +247 -0
  33. package/dist/cjs/v-map.cjs.js +25 -0
  34. package/dist/cjs/v-map.v-map-layer-osm.v-map-layergroup-BsXp3BoL.js +582 -0
  35. package/dist/cjs/v-map_3.cjs.entry.js +12 -0
  36. package/dist/collection/collection-manifest.json +30 -0
  37. package/dist/collection/components/v-map/v-map.css +3 -0
  38. package/dist/collection/components/v-map/v-map.js +467 -0
  39. package/dist/collection/components/v-map/v-map.test.js +33 -0
  40. package/dist/collection/components/v-map-builder/v-map-builder.css +1 -0
  41. package/dist/collection/components/v-map-builder/v-map-builder.js +913 -0
  42. package/dist/collection/components/v-map-builder/v-map-builder.test.js +56 -0
  43. package/dist/collection/components/v-map-layer-geojson/v-map-layer-geojson.js +862 -0
  44. package/dist/collection/components/v-map-layer-geojson/v-map-layer-geojson.test.js +42 -0
  45. package/dist/collection/components/v-map-layer-geotiff/v-map-layer-geotiff.css +4 -0
  46. package/dist/collection/components/v-map-layer-geotiff/v-map-layer-geotiff.js +500 -0
  47. package/dist/collection/components/v-map-layer-geotiff/v-map-layer-geotiff.test.js +38 -0
  48. package/dist/collection/components/v-map-layer-google/v-map-layer-google.css +1 -0
  49. package/dist/collection/components/v-map-layer-google/v-map-layer-google.js +442 -0
  50. package/dist/collection/components/v-map-layer-osm/error-api.test.js +108 -0
  51. package/dist/collection/components/v-map-layer-osm/v-map-layer-osm.css +4 -0
  52. package/dist/collection/components/v-map-layer-osm/v-map-layer-osm.js +311 -0
  53. package/dist/collection/components/v-map-layer-osm/v-map-layer-osm.test.js +36 -0
  54. package/dist/collection/components/v-map-layer-scatterplot/v-map-layer-scatterplot.css +1 -0
  55. package/dist/collection/components/v-map-layer-scatterplot/v-map-layer-scatterplot.js +305 -0
  56. package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.css +3 -0
  57. package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.js +548 -0
  58. package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.test.js +36 -0
  59. package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.css +3 -0
  60. package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.js +735 -0
  61. package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.test.js +42 -0
  62. package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.css +3 -0
  63. package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.js +449 -0
  64. package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.test.js +50 -0
  65. package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.css +1 -0
  66. package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.js +448 -0
  67. package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.test.js +39 -0
  68. package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.css +1 -0
  69. package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.js +489 -0
  70. package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.test.js +43 -0
  71. package/dist/collection/components/v-map-layer-wkt/v-map-layer-wkt.css +1 -0
  72. package/dist/collection/components/v-map-layer-wkt/v-map-layer-wkt.js +811 -0
  73. package/dist/collection/components/v-map-layer-wkt/v-map-layer-wkt.test.js +34 -0
  74. package/dist/collection/components/v-map-layer-wms/v-map-layer-wms.css +1 -0
  75. package/dist/collection/components/v-map-layer-wms/v-map-layer-wms.js +453 -0
  76. package/dist/collection/components/v-map-layer-wms/v-map-layer-wms.test.js +36 -0
  77. package/dist/collection/components/v-map-layer-xyz/v-map-layer-xyz.css +1 -0
  78. package/dist/collection/components/v-map-layer-xyz/v-map-layer-xyz.js +331 -0
  79. package/dist/collection/components/v-map-layer-xyz/v-map-layer-xyz.test.js +28 -0
  80. package/dist/collection/components/v-map-layercontrol/v-map-layercontrol.css +74 -0
  81. package/dist/collection/components/v-map-layercontrol/v-map-layercontrol.js +277 -0
  82. package/dist/collection/components/v-map-layercontrol/v-map-layercontrol.test.js +134 -0
  83. package/dist/collection/components/v-map-layergroup/v-map-layergroup.css +4 -0
  84. package/dist/collection/components/v-map-layergroup/v-map-layergroup.js +212 -0
  85. package/dist/collection/components/v-map-layergroup/v-map-layergroup.test.js +39 -0
  86. package/dist/collection/components/v-map-style/v-map-style.css +38 -0
  87. package/dist/collection/components/v-map-style/v-map-style.js +492 -0
  88. package/dist/collection/components/v-map-style/v-map-style.unit.js +62 -0
  89. package/dist/collection/index.js +1 -0
  90. package/dist/collection/layer/v-map-layer-helper.js +281 -0
  91. package/dist/collection/layer/v-map-layer-helper.unit.js +234 -0
  92. package/dist/collection/lib/cesium-loader.js +58 -0
  93. package/dist/collection/lib/ensure-importmap.js +12 -0
  94. package/dist/collection/lib/ensure-importmap.unit.js +57 -0
  95. package/dist/collection/lib/versions.gen.js +6 -0
  96. package/dist/collection/lib/vstyle.js +8 -0
  97. package/dist/collection/map-provider/cesium/CesiumGeoTIFFTerrainProvider.js +285 -0
  98. package/dist/collection/map-provider/cesium/CesiumLayerGroups.js +159 -0
  99. package/dist/collection/map-provider/cesium/GeoTIFFImageryProvider.js +192 -0
  100. package/dist/collection/map-provider/cesium/GeoTIFFImageryProvider.test.js +57 -0
  101. package/dist/collection/map-provider/cesium/cesium-provider.js +1408 -0
  102. package/dist/collection/map-provider/cesium/i-layer.js +1 -0
  103. package/dist/collection/map-provider/cesium/layer-manager.js +467 -0
  104. package/dist/collection/map-provider/deck/DeckGLGeoTIFFLayer.js +483 -0
  105. package/dist/collection/map-provider/deck/DeckGLGeoTIFFTerrainLayer.js +410 -0
  106. package/dist/collection/map-provider/deck/LayerGroupWithModel.js +169 -0
  107. package/dist/collection/map-provider/deck/LayerGroups.js +192 -0
  108. package/dist/collection/map-provider/deck/LayerModel.js +1 -0
  109. package/dist/collection/map-provider/deck/RenderableGroup.js +1 -0
  110. package/dist/collection/map-provider/deck/deck-provider.js +1563 -0
  111. package/dist/collection/map-provider/geotiff/geotiff-source.js +172 -0
  112. package/dist/collection/map-provider/geotiff/utils/AABB2D.js +24 -0
  113. package/dist/collection/map-provider/geotiff/utils/BVHNode2D.js +166 -0
  114. package/dist/collection/map-provider/geotiff/utils/GeoTIFFTileProcessor.js +484 -0
  115. package/dist/collection/map-provider/geotiff/utils/Triangle.js +1 -0
  116. package/dist/collection/map-provider/geotiff/utils/Triangulation.js +321 -0
  117. package/dist/collection/map-provider/geotiff/utils/colormap-utils.js +190 -0
  118. package/dist/collection/map-provider/geotiff/utils/normalization-utils.js +122 -0
  119. package/dist/collection/map-provider/geotiff/utils/sampling-utils.js +108 -0
  120. package/dist/collection/map-provider/leaflet/GeoTIFFGridLayer.js +147 -0
  121. package/dist/collection/map-provider/leaflet/WCSGridLayer.js +124 -0
  122. package/dist/collection/map-provider/leaflet/google-map-tiles-layer.js +352 -0
  123. package/dist/collection/map-provider/leaflet/leaflet-helpers.js +94 -0
  124. package/dist/collection/map-provider/leaflet/leaflet-provider.js +1095 -0
  125. package/dist/collection/map-provider/ol/CustomGeoTiff.js +145 -0
  126. package/dist/collection/map-provider/ol/openlayers-helper.js +26 -0
  127. package/dist/collection/map-provider/ol/openlayers-provider.js +1427 -0
  128. package/dist/collection/map-provider/provider-factory.js +44 -0
  129. package/dist/collection/map-provider/provider-factory.unit.js +66 -0
  130. package/dist/collection/testing/browser-test-utils.js +49 -0
  131. package/dist/collection/testing/e2e-testing.js +122 -0
  132. package/dist/collection/testing/e2e-utils.js +70 -0
  133. package/dist/collection/testing/geotiff-test-server.js +100 -0
  134. package/dist/collection/testing/mocks/geostyler-lyrx-parser.js +12 -0
  135. package/dist/collection/testing/mocks/geostyler-mapbox-parser.js +12 -0
  136. package/dist/collection/testing/mocks/geostyler-qgis-parser.js +12 -0
  137. package/dist/collection/testing/mocks/geostyler-sld-parser.js +13 -0
  138. package/dist/collection/testing/mocks/geostyler-style.js +5 -0
  139. package/dist/collection/testing/setupTests.browser.js +1 -0
  140. package/dist/collection/testing/setupTests.stencil.js +20 -0
  141. package/dist/collection/testing/setupTests.vitest.js +59 -0
  142. package/dist/collection/testing/stencil-testing-wrapper.js +43 -0
  143. package/dist/collection/testing/styleMock.js +1 -0
  144. package/dist/collection/types/color.js +1 -0
  145. package/dist/collection/types/cssmode.js +1 -0
  146. package/dist/collection/types/flavour.js +1 -0
  147. package/dist/collection/types/layerconfig.js +1 -0
  148. package/dist/collection/types/lonlat.js +1 -0
  149. package/dist/collection/types/mapinitoptions.js +1 -0
  150. package/dist/collection/types/mapprovider.js +1 -0
  151. package/dist/collection/types/provideroptions.js +1 -0
  152. package/dist/collection/types/styleconfig.js +19 -0
  153. package/dist/collection/types/styling.js +13 -0
  154. package/dist/collection/types/styling.unit.js +37 -0
  155. package/dist/collection/types/vmaplayer.js +1 -0
  156. package/dist/collection/utils/async-mutex.js +28 -0
  157. package/dist/collection/utils/diff.js +142 -0
  158. package/dist/collection/utils/diff.unit.js +59 -0
  159. package/dist/collection/utils/dom-env.js +43 -0
  160. package/dist/collection/utils/dom-env.unit.js +92 -0
  161. package/dist/collection/utils/events.js +8 -0
  162. package/dist/collection/utils/logger.js +183 -0
  163. package/dist/collection/utils/logger.unit.js +98 -0
  164. package/dist/collection/utils/messages.js +12 -0
  165. package/dist/collection/utils/spatial-utils.js +27 -0
  166. package/dist/collection/utils/spatial-utils.unit.js +24 -0
  167. package/dist/components/_commonjsHelpers.js +1 -0
  168. package/dist/components/cesium-provider.js +1 -0
  169. package/dist/components/deck-provider.js +1 -0
  170. package/dist/components/events.js +1 -0
  171. package/dist/components/geotiff-source.js +1 -0
  172. package/dist/components/geotiff.js +4 -0
  173. package/dist/components/index.browser.js +15 -0
  174. package/dist/components/index.d.ts +35 -0
  175. package/dist/components/index.js +1 -0
  176. package/dist/components/index2.js +1 -0
  177. package/dist/components/index3.js +1 -0
  178. package/dist/components/index4.js +1 -0
  179. package/dist/components/index5.js +1 -0
  180. package/dist/components/index6.js +1 -0
  181. package/dist/components/index7.js +1 -0
  182. package/dist/components/index8.js +7 -0
  183. package/dist/components/layer-extension.js +1 -0
  184. package/dist/components/leaflet-provider.js +1 -0
  185. package/dist/components/main-dist.js +1 -0
  186. package/dist/components/messages.js +1 -0
  187. package/dist/components/openlayers-provider.js +1 -0
  188. package/dist/components/polygon-layer.js +1 -0
  189. package/dist/components/scenegraph-layer.js +1 -0
  190. package/dist/components/styleconfig.js +1 -0
  191. package/dist/components/styling.js +1 -0
  192. package/dist/components/v-map-builder.d.ts +11 -0
  193. package/dist/components/v-map-builder.js +2 -0
  194. package/dist/components/v-map-layer-geojson.d.ts +11 -0
  195. package/dist/components/v-map-layer-geojson.js +1 -0
  196. package/dist/components/v-map-layer-geojson2.js +1 -0
  197. package/dist/components/v-map-layer-geotiff.d.ts +11 -0
  198. package/dist/components/v-map-layer-geotiff.js +1 -0
  199. package/dist/components/v-map-layer-geotiff2.js +1 -0
  200. package/dist/components/v-map-layer-google.d.ts +11 -0
  201. package/dist/components/v-map-layer-google.js +1 -0
  202. package/dist/components/v-map-layer-google2.js +1 -0
  203. package/dist/components/v-map-layer-helper.js +1 -0
  204. package/dist/components/v-map-layer-osm.d.ts +11 -0
  205. package/dist/components/v-map-layer-osm.js +1 -0
  206. package/dist/components/v-map-layer-osm2.js +1 -0
  207. package/dist/components/v-map-layer-scatterplot.d.ts +11 -0
  208. package/dist/components/v-map-layer-scatterplot.js +1 -0
  209. package/dist/components/v-map-layer-scatterplot2.js +1 -0
  210. package/dist/components/v-map-layer-terrain-geotiff.d.ts +11 -0
  211. package/dist/components/v-map-layer-terrain-geotiff.js +1 -0
  212. package/dist/components/v-map-layer-terrain.d.ts +11 -0
  213. package/dist/components/v-map-layer-terrain.js +1 -0
  214. package/dist/components/v-map-layer-terrain2.js +1 -0
  215. package/dist/components/v-map-layer-tile3d.d.ts +11 -0
  216. package/dist/components/v-map-layer-tile3d.js +1 -0
  217. package/dist/components/v-map-layer-tile3d2.js +1 -0
  218. package/dist/components/v-map-layer-wcs.d.ts +11 -0
  219. package/dist/components/v-map-layer-wcs.js +1 -0
  220. package/dist/components/v-map-layer-wcs2.js +1 -0
  221. package/dist/components/v-map-layer-wfs.d.ts +11 -0
  222. package/dist/components/v-map-layer-wfs.js +1 -0
  223. package/dist/components/v-map-layer-wfs2.js +1 -0
  224. package/dist/components/v-map-layer-wkt.d.ts +11 -0
  225. package/dist/components/v-map-layer-wkt.js +1 -0
  226. package/dist/components/v-map-layer-wkt2.js +1 -0
  227. package/dist/components/v-map-layer-wms.d.ts +11 -0
  228. package/dist/components/v-map-layer-wms.js +1 -0
  229. package/dist/components/v-map-layer-wms2.js +1 -0
  230. package/dist/components/v-map-layer-xyz.d.ts +11 -0
  231. package/dist/components/v-map-layer-xyz.js +1 -0
  232. package/dist/components/v-map-layer-xyz2.js +1 -0
  233. package/dist/components/v-map-layercontrol.d.ts +11 -0
  234. package/dist/components/v-map-layercontrol.js +1 -0
  235. package/dist/components/v-map-layergroup.d.ts +11 -0
  236. package/dist/components/v-map-layergroup.js +1 -0
  237. package/dist/components/v-map-layergroup2.js +1 -0
  238. package/dist/components/v-map-style.d.ts +11 -0
  239. package/dist/components/v-map-style.js +1 -0
  240. package/dist/components/v-map-style2.js +10 -0
  241. package/dist/components/v-map.d.ts +11 -0
  242. package/dist/components/v-map.js +1 -0
  243. package/dist/components/v-map2.js +1 -0
  244. package/dist/esm/_commonjsHelpers-E-ZsRS8r.js +32 -0
  245. package/dist/esm/app-globals-DQuL1Twl.js +3 -0
  246. package/dist/esm/cesium-provider-BJfAup3w.js +2596 -0
  247. package/dist/esm/deck-provider-C7U9VDEq.js +47709 -0
  248. package/dist/esm/geotiff-BEWxTIfH.js +45 -0
  249. package/dist/esm/geotiff-source-esnDnC-u.js +1516 -0
  250. package/dist/esm/index-B1zwA4IC.js +685 -0
  251. package/dist/esm/index-BBpiaTpT.js +165 -0
  252. package/dist/esm/index-BIEmlzCf.js +1697 -0
  253. package/dist/esm/index-BUHa4Jj0.js +307 -0
  254. package/dist/esm/index-DbSdn93t.js +20461 -0
  255. package/dist/esm/index-RpJarvr_.js +10656 -0
  256. package/dist/esm/index-jN06TXUp.js +14 -0
  257. package/dist/esm/index-jzneDarq.js +1613 -0
  258. package/dist/esm/index.browser-DhQAXuA7.js +6860 -0
  259. package/dist/esm/index.js +1 -0
  260. package/dist/esm/layer-extension-CZXK5goK.js +63 -0
  261. package/dist/esm/leaflet-provider-Q41TB6ku.js +1794 -0
  262. package/dist/esm/loader.js +11 -0
  263. package/dist/esm/main-dist-CwnA7_Xn.js +2652 -0
  264. package/dist/esm/messages-CMKJzsgL.js +180 -0
  265. package/dist/esm/openlayers-provider-CMsDsQTQ.js +1602 -0
  266. package/dist/esm/polygon-layer-ByhxGhWC.js +1295 -0
  267. package/dist/esm/scenegraph-layer-09K_B6DT.js +2526 -0
  268. package/dist/esm/styleconfig-B-bAcABs.js +21 -0
  269. package/dist/esm/v-map-builder.entry.js +3784 -0
  270. package/dist/esm/v-map-layer-geojson_12.entry.js +40881 -0
  271. package/dist/esm/v-map-layer-helper-Dys44Cgo.js +283 -0
  272. package/dist/esm/v-map-layer-terrain-geotiff.entry.js +256 -0
  273. package/dist/esm/v-map-layercontrol.entry.js +245 -0
  274. package/dist/esm/v-map.js +21 -0
  275. package/dist/esm/v-map.v-map-layer-osm.v-map-layergroup-B4pFHuSf.js +572 -0
  276. package/dist/esm/v-map_3.entry.js +4 -0
  277. package/dist/index.cjs.js +1 -0
  278. package/dist/index.js +1 -0
  279. package/dist/types/cesium-augment.d.ts +5 -0
  280. package/dist/types/components/v-map/v-map.d.ts +70 -0
  281. package/dist/types/components/v-map/v-map.test.d.ts +1 -0
  282. package/dist/types/components/v-map-builder/v-map-builder.d.ts +48 -0
  283. package/dist/types/components/v-map-builder/v-map-builder.test.d.ts +1 -0
  284. package/dist/types/components/v-map-layer-geojson/v-map-layer-geojson.d.ts +129 -0
  285. package/dist/types/components/v-map-layer-geojson/v-map-layer-geojson.test.d.ts +1 -0
  286. package/dist/types/components/v-map-layer-geotiff/v-map-layer-geotiff.d.ts +74 -0
  287. package/dist/types/components/v-map-layer-geotiff/v-map-layer-geotiff.test.d.ts +1 -0
  288. package/dist/types/components/v-map-layer-google/v-map-layer-google.d.ts +78 -0
  289. package/dist/types/components/v-map-layer-osm/error-api.test.d.ts +1 -0
  290. package/dist/types/components/v-map-layer-osm/v-map-layer-osm.d.ts +50 -0
  291. package/dist/types/components/v-map-layer-osm/v-map-layer-osm.test.d.ts +1 -0
  292. package/dist/types/components/v-map-layer-scatterplot/v-map-layer-scatterplot.d.ts +54 -0
  293. package/dist/types/components/v-map-layer-terrain/v-map-layer-terrain.d.ts +74 -0
  294. package/dist/types/components/v-map-layer-terrain/v-map-layer-terrain.test.d.ts +1 -0
  295. package/dist/types/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.d.ts +117 -0
  296. package/dist/types/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.test.d.ts +1 -0
  297. package/dist/types/components/v-map-layer-tile3d/v-map-layer-tile3d.d.ts +69 -0
  298. package/dist/types/components/v-map-layer-tile3d/v-map-layer-tile3d.test.d.ts +1 -0
  299. package/dist/types/components/v-map-layer-wcs/v-map-layer-wcs.d.ts +47 -0
  300. package/dist/types/components/v-map-layer-wcs/v-map-layer-wcs.test.d.ts +1 -0
  301. package/dist/types/components/v-map-layer-wfs/v-map-layer-wfs.d.ts +59 -0
  302. package/dist/types/components/v-map-layer-wfs/v-map-layer-wfs.test.d.ts +1 -0
  303. package/dist/types/components/v-map-layer-wkt/v-map-layer-wkt.d.ts +132 -0
  304. package/dist/types/components/v-map-layer-wkt/v-map-layer-wkt.test.d.ts +1 -0
  305. package/dist/types/components/v-map-layer-wms/v-map-layer-wms.d.ts +76 -0
  306. package/dist/types/components/v-map-layer-wms/v-map-layer-wms.test.d.ts +1 -0
  307. package/dist/types/components/v-map-layer-xyz/v-map-layer-xyz.d.ts +59 -0
  308. package/dist/types/components/v-map-layer-xyz/v-map-layer-xyz.test.d.ts +1 -0
  309. package/dist/types/components/v-map-layercontrol/v-map-layercontrol.d.ts +44 -0
  310. package/dist/types/components/v-map-layercontrol/v-map-layercontrol.test.d.ts +1 -0
  311. package/dist/types/components/v-map-layergroup/v-map-layergroup.d.ts +31 -0
  312. package/dist/types/components/v-map-layergroup/v-map-layergroup.test.d.ts +1 -0
  313. package/dist/types/components/v-map-style/v-map-style.d.ts +75 -0
  314. package/dist/types/components/v-map-style/v-map-style.unit.d.ts +1 -0
  315. package/dist/types/components.d.ts +2391 -0
  316. package/dist/types/globals.d.ts +16 -0
  317. package/dist/types/index.d.ts +10 -0
  318. package/dist/types/layer/v-map-layer-helper.d.ts +45 -0
  319. package/dist/types/layer/v-map-layer-helper.unit.d.ts +1 -0
  320. package/dist/types/leaflet-augment.d.ts +15 -0
  321. package/dist/types/lib/cesium-loader.d.ts +3 -0
  322. package/dist/types/lib/ensure-importmap.d.ts +3 -0
  323. package/dist/types/lib/ensure-importmap.unit.d.ts +1 -0
  324. package/dist/types/lib/versions.gen.d.ts +5 -0
  325. package/dist/types/lib/vstyle.d.ts +44 -0
  326. package/dist/types/map-provider/cesium/CesiumGeoTIFFTerrainProvider.d.ts +92 -0
  327. package/dist/types/map-provider/cesium/CesiumLayerGroups.d.ts +64 -0
  328. package/dist/types/map-provider/cesium/GeoTIFFImageryProvider.d.ts +75 -0
  329. package/dist/types/map-provider/cesium/GeoTIFFImageryProvider.test.d.ts +1 -0
  330. package/dist/types/map-provider/cesium/cesium-provider.d.ts +87 -0
  331. package/dist/types/map-provider/cesium/i-layer.d.ts +11 -0
  332. package/dist/types/map-provider/cesium/layer-manager.d.ts +31 -0
  333. package/dist/types/map-provider/deck/DeckGLGeoTIFFLayer.d.ts +91 -0
  334. package/dist/types/map-provider/deck/DeckGLGeoTIFFTerrainLayer.d.ts +82 -0
  335. package/dist/types/map-provider/deck/LayerGroupWithModel.d.ts +55 -0
  336. package/dist/types/map-provider/deck/LayerGroups.d.ts +63 -0
  337. package/dist/types/map-provider/deck/LayerModel.d.ts +8 -0
  338. package/dist/types/map-provider/deck/RenderableGroup.d.ts +20 -0
  339. package/dist/types/map-provider/deck/deck-provider.d.ts +92 -0
  340. package/dist/types/map-provider/geotiff/geotiff-source.d.ts +30 -0
  341. package/dist/types/map-provider/geotiff/utils/AABB2D.d.ts +28 -0
  342. package/dist/types/map-provider/geotiff/utils/BVHNode2D.d.ts +36 -0
  343. package/dist/types/map-provider/geotiff/utils/GeoTIFFTileProcessor.d.ts +116 -0
  344. package/dist/types/map-provider/geotiff/utils/Triangle.d.ts +5 -0
  345. package/dist/types/map-provider/geotiff/utils/Triangulation.d.ts +94 -0
  346. package/dist/types/map-provider/geotiff/utils/colormap-utils.d.ts +47 -0
  347. package/dist/types/map-provider/geotiff/utils/normalization-utils.d.ts +39 -0
  348. package/dist/types/map-provider/geotiff/utils/sampling-utils.d.ts +13 -0
  349. package/dist/types/map-provider/leaflet/GeoTIFFGridLayer.d.ts +34 -0
  350. package/dist/types/map-provider/leaflet/WCSGridLayer.d.ts +38 -0
  351. package/dist/types/map-provider/leaflet/google-map-tiles-layer.d.ts +73 -0
  352. package/dist/types/map-provider/leaflet/leaflet-helpers.d.ts +6 -0
  353. package/dist/types/map-provider/leaflet/leaflet-provider.d.ts +73 -0
  354. package/dist/types/map-provider/ol/CustomGeoTiff.d.ts +14 -0
  355. package/dist/types/map-provider/ol/openlayers-helper.d.ts +2 -0
  356. package/dist/types/map-provider/ol/openlayers-provider.d.ts +80 -0
  357. package/dist/types/map-provider/provider-factory.d.ts +12 -0
  358. package/dist/types/map-provider/provider-factory.unit.d.ts +1 -0
  359. package/dist/types/namespaces.d.ts +3 -0
  360. package/dist/types/ol-augment.d.ts +3 -0
  361. package/dist/types/ol-override.d.ts +7 -0
  362. package/dist/types/ol.d.ts +10 -0
  363. package/dist/types/stencil-public-runtime.d.ts +1860 -0
  364. package/dist/types/testing/browser-test-utils.d.ts +6 -0
  365. package/dist/types/testing/e2e-testing.d.ts +5 -0
  366. package/dist/types/testing/e2e-utils.d.ts +4 -0
  367. package/dist/types/testing/geotiff-test-server.d.ts +5 -0
  368. package/dist/types/testing/mocks/geostyler-lyrx-parser.d.ts +11 -0
  369. package/dist/types/testing/mocks/geostyler-mapbox-parser.d.ts +11 -0
  370. package/dist/types/testing/mocks/geostyler-qgis-parser.d.ts +11 -0
  371. package/dist/types/testing/mocks/geostyler-sld-parser.d.ts +11 -0
  372. package/dist/types/testing/mocks/geostyler-style.d.ts +5 -0
  373. package/dist/types/testing/setupTests.browser.d.ts +1 -0
  374. package/dist/types/testing/setupTests.stencil.d.ts +1 -0
  375. package/dist/types/testing/setupTests.vitest.d.ts +1 -0
  376. package/dist/types/testing/stencil-testing-wrapper.d.ts +3 -0
  377. package/dist/types/types/color.d.ts +1 -0
  378. package/dist/types/types/cssmode.d.ts +1 -0
  379. package/dist/types/types/flavour.d.ts +1 -0
  380. package/dist/types/types/layerconfig.d.ts +207 -0
  381. package/dist/types/types/lonlat.d.ts +1 -0
  382. package/dist/types/types/mapinitoptions.d.ts +4 -0
  383. package/dist/types/types/mapprovider.d.ts +46 -0
  384. package/dist/types/types/provideroptions.d.ts +8 -0
  385. package/dist/types/types/styleconfig.d.ts +27 -0
  386. package/dist/types/types/styling.d.ts +24 -0
  387. package/dist/types/types/styling.unit.d.ts +1 -0
  388. package/dist/types/types/vmaplayer.d.ts +10 -0
  389. package/dist/types/utils/async-mutex.d.ts +7 -0
  390. package/dist/types/utils/diff.d.ts +64 -0
  391. package/dist/types/utils/diff.unit.d.ts +1 -0
  392. package/dist/types/utils/dom-env.d.ts +5 -0
  393. package/dist/types/utils/dom-env.unit.d.ts +1 -0
  394. package/dist/types/utils/events.d.ts +29 -0
  395. package/dist/types/utils/logger.d.ts +47 -0
  396. package/dist/types/utils/logger.unit.d.ts +1 -0
  397. package/dist/types/utils/messages.d.ts +12 -0
  398. package/dist/types/utils/spatial-utils.d.ts +6 -0
  399. package/dist/types/utils/spatial-utils.unit.d.ts +1 -0
  400. package/dist/types/versions.d.ts +7 -0
  401. package/dist/v-map/index.esm.js +0 -0
  402. package/dist/v-map/p--vVleK-M.js +1 -0
  403. package/dist/v-map/p-09d10db0.entry.js +1 -0
  404. package/dist/v-map/p-5eba6058.entry.js +10 -0
  405. package/dist/v-map/p-6b102336.entry.js +1 -0
  406. package/dist/v-map/p-B-bAcABs.js +1 -0
  407. package/dist/v-map/p-BBpiaTpT.js +1 -0
  408. package/dist/v-map/p-BdijL4Av.js +1 -0
  409. package/dist/v-map/p-Be3r33VF.js +4 -0
  410. package/dist/v-map/p-BeFu0ap4.js +1 -0
  411. package/dist/v-map/p-BxFJezdK.js +1 -0
  412. package/dist/v-map/p-CMKJzsgL.js +1 -0
  413. package/dist/v-map/p-CXfA_q8m.js +1 -0
  414. package/dist/v-map/p-CZqY0yW4.js +1 -0
  415. package/dist/v-map/p-CafTHT9i.js +1 -0
  416. package/dist/v-map/p-DCTHyf58.js +1 -0
  417. package/dist/v-map/p-DQuL1Twl.js +1 -0
  418. package/dist/v-map/p-DR9McdNX.js +1 -0
  419. package/dist/v-map/p-Dckgonw8.js +1 -0
  420. package/dist/v-map/p-DhQAXuA7.js +15 -0
  421. package/dist/v-map/p-DmICdG34.js +7 -0
  422. package/dist/v-map/p-DrOQ9V4h.js +1 -0
  423. package/dist/v-map/p-DvHXtWUg.js +1 -0
  424. package/dist/v-map/p-E-ZsRS8r.js +1 -0
  425. package/dist/v-map/p-MyTSFnEk.js +1 -0
  426. package/dist/v-map/p-RpJarvr_.js +1 -0
  427. package/dist/v-map/p-WaMDUuAz.js +1 -0
  428. package/dist/v-map/p-aa410e64.entry.js +2 -0
  429. package/dist/v-map/p-c21c93fe.entry.js +1 -0
  430. package/dist/v-map/p-jzneDarq.js +2 -0
  431. package/dist/v-map/p-uiIP-taz.js +1 -0
  432. package/dist/v-map/v-map.esm.js +1 -0
  433. package/loader/cdn.js +1 -0
  434. package/loader/index.cjs.js +1 -0
  435. package/loader/index.d.ts +24 -0
  436. package/loader/index.es2017.js +1 -0
  437. package/loader/index.js +2 -0
  438. 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,8 @@
1
+ import type { Layer } from '@deck.gl/core';
2
+ export interface LayerModel<L extends Layer = Layer> {
3
+ id: string;
4
+ elementId: string;
5
+ enabled: boolean;
6
+ make: () => L;
7
+ meta?: Record<string, unknown>;
8
+ }
@@ -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,5 @@
1
+ export type Triangle = [[number, number], [number, number], [number, number]];
2
+ export interface ITriangle {
3
+ source: Triangle;
4
+ target: Triangle;
5
+ }
@@ -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
+ };