@mapcomponents/react-maplibre 0.1.57 → 0.1.59

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 (276) hide show
  1. package/.eslintignore +11 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/workflows/check-formatting.yml +46 -0
  4. package/.prettierignore +11 -0
  5. package/.prettierrc.json +6 -0
  6. package/CHANGELOG.md +18 -0
  7. package/coverage/clover.xml +229 -77
  8. package/coverage/coverage-final.json +43 -37
  9. package/coverage/lcov-report/index.html +65 -20
  10. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +83 -83
  11. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +66 -66
  13. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +30 -30
  15. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +202 -0
  17. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +116 -0
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +99 -99
  19. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +66 -66
  21. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +221 -221
  23. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +308 -308
  25. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +497 -497
  26. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +85 -85
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +469 -0
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +116 -0
  31. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +140 -140
  32. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +37 -37
  34. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  35. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +179 -179
  36. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +113 -113
  38. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  39. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +181 -181
  40. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +58 -58
  41. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  43. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +108 -108
  44. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +39 -39
  46. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +183 -183
  48. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +163 -163
  50. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +50 -50
  52. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +30 -30
  53. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +83 -83
  55. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  56. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +204 -204
  57. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  58. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +180 -180
  59. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  60. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +163 -163
  61. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  62. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +136 -136
  63. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  64. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +53 -53
  65. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +123 -123
  67. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +35 -35
  69. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  70. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +155 -155
  71. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  72. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +255 -255
  73. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  74. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +66 -66
  75. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  76. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +48 -48
  77. package/coverage/lcov-report/src/contexts/index.html +1 -1
  78. package/coverage/lcov-report/src/hooks/exportMap/index.html +131 -0
  79. package/coverage/lcov-report/src/hooks/exportMap/index.ts.html +175 -0
  80. package/coverage/lcov-report/src/hooks/exportMap/lib.ts.html +646 -0
  81. package/coverage/lcov-report/src/hooks/index.html +48 -18
  82. package/coverage/lcov-report/src/hooks/useLayer.ts.html +230 -188
  83. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +232 -0
  84. package/coverage/lcov-report/src/hooks/useMap.ts.html +72 -69
  85. package/coverage/lcov-report/src/hooks/useMapState.ts.html +145 -145
  86. package/coverage/lcov-report/src/hooks/useSource.ts.html +337 -0
  87. package/coverage/lcov-report/src/hooks/useWms.js.html +72 -72
  88. package/coverage/lcov-report/src/index.html +1 -1
  89. package/coverage/lcov-report/src/index.ts.html +11 -2
  90. package/coverage/lcov.info +448 -151
  91. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +24 -0
  92. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +13 -0
  93. package/dist/components/MlCreatePdfForm/lib/PdfContext.d.ts +21 -0
  94. package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +10 -0
  95. package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +13 -0
  96. package/dist/components/MlCreatePdfForm/lib/pdf.templates.d.ts +11 -0
  97. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
  98. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +22 -0
  99. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +10 -0
  100. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +1 -1
  101. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +2 -2
  102. package/dist/decorators/MapContextDecoratorHooks.d.ts +2 -0
  103. package/dist/hooks/exportMap/index.d.ts +11 -0
  104. package/dist/hooks/exportMap/lib.d.ts +36 -0
  105. package/dist/hooks/useLayer.d.ts +6 -5
  106. package/dist/hooks/useLayerEvent.d.ts +2 -0
  107. package/dist/hooks/useMap.d.ts +1 -1
  108. package/dist/hooks/useMapState.stories.d.ts +2 -2
  109. package/dist/hooks/useSource.d.ts +17 -0
  110. package/dist/hooks/useSources.stories.d.ts +13 -0
  111. package/dist/index.d.ts +3 -0
  112. package/dist/index.esm.js +1055 -315
  113. package/dist/index.esm.js.map +1 -1
  114. package/eslintErrorTest.js +10 -0
  115. package/package.json +7 -1
  116. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  117. package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
  118. package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
  119. package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
  120. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
  121. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
  122. package/src/components/MlBasicComponent.js +25 -25
  123. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
  124. package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
  125. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
  126. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
  127. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
  128. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
  129. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
  130. package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
  131. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
  132. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
  133. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
  134. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
  135. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
  136. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
  137. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
  138. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
  139. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
  140. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
  141. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
  142. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
  143. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
  144. package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
  145. package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
  146. package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
  147. package/src/components/MlFeatureEditor/lib/constants.js +61 -61
  148. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
  149. package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
  150. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
  151. package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
  152. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
  153. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
  154. package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
  155. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
  156. package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
  157. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
  158. package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
  159. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
  160. package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
  161. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
  162. package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
  163. package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
  164. package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
  165. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
  166. package/src/components/MlFeatureEditor/lib/theme.js +230 -230
  167. package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
  168. package/src/components/MlFeatureEditor/lib/utils.js +40 -40
  169. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
  170. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
  171. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
  172. package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
  173. package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
  174. package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
  175. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
  176. package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
  177. package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
  178. package/src/components/MlGPXViewer/gpxConverter.js +496 -496
  179. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
  180. package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
  181. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
  182. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
  183. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
  184. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
  185. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
  186. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
  187. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
  188. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
  189. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
  190. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
  191. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
  192. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
  193. package/src/components/MlLayer/MlLayer.stories.js +5 -5
  194. package/src/components/MlLayer/MlLayer.test.js +86 -86
  195. package/src/components/MlLayer/MlLayer.tsx +36 -36
  196. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
  197. package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
  198. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
  199. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
  200. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
  201. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
  202. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
  203. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
  204. package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
  205. package/src/components/MlMarker/MlMarker.stories.js +7 -7
  206. package/src/components/MlMarker/MlMarker.tsx +119 -119
  207. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
  208. package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
  209. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
  210. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
  211. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
  212. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
  213. package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
  214. package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
  215. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
  216. package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
  217. package/src/components/MlScaleReference/MlScaleReference.js +82 -82
  218. package/src/components/MlScaleReference/MlScaleReference.stories.js +27 -27
  219. package/src/components/MlShareMapState/MlShareMapState.js +203 -203
  220. package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
  221. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
  222. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
  223. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
  224. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
  225. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
  226. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
  227. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
  228. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
  229. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
  230. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
  231. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
  232. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
  233. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
  234. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
  235. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
  237. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
  238. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
  239. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
  240. package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
  241. package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
  242. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
  243. package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
  244. package/src/contexts/MapComponentsProvider.test.js +229 -229
  245. package/src/contexts/MapContext.tsx +65 -65
  246. package/src/contexts/SimpleDataProvider.js +47 -47
  247. package/src/contexts/SimpleDataProvider.test.js +29 -29
  248. package/src/custom.d.tsx +14 -14
  249. package/src/decorators/MapContextDecorator.js +22 -22
  250. package/src/decorators/MapContextDecoratorHooks.js +34 -0
  251. package/src/decorators/MultiMapContextDecorator.js +63 -63
  252. package/src/decorators/NoNavToolsDecorator.js +17 -17
  253. package/src/decorators/ThemeWrapper.jsx +1 -1
  254. package/src/hooks/assets/pointWG.json +13 -0
  255. package/src/hooks/exportMap/index.ts +30 -0
  256. package/src/hooks/exportMap/lib.ts +187 -0
  257. package/src/hooks/useLayer.test.js +188 -188
  258. package/src/hooks/useLayer.ts +194 -180
  259. package/src/hooks/useLayerEvent.js +49 -0
  260. package/src/hooks/useMap.ts +67 -66
  261. package/src/hooks/useMapState.stories.js +78 -78
  262. package/src/hooks/useMapState.ts +161 -161
  263. package/src/hooks/useSource.ts +84 -0
  264. package/src/hooks/useSources.stories.js +232 -0
  265. package/src/hooks/useWms.js +71 -71
  266. package/src/index.ts +3 -0
  267. package/src/setupTests.js +86 -86
  268. package/src/ui_components/ImageLoader.js +62 -62
  269. package/src/ui_components/Legend.js +34 -34
  270. package/src/ui_components/LoadingOverlay.js +29 -29
  271. package/src/ui_components/LoadingOverlayContext.js +68 -68
  272. package/src/ui_components/Sidebar.js +80 -80
  273. package/src/ui_components/Tooltip.js +9 -9
  274. package/src/ui_components/TopToolbar.js +23 -23
  275. package/src/util/layerRemovalTest.js +111 -111
  276. package/src/util/sourceRemovalTest.js +103 -103
@@ -1,221 +1,221 @@
1
1
  import * as turf from "@turf/turf";
2
2
 
3
3
  const _showNextTransitionSegment = function (
4
- props,
5
- map,
6
- transitionInProgressRef,
7
- transitionGeojsonDataRef,
8
- transitionGeojsonCommonDataRef,
9
- currentTransitionStepRef,
10
- msPerStep,
11
- transitionTimeoutRef,
12
- setDisplayGeojson
4
+ props,
5
+ map,
6
+ transitionInProgressRef,
7
+ transitionGeojsonDataRef,
8
+ transitionGeojsonCommonDataRef,
9
+ currentTransitionStepRef,
10
+ msPerStep,
11
+ transitionTimeoutRef,
12
+ setDisplayGeojson
13
13
  ) {
14
- if (typeof transitionGeojsonDataRef.current[currentTransitionStepRef.current] !== "undefined") {
15
- // if at last transition step set to target geojson
16
- // else to an assembled LineString from common geometry and the current transition step geometry
17
- let newData =
18
- currentTransitionStepRef.current + 1 === transitionGeojsonDataRef.current.length
19
- ? props.geojson
20
- : turf.lineString([
21
- ...transitionGeojsonCommonDataRef.current,
22
- ...transitionGeojsonDataRef.current[currentTransitionStepRef.current].geometry
23
- .coordinates,
24
- ]);
25
-
26
- setDisplayGeojson(newData);
27
-
28
- if (typeof props.onTransitionFrame === "function") {
29
- props.onTransitionFrame(newData);
30
- }
31
-
32
- currentTransitionStepRef.current++;
33
- if (
34
- transitionInProgressRef.current &&
35
- currentTransitionStepRef.current < transitionGeojsonDataRef.current.length
36
- ) {
37
- transitionTimeoutRef.current = setTimeout(
38
- () => _showNextTransitionSegment(...arguments),
39
- msPerStep
40
- );
41
- } else {
42
- if (typeof props.onTransitionEnd === "function") {
43
- props.onTransitionEnd(props.geojson);
44
- }
45
- transitionInProgressRef.current = false;
46
- }
47
- }
14
+ if (typeof transitionGeojsonDataRef.current[currentTransitionStepRef.current] !== "undefined") {
15
+ // if at last transition step set to target geojson
16
+ // else to an assembled LineString from common geometry and the current transition step geometry
17
+ let newData =
18
+ currentTransitionStepRef.current + 1 === transitionGeojsonDataRef.current.length
19
+ ? props.geojson
20
+ : turf.lineString([
21
+ ...transitionGeojsonCommonDataRef.current,
22
+ ...transitionGeojsonDataRef.current[currentTransitionStepRef.current].geometry
23
+ .coordinates,
24
+ ]);
25
+
26
+ setDisplayGeojson(newData);
27
+
28
+ if (typeof props.onTransitionFrame === "function") {
29
+ props.onTransitionFrame(newData);
30
+ }
31
+
32
+ currentTransitionStepRef.current++;
33
+ if (
34
+ transitionInProgressRef.current &&
35
+ currentTransitionStepRef.current < transitionGeojsonDataRef.current.length
36
+ ) {
37
+ transitionTimeoutRef.current = setTimeout(
38
+ () => _showNextTransitionSegment(...arguments),
39
+ msPerStep
40
+ );
41
+ } else {
42
+ if (typeof props.onTransitionEnd === "function") {
43
+ props.onTransitionEnd(props.geojson);
44
+ }
45
+ transitionInProgressRef.current = false;
46
+ }
47
+ }
48
48
  };
49
49
 
50
50
  const _transitionToGeojson = (
51
- props,
52
- transitionGeojsonCommonDataRef,
53
- transitionGeojsonDataRef,
54
- transitionInProgressRef,
55
- oldGeojsonRef,
56
- msPerStep,
57
- currentTransitionStepRef,
58
- map,
59
- transitionTimeoutRef,
60
- setDisplayGeojson
51
+ props,
52
+ transitionGeojsonCommonDataRef,
53
+ transitionGeojsonDataRef,
54
+ transitionInProgressRef,
55
+ oldGeojsonRef,
56
+ msPerStep,
57
+ currentTransitionStepRef,
58
+ map,
59
+ transitionTimeoutRef,
60
+ setDisplayGeojson
61
61
  ) => {
62
- // create the transition geojson between oldGeojsonRef.current and props.geojson
63
-
64
- // create a geojson that contains no common point between the two line features
65
- let transitionCoordinatesShort = [];
66
- let transitionCoordinatesLong = [];
67
- let targetCoordinates = [];
68
- let srcCoordinates = [];
69
- transitionGeojsonCommonDataRef.current = [];
70
- let sourceGeojson = oldGeojsonRef.current || {
71
- geometry: {
72
- type: "LineString",
73
- coordinates: [],
74
- },
75
- properties: {},
76
- type: "Feature",
77
- };
78
-
79
- let targetGeojson = props.geojson;
80
-
81
- let longerGeojson = targetGeojson;
82
- let shorterGeojson = sourceGeojson;
83
- let reverseOrder = false;
84
- // In case one geojson is missing completely use the first two coordinates of the other geojson
85
- if (
86
- typeof longerGeojson.geometry === "undefined" &&
87
- typeof shorterGeojson.geometry !== "undefined" &&
88
- shorterGeojson.geometry.coordinates.length > 1
89
- ) {
90
- longerGeojson = turf.lineString(shorterGeojson.geometry.coordinates.slice(0, 2));
91
- } else if (
92
- typeof shorterGeojson.geometry === "undefined" &&
93
- typeof longerGeojson.geometry !== "undefined" &&
94
- longerGeojson.geometry.coordinates.length > 1
95
- ) {
96
- shorterGeojson = turf.lineString(longerGeojson.geometry.coordinates.slice(0, 2));
97
- } else if (
98
- typeof shorterGeojson.geometry === "undefined" &&
99
- typeof longerGeojson.geometry === "undefined"
100
- ) {
101
- return;
102
- }
103
-
104
- if (longerGeojson.geometry.coordinates.length < shorterGeojson.geometry.coordinates.length) {
105
- longerGeojson = sourceGeojson;
106
- shorterGeojson = targetGeojson;
107
- reverseOrder = true;
108
- }
109
-
110
- if (longerGeojson && shorterGeojson) {
111
- for (var i = 0, len = longerGeojson.geometry.coordinates.length; i < len; i++) {
112
- if (
113
- typeof shorterGeojson.geometry.coordinates[i] !== "undefined" &&
114
- longerGeojson.geometry.coordinates[i][0] === shorterGeojson.geometry.coordinates[i][0] &&
115
- longerGeojson.geometry.coordinates[i][1] === shorterGeojson.geometry.coordinates[i][1]
116
- ) {
117
- // if coordinates are equal
118
- transitionGeojsonCommonDataRef.current.push(longerGeojson.geometry.coordinates[i]);
119
- } else {
120
- if (typeof longerGeojson.geometry.coordinates[i] !== "undefined") {
121
- transitionCoordinatesLong.push(longerGeojson.geometry.coordinates[i]);
122
- }
123
- if (typeof shorterGeojson.geometry.coordinates[i] !== "undefined") {
124
- transitionCoordinatesShort.push(shorterGeojson.geometry.coordinates[i]);
125
- }
126
- }
127
- }
128
- }
129
-
130
- if (reverseOrder) {
131
- targetCoordinates = transitionCoordinatesShort;
132
- srcCoordinates = transitionCoordinatesLong;
133
- } else {
134
- targetCoordinates = transitionCoordinatesLong;
135
- srcCoordinates = transitionCoordinatesShort;
136
- }
137
-
138
- if (targetCoordinates.length < 2 && srcCoordinates < 2) return;
139
- // create props.transitionTime / msPerStep (=: transitionSteps) Versions of transitionGeojsonCommonDataRef.current + transitionCoordinates making the transitionCoordinates transitionCoordinatesDistance / transitionSteps longer on each step
140
-
141
- let transitionSteps = props.transitionTime / msPerStep;
142
- let srcCoordinatesDistance =
143
- srcCoordinates.length > 1 ? Math.round(turf.length(turf.lineString(srcCoordinates))) : 0;
144
- let targetCoordinatesDistance =
145
- targetCoordinates.length > 1 ? Math.round(turf.length(turf.lineString(targetCoordinates))) : 0;
146
- let transitionDistance = targetCoordinatesDistance + srcCoordinatesDistance;
147
-
148
- let srcCoordinatesShare = srcCoordinatesDistance / transitionDistance;
149
- let srcTransitionSteps = Math.round(transitionSteps * srcCoordinatesShare);
150
- let srcPerStepDistance = Math.round((srcCoordinatesDistance / srcTransitionSteps) * 100) / 100;
151
-
152
- let targetCoordinatesShare = targetCoordinatesDistance / transitionDistance;
153
- let targetTransitionSteps = Math.round(transitionSteps * targetCoordinatesShare);
154
- let targetPerStepDistance =
155
- Math.round((targetCoordinatesDistance / targetTransitionSteps) * 100) / 100;
156
-
157
- // use srcPerStepDistance as src coordinates are always animated backwards
158
- let loopStepDistance = srcCoordinatesDistance;
159
- if (loopStepDistance <= 0) {
160
- loopStepDistance = 0.1;
161
- }
162
-
163
- // create transition step data as an array of all required FeatureCollection states until the transition is complete
164
- let transitionStepData;
165
-
166
- transitionStepData = [
167
- ...createTransitionSteps(srcCoordinates, srcPerStepDistance, srcTransitionSteps),
168
- ];
169
- transitionStepData.reverse();
170
-
171
- transitionStepData = [
172
- ...transitionStepData,
173
- ...createTransitionSteps(targetCoordinates, targetPerStepDistance, targetTransitionSteps),
174
- ];
175
-
176
- transitionStepData.push(targetGeojson);
177
-
178
- transitionGeojsonDataRef.current = transitionStepData;
179
-
180
- currentTransitionStepRef.current = 1;
181
- transitionInProgressRef.current = true;
182
- transitionTimeoutRef.current = setTimeout(
183
- () =>
184
- _showNextTransitionSegment(
185
- props,
186
- map,
187
- transitionInProgressRef,
188
- transitionGeojsonDataRef,
189
- transitionGeojsonCommonDataRef,
190
- currentTransitionStepRef,
191
- msPerStep,
192
- transitionTimeoutRef,
193
- setDisplayGeojson
194
- ),
195
- msPerStep
196
- );
62
+ // create the transition geojson between oldGeojsonRef.current and props.geojson
63
+
64
+ // create a geojson that contains no common point between the two line features
65
+ let transitionCoordinatesShort = [];
66
+ let transitionCoordinatesLong = [];
67
+ let targetCoordinates = [];
68
+ let srcCoordinates = [];
69
+ transitionGeojsonCommonDataRef.current = [];
70
+ let sourceGeojson = oldGeojsonRef.current || {
71
+ geometry: {
72
+ type: "LineString",
73
+ coordinates: [],
74
+ },
75
+ properties: {},
76
+ type: "Feature",
77
+ };
78
+
79
+ let targetGeojson = props.geojson;
80
+
81
+ let longerGeojson = targetGeojson;
82
+ let shorterGeojson = sourceGeojson;
83
+ let reverseOrder = false;
84
+ // In case one geojson is missing completely use the first two coordinates of the other geojson
85
+ if (
86
+ typeof longerGeojson.geometry === "undefined" &&
87
+ typeof shorterGeojson.geometry !== "undefined" &&
88
+ shorterGeojson.geometry.coordinates.length > 1
89
+ ) {
90
+ longerGeojson = turf.lineString(shorterGeojson.geometry.coordinates.slice(0, 2));
91
+ } else if (
92
+ typeof shorterGeojson.geometry === "undefined" &&
93
+ typeof longerGeojson.geometry !== "undefined" &&
94
+ longerGeojson.geometry.coordinates.length > 1
95
+ ) {
96
+ shorterGeojson = turf.lineString(longerGeojson.geometry.coordinates.slice(0, 2));
97
+ } else if (
98
+ typeof shorterGeojson.geometry === "undefined" &&
99
+ typeof longerGeojson.geometry === "undefined"
100
+ ) {
101
+ return;
102
+ }
103
+
104
+ if (longerGeojson.geometry.coordinates.length < shorterGeojson.geometry.coordinates.length) {
105
+ longerGeojson = sourceGeojson;
106
+ shorterGeojson = targetGeojson;
107
+ reverseOrder = true;
108
+ }
109
+
110
+ if (longerGeojson && shorterGeojson) {
111
+ for (var i = 0, len = longerGeojson.geometry.coordinates.length; i < len; i++) {
112
+ if (
113
+ typeof shorterGeojson.geometry.coordinates[i] !== "undefined" &&
114
+ longerGeojson.geometry.coordinates[i][0] === shorterGeojson.geometry.coordinates[i][0] &&
115
+ longerGeojson.geometry.coordinates[i][1] === shorterGeojson.geometry.coordinates[i][1]
116
+ ) {
117
+ // if coordinates are equal
118
+ transitionGeojsonCommonDataRef.current.push(longerGeojson.geometry.coordinates[i]);
119
+ } else {
120
+ if (typeof longerGeojson.geometry.coordinates[i] !== "undefined") {
121
+ transitionCoordinatesLong.push(longerGeojson.geometry.coordinates[i]);
122
+ }
123
+ if (typeof shorterGeojson.geometry.coordinates[i] !== "undefined") {
124
+ transitionCoordinatesShort.push(shorterGeojson.geometry.coordinates[i]);
125
+ }
126
+ }
127
+ }
128
+ }
129
+
130
+ if (reverseOrder) {
131
+ targetCoordinates = transitionCoordinatesShort;
132
+ srcCoordinates = transitionCoordinatesLong;
133
+ } else {
134
+ targetCoordinates = transitionCoordinatesLong;
135
+ srcCoordinates = transitionCoordinatesShort;
136
+ }
137
+
138
+ if (targetCoordinates.length < 2 && srcCoordinates < 2) return;
139
+ // create props.transitionTime / msPerStep (=: transitionSteps) Versions of transitionGeojsonCommonDataRef.current + transitionCoordinates making the transitionCoordinates transitionCoordinatesDistance / transitionSteps longer on each step
140
+
141
+ let transitionSteps = props.transitionTime / msPerStep;
142
+ let srcCoordinatesDistance =
143
+ srcCoordinates.length > 1 ? Math.round(turf.length(turf.lineString(srcCoordinates))) : 0;
144
+ let targetCoordinatesDistance =
145
+ targetCoordinates.length > 1 ? Math.round(turf.length(turf.lineString(targetCoordinates))) : 0;
146
+ let transitionDistance = targetCoordinatesDistance + srcCoordinatesDistance;
147
+
148
+ let srcCoordinatesShare = srcCoordinatesDistance / transitionDistance;
149
+ let srcTransitionSteps = Math.round(transitionSteps * srcCoordinatesShare);
150
+ let srcPerStepDistance = Math.round((srcCoordinatesDistance / srcTransitionSteps) * 100) / 100;
151
+
152
+ let targetCoordinatesShare = targetCoordinatesDistance / transitionDistance;
153
+ let targetTransitionSteps = Math.round(transitionSteps * targetCoordinatesShare);
154
+ let targetPerStepDistance =
155
+ Math.round((targetCoordinatesDistance / targetTransitionSteps) * 100) / 100;
156
+
157
+ // use srcPerStepDistance as src coordinates are always animated backwards
158
+ let loopStepDistance = srcCoordinatesDistance;
159
+ if (loopStepDistance <= 0) {
160
+ loopStepDistance = 0.1;
161
+ }
162
+
163
+ // create transition step data as an array of all required FeatureCollection states until the transition is complete
164
+ let transitionStepData;
165
+
166
+ transitionStepData = [
167
+ ...createTransitionSteps(srcCoordinates, srcPerStepDistance, srcTransitionSteps),
168
+ ];
169
+ transitionStepData.reverse();
170
+
171
+ transitionStepData = [
172
+ ...transitionStepData,
173
+ ...createTransitionSteps(targetCoordinates, targetPerStepDistance, targetTransitionSteps),
174
+ ];
175
+
176
+ transitionStepData.push(targetGeojson);
177
+
178
+ transitionGeojsonDataRef.current = transitionStepData;
179
+
180
+ currentTransitionStepRef.current = 1;
181
+ transitionInProgressRef.current = true;
182
+ transitionTimeoutRef.current = setTimeout(
183
+ () =>
184
+ _showNextTransitionSegment(
185
+ props,
186
+ map,
187
+ transitionInProgressRef,
188
+ transitionGeojsonDataRef,
189
+ transitionGeojsonCommonDataRef,
190
+ currentTransitionStepRef,
191
+ msPerStep,
192
+ transitionTimeoutRef,
193
+ setDisplayGeojson
194
+ ),
195
+ msPerStep
196
+ );
197
197
  };
198
198
 
199
199
  let createTransitionSteps = (linestringCoordinates, perStepDistance, stepCnt) => {
200
- let transitionSteps = [];
201
-
202
- if (linestringCoordinates.length > 1) {
203
- let tmpChunks = turf.lineChunk(turf.lineString(linestringCoordinates), perStepDistance);
204
- // tmpLineString contains all coordinates of all previous plus current loop iteration
205
- let tmpLinestring = tmpChunks.features[0];
206
- for (let i = 0; i < stepCnt; i++) {
207
- transitionSteps.push(tmpLinestring);
208
- if (typeof tmpChunks.features[i] !== "undefined") {
209
- tmpLinestring = turf.lineString([
210
- ...tmpLinestring.geometry.coordinates,
211
- ...tmpChunks.features[i].geometry.coordinates,
212
- ]);
213
- } else {
214
- break;
215
- }
216
- }
217
- }
218
- return transitionSteps;
200
+ let transitionSteps = [];
201
+
202
+ if (linestringCoordinates.length > 1) {
203
+ let tmpChunks = turf.lineChunk(turf.lineString(linestringCoordinates), perStepDistance);
204
+ // tmpLineString contains all coordinates of all previous plus current loop iteration
205
+ let tmpLinestring = tmpChunks.features[0];
206
+ for (let i = 0; i < stepCnt; i++) {
207
+ transitionSteps.push(tmpLinestring);
208
+ if (typeof tmpChunks.features[i] !== "undefined") {
209
+ tmpLinestring = turf.lineString([
210
+ ...tmpLinestring.geometry.coordinates,
211
+ ...tmpChunks.features[i].geometry.coordinates,
212
+ ]);
213
+ } else {
214
+ break;
215
+ }
216
+ }
217
+ }
218
+ return transitionSteps;
219
219
  };
220
220
 
221
221
  export { _showNextTransitionSegment, _transitionToGeojson };
@@ -12,64 +12,64 @@ import useMapState from "../../hooks/useMapState";
12
12
  * @component
13
13
  */
14
14
  const MlUseMapDebugger = (props) => {
15
- const map = useMapState({
16
- mapId: props.mapId,
17
- watch: {
18
- layers: true,
19
- sources: false, // not yet provided
20
- viewport: false,
21
- ...props.watch,
22
- },
23
- filter: {
24
- ...props.filter,
25
- },
26
- });
27
- const renderCounter = useRef(0);
28
- renderCounter.current = renderCounter.current + 1;
15
+ const map = useMapState({
16
+ mapId: props.mapId,
17
+ watch: {
18
+ layers: true,
19
+ sources: false, // not yet provided
20
+ viewport: false,
21
+ ...props.watch,
22
+ },
23
+ filter: {
24
+ ...props.filter,
25
+ },
26
+ });
27
+ const renderCounter = useRef(0);
28
+ renderCounter.current = renderCounter.current + 1;
29
29
 
30
- return (
31
- <>
32
- {/*
33
- <IconButton
34
- sx={{ zIndex: 10000 }}
35
- aria-label="delete"
36
- size="small"
37
- onClick={() => setDebuggerOpen(!debuggerOpen)}
38
- >
39
- <CodeIcon fontSize="inherit" />
40
- </IconButton>
41
- <Drawer
42
- anchor="top"
43
- open={debuggerOpen}
44
- onClose={() => setDebuggerOpen(!debuggerOpen)}
45
- PaperProps={{
46
- sx: {
47
- opacity: 0.85,
48
- maxHeight: "100px",
49
- position: "relative",
50
- },
51
- }}
52
- hideBackdrop={true}
53
- variant="persistent"
54
- ></Drawer>
55
- */}
56
- <div style={{ overflow: "hidden", width: "100px", height: "20px" }}>
57
- Render: {renderCounter.current}
58
- <br />
59
- <pre>{JSON.stringify(map, null, " ")}</pre>
60
- </div>
61
- </>
62
- );
30
+ return (
31
+ <>
32
+ {/*
33
+ <IconButton
34
+ sx={{ zIndex: 10000 }}
35
+ aria-label="delete"
36
+ size="small"
37
+ onClick={() => setDebuggerOpen(!debuggerOpen)}
38
+ >
39
+ <CodeIcon fontSize="inherit" />
40
+ </IconButton>
41
+ <Drawer
42
+ anchor="top"
43
+ open={debuggerOpen}
44
+ onClose={() => setDebuggerOpen(!debuggerOpen)}
45
+ PaperProps={{
46
+ sx: {
47
+ opacity: 0.85,
48
+ maxHeight: "100px",
49
+ position: "relative",
50
+ },
51
+ }}
52
+ hideBackdrop={true}
53
+ variant="persistent"
54
+ ></Drawer>
55
+ */}
56
+ <div style={{ overflow: "hidden", width: "100px", height: "20px" }}>
57
+ Render: {renderCounter.current}
58
+ <br />
59
+ <pre>{JSON.stringify(map, null, " ")}</pre>
60
+ </div>
61
+ </>
62
+ );
63
63
  };
64
64
 
65
65
  MlUseMapDebugger.defaultProps = {
66
- mapId: undefined,
66
+ mapId: undefined,
67
67
  };
68
68
 
69
69
  MlUseMapDebugger.propTypes = {
70
- /**
71
- * Id of the target MapLibre instance in mapContext
72
- */
73
- mapId: PropTypes.string,
70
+ /**
71
+ * Id of the target MapLibre instance in mapContext
72
+ */
73
+ mapId: PropTypes.string,
74
74
  };
75
75
  export default MlUseMapDebugger;
@@ -5,26 +5,26 @@ import MlUseMapDebugger from "./MlUseMapDebugger";
5
5
  import mapContextDecorator from "../../decorators/MapContextDecorator";
6
6
 
7
7
  const storyoptions = {
8
- title: "MapComponents/MlUseMapDebugger",
9
- component: MlUseMapDebugger,
10
- argTypes: {
11
- url: {},
12
- layer: {},
13
- },
14
- decorators: mapContextDecorator,
8
+ title: "MapComponents/MlUseMapDebugger",
9
+ component: MlUseMapDebugger,
10
+ argTypes: {
11
+ url: {},
12
+ layer: {},
13
+ },
14
+ decorators: mapContextDecorator,
15
15
  };
16
16
  export default storyoptions;
17
17
 
18
18
  const Template = (props) => {
19
- return (
20
- <>
21
- <MlUseMapDebugger {...props} />
22
- </>
23
- );
19
+ return (
20
+ <>
21
+ <MlUseMapDebugger {...props} />
22
+ </>
23
+ );
24
24
  };
25
25
 
26
26
  export const ExampleConfig = Template.bind({});
27
27
  ExampleConfig.parameters = {};
28
28
  ExampleConfig.args = {
29
- mapId: "map_1",
29
+ mapId: "map_1",
30
30
  };
@@ -6,41 +6,41 @@ import TopToolbar from "../../ui_components/TopToolbar";
6
6
  import mapContextDecorator from "../../decorators/MapContextDecorator";
7
7
 
8
8
  const storyoptions = {
9
- title: "MapComponents/MlVectorTileLayer",
10
- component: MlVectorTileLayer,
11
- argTypes: {
12
- url: {},
13
- layer: {},
14
- },
15
- decorators: mapContextDecorator,
9
+ title: "MapComponents/MlVectorTileLayer",
10
+ component: MlVectorTileLayer,
11
+ argTypes: {
12
+ url: {},
13
+ layer: {},
14
+ },
15
+ decorators: mapContextDecorator,
16
16
  };
17
17
  export default storyoptions;
18
18
 
19
19
  const Template = (args) => (
20
- <TopToolbar>
21
- <MlVectorTileLayer {...args} />
22
- </TopToolbar>
20
+ <TopToolbar>
21
+ <MlVectorTileLayer {...args} />
22
+ </TopToolbar>
23
23
  );
24
24
 
25
25
  export const ExampleConfig = Template.bind({});
26
26
  ExampleConfig.parameters = {};
27
27
  ExampleConfig.args = {
28
- mapId: "map_1",
29
- url:
30
- "https://wms.wheregroup.com/tileserver/tile/tileserver.php?/europe-0-14/index.json?/europe-0-14/{z}/{x}/{y}.pbf",
31
- layers: {
32
- landuseLine: {
33
- "source-layer": "landuse",
34
- layout: {
35
- "line-cap": "round",
36
- "line-join": "round",
37
- },
38
- paint: { "line-width": 2, "line-color": "#ff0000" },
39
- },
40
- },
41
- sourceOptions: {
42
- minzoom: 0,
43
- maxzoom: 20,
44
- },
28
+ mapId: "map_1",
29
+ url:
30
+ "https://wms.wheregroup.com/tileserver/tile/tileserver.php?/europe-0-14/index.json?/europe-0-14/{z}/{x}/{y}.pbf",
31
+ layers: {
32
+ landuseLine: {
33
+ "source-layer": "landuse",
34
+ layout: {
35
+ "line-cap": "round",
36
+ "line-join": "round",
37
+ },
38
+ paint: { "line-width": 2, "line-color": "#ff0000" },
39
+ },
40
+ },
41
+ sourceOptions: {
42
+ minzoom: 0,
43
+ maxzoom: 20,
44
+ },
45
45
  };
46
46
  //