@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.
- package/.eslintignore +11 -0
- package/.eslintrc.js +20 -0
- package/.github/workflows/check-formatting.yml +46 -0
- package/.prettierignore +11 -0
- package/.prettierrc.json +6 -0
- package/CHANGELOG.md +18 -0
- package/coverage/clover.xml +229 -77
- package/coverage/coverage-final.json +43 -37
- package/coverage/lcov-report/index.html +65 -20
- package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +83 -83
- package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +66 -66
- package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +30 -30
- package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +202 -0
- package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +116 -0
- package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +99 -99
- package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +66 -66
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +221 -221
- package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +308 -308
- package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +497 -497
- package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +85 -85
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +469 -0
- package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +116 -0
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +140 -140
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +37 -37
- package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +179 -179
- package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +113 -113
- package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +181 -181
- package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +58 -58
- package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
- package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +108 -108
- package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
- package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +39 -39
- package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +183 -183
- package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +163 -163
- package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
- package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +50 -50
- package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +30 -30
- package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +83 -83
- package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
- package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +204 -204
- package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +180 -180
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
- package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +163 -163
- package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +136 -136
- package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +53 -53
- package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
- package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +123 -123
- package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +35 -35
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +155 -155
- package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +255 -255
- package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
- package/coverage/lcov-report/src/contexts/MapContext.tsx.html +66 -66
- package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
- package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +48 -48
- package/coverage/lcov-report/src/contexts/index.html +1 -1
- package/coverage/lcov-report/src/hooks/exportMap/index.html +131 -0
- package/coverage/lcov-report/src/hooks/exportMap/index.ts.html +175 -0
- package/coverage/lcov-report/src/hooks/exportMap/lib.ts.html +646 -0
- package/coverage/lcov-report/src/hooks/index.html +48 -18
- package/coverage/lcov-report/src/hooks/useLayer.ts.html +230 -188
- package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +232 -0
- package/coverage/lcov-report/src/hooks/useMap.ts.html +72 -69
- package/coverage/lcov-report/src/hooks/useMapState.ts.html +145 -145
- package/coverage/lcov-report/src/hooks/useSource.ts.html +337 -0
- package/coverage/lcov-report/src/hooks/useWms.js.html +72 -72
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/index.ts.html +11 -2
- package/coverage/lcov.info +448 -151
- package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +24 -0
- package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +13 -0
- package/dist/components/MlCreatePdfForm/lib/PdfContext.d.ts +21 -0
- package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +10 -0
- package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +13 -0
- package/dist/components/MlCreatePdfForm/lib/pdf.templates.d.ts +11 -0
- package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
- package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +22 -0
- package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +10 -0
- package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +1 -1
- package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +2 -2
- package/dist/decorators/MapContextDecoratorHooks.d.ts +2 -0
- package/dist/hooks/exportMap/index.d.ts +11 -0
- package/dist/hooks/exportMap/lib.d.ts +36 -0
- package/dist/hooks/useLayer.d.ts +6 -5
- package/dist/hooks/useLayerEvent.d.ts +2 -0
- package/dist/hooks/useMap.d.ts +1 -1
- package/dist/hooks/useMapState.stories.d.ts +2 -2
- package/dist/hooks/useSource.d.ts +17 -0
- package/dist/hooks/useSources.stories.d.ts +13 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.esm.js +1055 -315
- package/dist/index.esm.js.map +1 -1
- package/eslintErrorTest.js +10 -0
- package/package.json +7 -1
- package/public/thumbnails/MlCreatePdfForm.png +0 -0
- package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
- package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
- package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
- package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
- package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
- package/src/components/MlBasicComponent.js +25 -25
- package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
- package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
- package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
- package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
- package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
- package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
- package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
- package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
- package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
- package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
- package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
- package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
- package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
- package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
- package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
- package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
- package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
- package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
- package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
- package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
- package/src/components/MlFeatureEditor/lib/constants.js +61 -61
- package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
- package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
- package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
- package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
- package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
- package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
- package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
- package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
- package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
- package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
- package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
- package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
- package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
- package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
- package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
- package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
- package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
- package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
- package/src/components/MlFeatureEditor/lib/theme.js +230 -230
- package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
- package/src/components/MlFeatureEditor/lib/utils.js +40 -40
- package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
- package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
- package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
- package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
- package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
- package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
- package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
- package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
- package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
- package/src/components/MlGPXViewer/gpxConverter.js +496 -496
- package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
- package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
- package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
- package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
- package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
- package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
- package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
- package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
- package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
- package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
- package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
- package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
- package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
- package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
- package/src/components/MlLayer/MlLayer.stories.js +5 -5
- package/src/components/MlLayer/MlLayer.test.js +86 -86
- package/src/components/MlLayer/MlLayer.tsx +36 -36
- package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
- package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
- package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
- package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
- package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
- package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
- package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
- package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
- package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
- package/src/components/MlMarker/MlMarker.stories.js +7 -7
- package/src/components/MlMarker/MlMarker.tsx +119 -119
- package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
- package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
- package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
- package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
- package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
- package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
- package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
- package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
- package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
- package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
- package/src/components/MlScaleReference/MlScaleReference.js +82 -82
- package/src/components/MlScaleReference/MlScaleReference.stories.js +27 -27
- package/src/components/MlShareMapState/MlShareMapState.js +203 -203
- package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
- package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
- package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
- package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
- package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
- package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
- package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
- package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
- package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
- package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
- package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
- package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
- package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
- package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
- package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
- package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
- package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
- package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
- package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
- package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
- package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
- package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
- package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
- package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
- package/src/contexts/MapComponentsProvider.test.js +229 -229
- package/src/contexts/MapContext.tsx +65 -65
- package/src/contexts/SimpleDataProvider.js +47 -47
- package/src/contexts/SimpleDataProvider.test.js +29 -29
- package/src/custom.d.tsx +14 -14
- package/src/decorators/MapContextDecorator.js +22 -22
- package/src/decorators/MapContextDecoratorHooks.js +34 -0
- package/src/decorators/MultiMapContextDecorator.js +63 -63
- package/src/decorators/NoNavToolsDecorator.js +17 -17
- package/src/decorators/ThemeWrapper.jsx +1 -1
- package/src/hooks/assets/pointWG.json +13 -0
- package/src/hooks/exportMap/index.ts +30 -0
- package/src/hooks/exportMap/lib.ts +187 -0
- package/src/hooks/useLayer.test.js +188 -188
- package/src/hooks/useLayer.ts +194 -180
- package/src/hooks/useLayerEvent.js +49 -0
- package/src/hooks/useMap.ts +67 -66
- package/src/hooks/useMapState.stories.js +78 -78
- package/src/hooks/useMapState.ts +161 -161
- package/src/hooks/useSource.ts +84 -0
- package/src/hooks/useSources.stories.js +232 -0
- package/src/hooks/useWms.js +71 -71
- package/src/index.ts +3 -0
- package/src/setupTests.js +86 -86
- package/src/ui_components/ImageLoader.js +62 -62
- package/src/ui_components/Legend.js +34 -34
- package/src/ui_components/LoadingOverlay.js +29 -29
- package/src/ui_components/LoadingOverlayContext.js +68 -68
- package/src/ui_components/Sidebar.js +80 -80
- package/src/ui_components/Tooltip.js +9 -9
- package/src/ui_components/TopToolbar.js +23 -23
- package/src/util/layerRemovalTest.js +111 -111
- package/src/util/sourceRemovalTest.js +103 -103
|
@@ -417,171 +417,171 @@ import { GeoJSONSource } from "maplibre-gl";
|
|
|
417
417
|
import useMap, { useMapType } from "../../hooks/useMap";
|
|
418
418
|
|
|
419
419
|
interface MlImageMarkerLayerProps {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
420
|
+
/**
|
|
421
|
+
* Id of the target MapLibre instance in mapContext
|
|
422
|
+
*/
|
|
423
|
+
mapId?: string;
|
|
424
|
+
/**
|
|
425
|
+
* The layerId of an existing layer this layer should be rendered visually beneath
|
|
426
|
+
* https://maplibre.org/maplibre-gl-js-docs/api/map/#map#addlayer - see "beforeId" property
|
|
427
|
+
*/
|
|
428
|
+
insertBeforeLayer?: string;
|
|
429
|
+
/**
|
|
430
|
+
* Id of the layer that will be added by this component to the maplibre-gl instance
|
|
431
|
+
*/
|
|
432
|
+
layerId?: string;
|
|
433
|
+
/**
|
|
434
|
+
* Id of the image that will be added by this component to the maplibre-gl instance
|
|
435
|
+
*/
|
|
436
|
+
imageId?: string;
|
|
437
|
+
/**
|
|
438
|
+
* Path or URL to a supported raster image
|
|
439
|
+
*/
|
|
440
|
+
imgSrc?: string;
|
|
441
|
+
/**
|
|
442
|
+
* Javascript object that is passed the addLayer command as first parameter.
|
|
443
|
+
*/
|
|
444
|
+
options?: any;
|
|
445
445
|
}
|
|
446
446
|
|
|
447
447
|
const MlImageMarkerLayer = (props: MlImageMarkerLayerProps) => {
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
448
|
+
const mapHook = useMap({
|
|
449
|
+
mapId: props.mapId,
|
|
450
|
+
waitForLayer: props.insertBeforeLayer,
|
|
451
|
+
});
|
|
452
452
|
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
453
|
+
const initializedRef = useRef(false);
|
|
454
|
+
const recreationInProgress = useRef(false);
|
|
455
|
+
const imageIdRef = useRef(props.imageId || "img_" + new Date().getTime());
|
|
456
|
+
const layerId = useRef(props.layerId || "MlImageMarkerLayer-" + mapHook.componentId);
|
|
457
457
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
<span class="branch-3 cbranch-no" title="branch not covered" >
|
|
464
|
-
|
|
465
|
-
|
|
458
|
+
// effect to sync Layer paint & layout properties
|
|
459
|
+
useEffect(() => {
|
|
460
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (
|
|
461
|
+
!mapHook.map ||
|
|
462
|
+
(<span class="branch-1 cbranch-no" title="branch not covered" >mapHook.map </span>&& <span class="branch-2 cbranch-no" title="branch not covered" >!mapHook.map.map.getLayer(layerId.current))</span> ||
|
|
463
|
+
<span class="branch-3 cbranch-no" title="branch not covered" > !props.options</span>
|
|
464
|
+
)
|
|
465
|
+
return;
|
|
466
466
|
|
|
467
|
-
|
|
467
|
+
var key;
|
|
468
468
|
|
|
469
|
-
<span class="cstat-no" title="statement not covered" >
|
|
470
|
-
<span class="cstat-no" title="statement not covered" >
|
|
471
|
-
<span class="cstat-no" title="statement not covered" >
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
<span class="cstat-no" title="statement not covered" >
|
|
475
|
-
<span class="cstat-no" title="statement not covered" >
|
|
476
|
-
<span class="cstat-no" title="statement not covered" >
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
469
|
+
<span class="cstat-no" title="statement not covered" > if (props.options.layout) {</span>
|
|
470
|
+
<span class="cstat-no" title="statement not covered" > for (key in props.options.layout) {</span>
|
|
471
|
+
<span class="cstat-no" title="statement not covered" > mapHook.map.map.setLayoutProperty(layerId.current, key, props.options.layout[key]);</span>
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
<span class="cstat-no" title="statement not covered" > if (props.options.paint) {</span>
|
|
475
|
+
<span class="cstat-no" title="statement not covered" > for (key in props.options.paint) {</span>
|
|
476
|
+
<span class="cstat-no" title="statement not covered" > mapHook.map.map.setPaintProperty(layerId.current, key, props.options.paint[key]);</span>
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}, [props.options, layerId.current, props.mapId]);
|
|
480
480
|
|
|
481
|
-
|
|
482
|
-
<span class="cstat-no" title="statement not covered" >
|
|
483
|
-
<span class="cstat-no" title="statement not covered" >
|
|
481
|
+
const createImage = <span class="fstat-no" title="function not covered" >(m</span>apHook: useMapType, props: MlImageMarkerLayerProps, callback: Function) => {
|
|
482
|
+
<span class="cstat-no" title="statement not covered" > if (!mapHook.map) {</span>
|
|
483
|
+
<span class="cstat-no" title="statement not covered" > initializedRef.current = false;</span>
|
|
484
484
|
|
|
485
|
-
<span class="cstat-no" title="statement not covered" >
|
|
486
|
-
|
|
485
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
486
|
+
}
|
|
487
487
|
|
|
488
|
-
<span class="cstat-no" title="statement not covered" >
|
|
489
|
-
<span class="cstat-no" title="statement not covered" >
|
|
490
|
-
<span class="cstat-no" title="statement not covered" >
|
|
488
|
+
<span class="cstat-no" title="statement not covered" > if (props.imgSrc && !mapHook.map.map.hasImage(imageIdRef.current)) {</span>
|
|
489
|
+
<span class="cstat-no" title="statement not covered" > mapHook.map.map.loadImage(props.imgSrc, <span class="fstat-no" title="function not covered" >fu</span>nction (error, image) {</span>
|
|
490
|
+
<span class="cstat-no" title="statement not covered" > if (error) <span class="cstat-no" title="statement not covered" >throw error;</span></span>
|
|
491
491
|
|
|
492
|
-
<span class="cstat-no" title="statement not covered" >
|
|
492
|
+
<span class="cstat-no" title="statement not covered" > if (!mapHook.map || mapHook.map.map.hasImage(imageIdRef.current)) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
493
493
|
|
|
494
|
-
<span class="cstat-no" title="statement not covered" >
|
|
494
|
+
<span class="cstat-no" title="statement not covered" > mapHook.map.addImage(imageIdRef.current, image, mapHook.componentId);</span>
|
|
495
495
|
|
|
496
|
-
<span class="cstat-no" title="statement not covered" >
|
|
497
|
-
<span class="cstat-no" title="statement not covered" >
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
<span class="cstat-no" title="statement not covered" >
|
|
502
|
-
<span class="cstat-no" title="statement not covered" >
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
496
|
+
<span class="cstat-no" title="statement not covered" > if (typeof callback === "function") {</span>
|
|
497
|
+
<span class="cstat-no" title="statement not covered" > callback();</span>
|
|
498
|
+
}
|
|
499
|
+
});
|
|
500
|
+
} else {
|
|
501
|
+
<span class="cstat-no" title="statement not covered" > if (typeof callback === "function") {</span>
|
|
502
|
+
<span class="cstat-no" title="statement not covered" > callback();</span>
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
};
|
|
506
506
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
507
|
+
const createLayer = (
|
|
508
|
+
mapHook: useMapType,
|
|
509
|
+
props: MlImageMarkerLayerProps,
|
|
510
|
+
createMapLibreElements: Function
|
|
511
|
+
) => {
|
|
512
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!props.options || !mapHook.map || mapHook.map?.map.getLayer(layerId.current)) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
513
513
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
514
|
+
let tmpOptions = {
|
|
515
|
+
id: layerId.current,
|
|
516
|
+
layout: {},
|
|
517
|
+
...props.options,
|
|
518
|
+
};
|
|
519
|
+
tmpOptions.layout["icon-image"] = imageIdRef.current;
|
|
520
|
+
mapHook.map.addLayer(tmpOptions, props.insertBeforeLayer, mapHook.componentId);
|
|
521
521
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
<span class="fstat-no" title="function not covered" >
|
|
526
|
-
<span class="cstat-no" title="statement not covered" >
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
<span class="cstat-no" title="statement not covered" >
|
|
532
|
-
<span class="cstat-no" title="statement not covered" >
|
|
533
|
-
<span class="cstat-no" title="statement not covered" >
|
|
534
|
-
<span class="cstat-no" title="statement not covered" >
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
522
|
+
// recreate layer if map style.json has changed
|
|
523
|
+
mapHook.map.on(
|
|
524
|
+
"styledata",
|
|
525
|
+
<span class="fstat-no" title="function not covered" > ()</span> => {
|
|
526
|
+
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
527
|
+
initializedRef.current &&
|
|
528
|
+
!mapHook.map?.map.getLayer(layerId.current) &&
|
|
529
|
+
!recreationInProgress.current
|
|
530
|
+
) {
|
|
531
|
+
<span class="cstat-no" title="statement not covered" > initializedRef.current = false;</span>
|
|
532
|
+
<span class="cstat-no" title="statement not covered" > recreationInProgress.current = true;</span>
|
|
533
|
+
<span class="cstat-no" title="statement not covered" > console.log("Recreate Layer " + layerId.current);</span>
|
|
534
|
+
<span class="cstat-no" title="statement not covered" > createMapLibreElements();</span>
|
|
535
|
+
}
|
|
536
|
+
},
|
|
537
|
+
mapHook.componentId
|
|
538
|
+
);
|
|
539
539
|
|
|
540
|
-
|
|
541
|
-
<span class="cstat-no" title="statement not covered" >
|
|
542
|
-
|
|
543
|
-
|
|
540
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (recreationInProgress.current) {
|
|
541
|
+
<span class="cstat-no" title="statement not covered" > recreationInProgress.current = false;</span>
|
|
542
|
+
}
|
|
543
|
+
};
|
|
544
544
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
545
|
+
const createMapLibreElements = useCallback(() => {
|
|
546
|
+
if (!mapHook.map || initializedRef.current || mapHook.map?.map.getLayer(layerId.current))
|
|
547
|
+
return;
|
|
548
548
|
|
|
549
|
-
|
|
549
|
+
initializedRef.current = true;
|
|
550
550
|
|
|
551
|
-
|
|
552
|
-
<span class="cstat-no" title="statement not covered" >
|
|
553
|
-
|
|
551
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (recreationInProgress.current) {
|
|
552
|
+
<span class="cstat-no" title="statement not covered" > mapHook.cleanup();</span>
|
|
553
|
+
}
|
|
554
554
|
|
|
555
|
-
|
|
556
|
-
<span class="cstat-no" title="statement not covered" >
|
|
557
|
-
<span class="cstat-no" title="statement not covered" >
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
555
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (props.imgSrc) {
|
|
556
|
+
<span class="cstat-no" title="statement not covered" > createImage(mapHook, props, <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
557
|
+
<span class="cstat-no" title="statement not covered" > createLayer(mapHook, props, createMapLibreElements);</span>
|
|
558
|
+
});
|
|
559
|
+
} else {
|
|
560
|
+
createLayer(mapHook, props, createMapLibreElements);
|
|
561
|
+
}
|
|
562
|
+
}, [props, mapHook]);
|
|
563
563
|
|
|
564
|
-
|
|
565
|
-
|
|
564
|
+
useEffect(() => {
|
|
565
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
566
566
|
|
|
567
|
-
|
|
568
|
-
|
|
567
|
+
createMapLibreElements();
|
|
568
|
+
}, [createMapLibreElements]);
|
|
569
569
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
<span class="branch-3 cbranch-no" title="branch not covered" >
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
570
|
+
useEffect(() => {
|
|
571
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (
|
|
572
|
+
!mapHook.map ||
|
|
573
|
+
(<span class="branch-1 cbranch-no" title="branch not covered" >mapHook.map </span>&& <span class="branch-2 cbranch-no" title="branch not covered" >!mapHook.map.map.getLayer(layerId.current))</span> ||
|
|
574
|
+
<span class="branch-3 cbranch-no" title="branch not covered" > !props.options</span>
|
|
575
|
+
) {
|
|
576
|
+
return;
|
|
577
|
+
}
|
|
578
578
|
|
|
579
|
-
<span class="cstat-no" title="statement not covered" >
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
579
|
+
<span class="cstat-no" title="statement not covered" > (mapHook.map.map.getSource(layerId.current) as GeoJSONSource).setData(</span>
|
|
580
|
+
props.options.source.data
|
|
581
|
+
);
|
|
582
|
+
}, [props.options.source.data, props]);
|
|
583
583
|
|
|
584
|
-
|
|
584
|
+
return <></>;
|
|
585
585
|
};
|
|
586
586
|
|
|
587
587
|
export default MlImageMarkerLayer;
|
|
@@ -592,7 +592,7 @@ export default MlImageMarkerLayer;
|
|
|
592
592
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
593
593
|
Code coverage generated by
|
|
594
594
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
595
|
-
at Tue
|
|
595
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
596
596
|
</div>
|
|
597
597
|
<script src="../../../prettify.js"></script>
|
|
598
598
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at Tue
|
|
104
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -177,27 +177,27 @@ import useLayer from "../../hooks/useLayer";
|
|
|
177
177
|
import { Feature, FeatureCollection } from "@turf/turf";
|
|
178
178
|
|
|
179
179
|
interface MlLayerProps {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Id of the target MapLibre instance in mapContext
|
|
182
|
+
*/
|
|
183
|
+
mapId?: string;
|
|
184
|
+
/**
|
|
185
|
+
* The layerId of an existing layer this layer should be rendered visually beneath
|
|
186
|
+
* https://maplibre.org/maplibre-gl-js-docs/api/map/#map#addlayer - see "beforeId" property
|
|
187
|
+
*/
|
|
188
|
+
insertBeforeLayer?: string;
|
|
189
|
+
/**
|
|
190
|
+
* Id of the layer that will be added by this component to the maplibre-gl instance
|
|
191
|
+
*/
|
|
192
|
+
layerId?: string;
|
|
193
|
+
/**
|
|
194
|
+
* Javascript object that is passed the addLayer command as first parameter.
|
|
195
|
+
*/
|
|
196
|
+
options?: any;
|
|
197
|
+
/**
|
|
198
|
+
* GeoJSON data that is supposed to be rendered by this component.
|
|
199
|
+
*/
|
|
200
|
+
geojson?: Feature | FeatureCollection | undefined;
|
|
201
201
|
}
|
|
202
202
|
|
|
203
203
|
/**
|
|
@@ -206,22 +206,22 @@ interface MlLayerProps {
|
|
|
206
206
|
* @category Map components
|
|
207
207
|
*/
|
|
208
208
|
const MlLayer = (props: MlLayerProps) => {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
209
|
+
useLayer({
|
|
210
|
+
idPrefix: 'MlLayer-',
|
|
211
|
+
layerId: props.layerId,
|
|
212
|
+
mapId: props.mapId,
|
|
213
|
+
geojson: props.geojson,
|
|
214
|
+
options: {
|
|
215
|
+
type: "background",
|
|
216
|
+
paint: {
|
|
217
|
+
"background-color": "rgba(0,0,0,0)",
|
|
218
|
+
},
|
|
219
|
+
...props.options,
|
|
220
|
+
},
|
|
221
|
+
insertBeforeLayer: props.insertBeforeLayer,
|
|
222
|
+
});
|
|
223
223
|
|
|
224
|
-
|
|
224
|
+
return <></>;
|
|
225
225
|
};
|
|
226
226
|
|
|
227
227
|
export default MlLayer;
|
|
@@ -232,7 +232,7 @@ export default MlLayer;
|
|
|
232
232
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
233
233
|
Code coverage generated by
|
|
234
234
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
235
|
-
at Tue
|
|
235
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
236
236
|
</div>
|
|
237
237
|
<script src="../../../prettify.js"></script>
|
|
238
238
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at Tue
|
|
104
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../../prettify.js"></script>
|
|
107
107
|
<script>
|