@mapcomponents/react-maplibre 0.1.56 → 0.1.58

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 (277) 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 +20 -0
  7. package/coverage/clover.xml +232 -80
  8. package/coverage/coverage-final.json +43 -37
  9. package/coverage/lcov-report/index.html +71 -26
  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 +89 -89
  55. package/coverage/lcov-report/src/components/MlScaleReference/index.html +11 -11
  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 +14 -2
  90. package/coverage/lcov.info +450 -153
  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/decorators/ThemeWrapper.d.ts +1 -0
  104. package/dist/hooks/exportMap/index.d.ts +11 -0
  105. package/dist/hooks/exportMap/lib.d.ts +36 -0
  106. package/dist/hooks/useLayer.d.ts +6 -5
  107. package/dist/hooks/useLayerEvent.d.ts +2 -0
  108. package/dist/hooks/useMap.d.ts +1 -1
  109. package/dist/hooks/useMapState.stories.d.ts +2 -2
  110. package/dist/hooks/useSource.d.ts +17 -0
  111. package/dist/hooks/useSources.stories.d.ts +13 -0
  112. package/dist/index.d.ts +4 -0
  113. package/dist/index.esm.js +479 -190
  114. package/dist/index.esm.js.map +1 -1
  115. package/eslintErrorTest.js +10 -0
  116. package/package.json +7 -1
  117. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  118. package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
  119. package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
  120. package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
  121. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
  122. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
  123. package/src/components/MlBasicComponent.js +25 -25
  124. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
  125. package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
  126. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
  127. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
  128. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
  129. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
  130. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
  131. package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
  132. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
  133. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
  134. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
  135. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
  136. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
  137. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
  138. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
  139. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
  140. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
  141. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
  142. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
  143. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
  144. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
  145. package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
  146. package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
  147. package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
  148. package/src/components/MlFeatureEditor/lib/constants.js +61 -61
  149. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
  150. package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
  151. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
  152. package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
  153. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
  154. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
  155. package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
  156. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
  157. package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
  158. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
  159. package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
  160. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
  161. package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
  162. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
  163. package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
  164. package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
  165. package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
  166. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
  167. package/src/components/MlFeatureEditor/lib/theme.js +230 -230
  168. package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
  169. package/src/components/MlFeatureEditor/lib/utils.js +40 -40
  170. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
  171. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
  172. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
  173. package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
  174. package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
  175. package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
  176. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
  177. package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
  178. package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
  179. package/src/components/MlGPXViewer/gpxConverter.js +496 -496
  180. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
  181. package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
  182. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
  183. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
  184. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
  185. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
  186. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
  187. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
  188. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
  189. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
  190. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
  191. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
  192. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
  193. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
  194. package/src/components/MlLayer/MlLayer.stories.js +5 -5
  195. package/src/components/MlLayer/MlLayer.test.js +86 -86
  196. package/src/components/MlLayer/MlLayer.tsx +36 -36
  197. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
  198. package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
  199. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
  200. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
  201. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
  202. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
  203. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
  204. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
  205. package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
  206. package/src/components/MlMarker/MlMarker.stories.js +7 -7
  207. package/src/components/MlMarker/MlMarker.tsx +119 -119
  208. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
  209. package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
  210. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
  211. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
  212. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
  213. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
  214. package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
  215. package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
  216. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
  217. package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
  218. package/src/components/MlScaleReference/MlScaleReference.js +82 -82
  219. package/src/components/MlScaleReference/MlScaleReference.stories.js +33 -35
  220. package/src/components/MlShareMapState/MlShareMapState.js +203 -203
  221. package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
  222. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
  223. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
  224. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
  225. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
  226. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
  227. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
  228. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
  229. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
  230. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
  231. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
  232. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
  233. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
  234. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
  235. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
  237. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
  238. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
  239. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
  240. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
  241. package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
  242. package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
  243. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
  244. package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
  245. package/src/contexts/MapComponentsProvider.test.js +229 -229
  246. package/src/contexts/MapContext.tsx +65 -65
  247. package/src/contexts/SimpleDataProvider.js +47 -47
  248. package/src/contexts/SimpleDataProvider.test.js +29 -29
  249. package/src/custom.d.tsx +14 -14
  250. package/src/decorators/MapContextDecorator.js +23 -25
  251. package/src/decorators/MapContextDecoratorHooks.js +34 -0
  252. package/src/decorators/MultiMapContextDecorator.js +63 -63
  253. package/src/decorators/NoNavToolsDecorator.js +17 -17
  254. package/src/decorators/ThemeWrapper.jsx +9 -0
  255. package/src/hooks/assets/pointWG.json +13 -0
  256. package/src/hooks/exportMap/index.ts +30 -0
  257. package/src/hooks/exportMap/lib.ts +187 -0
  258. package/src/hooks/useLayer.test.js +188 -188
  259. package/src/hooks/useLayer.ts +194 -180
  260. package/src/hooks/useLayerEvent.js +49 -0
  261. package/src/hooks/useMap.ts +67 -66
  262. package/src/hooks/useMapState.stories.js +78 -78
  263. package/src/hooks/useMapState.ts +161 -161
  264. package/src/hooks/useSource.ts +84 -0
  265. package/src/hooks/useSources.stories.js +232 -0
  266. package/src/hooks/useWms.js +71 -71
  267. package/src/index.ts +4 -0
  268. package/src/setupTests.js +86 -86
  269. package/src/ui_components/ImageLoader.js +62 -62
  270. package/src/ui_components/Legend.js +34 -34
  271. package/src/ui_components/LoadingOverlay.js +29 -29
  272. package/src/ui_components/LoadingOverlayContext.js +68 -68
  273. package/src/ui_components/Sidebar.js +80 -80
  274. package/src/ui_components/Tooltip.js +9 -9
  275. package/src/ui_components/TopToolbar.js +23 -23
  276. package/src/util/layerRemovalTest.js +111 -111
  277. 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
  //