diff options
author | Anton Tananaev <anton@traccar.org> | 2023-03-26 07:08:01 -0700 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2023-03-26 07:08:01 -0700 |
commit | 6402a8a53a9bac2791741c88a84c85c73c53ba91 (patch) | |
tree | a55ba45197f7e3d93c212d06d1fb37c83db96da7 /modern/src/map | |
parent | 4e733fb2d637300196665b377850e7fdbd5ce8eb (diff) | |
download | trackermap-web-6402a8a53a9bac2791741c88a84c85c73c53ba91.tar.gz trackermap-web-6402a8a53a9bac2791741c88a84c85c73c53ba91.tar.bz2 trackermap-web-6402a8a53a9bac2791741c88a84c85c73c53ba91.zip |
Fix map change crash
Diffstat (limited to 'modern/src/map')
-rw-r--r-- | modern/src/map/MapGeofence.js | 2 | ||||
-rw-r--r-- | modern/src/map/MapMarkers.js | 4 | ||||
-rw-r--r-- | modern/src/map/MapPositions.js | 4 | ||||
-rw-r--r-- | modern/src/map/MapRoutePath.js | 2 | ||||
-rw-r--r-- | modern/src/map/MapRoutePoints.js | 4 | ||||
-rw-r--r-- | modern/src/map/main/MapAccuracy.js | 5 | ||||
-rw-r--r-- | modern/src/map/main/MapLiveRoutes.js | 2 |
7 files changed, 11 insertions, 12 deletions
diff --git a/modern/src/map/MapGeofence.js b/modern/src/map/MapGeofence.js index 6208795c..73b32724 100644 --- a/modern/src/map/MapGeofence.js +++ b/modern/src/map/MapGeofence.js @@ -81,7 +81,7 @@ const MapGeofence = () => { useEffect(() => { if (mapGeofences) { - map.getSource(id).setData({ + map.getSource(id)?.setData({ type: 'FeatureCollection', features: Object.values(geofences).map((geofence) => geofenceToFeature(theme, geofence)), }); diff --git a/modern/src/map/MapMarkers.js b/modern/src/map/MapMarkers.js index 8bcfd8d6..8fbe92b6 100644 --- a/modern/src/map/MapMarkers.js +++ b/modern/src/map/MapMarkers.js @@ -67,7 +67,7 @@ const MapMarkers = ({ markers, showTitles }) => { }, [showTitles]); useEffect(() => { - map.getSource(id).setData({ + map.getSource(id)?.setData({ type: 'FeatureCollection', features: markers.map(({ latitude, longitude, image, title }) => ({ type: 'Feature', @@ -81,7 +81,7 @@ const MapMarkers = ({ markers, showTitles }) => { }, })), }); - }, [markers]); + }, [showTitles, markers]); return null; }; diff --git a/modern/src/map/MapPositions.js b/modern/src/map/MapPositions.js index 5bff23fb..49639e8d 100644 --- a/modern/src/map/MapPositions.js +++ b/modern/src/map/MapPositions.js @@ -178,7 +178,7 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF }, [mapCluster, clusters, direction, onMarkerClick, onClusterClick]); useEffect(() => { - map.getSource(id).setData({ + map.getSource(id)?.setData({ type: 'FeatureCollection', features: positions.filter((it) => devices.hasOwnProperty(it.deviceId)).map((position) => ({ type: 'Feature', @@ -189,7 +189,7 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF properties: createFeature(devices, position, selectedPosition && selectedPosition.id), })), }); - }, [devices, positions, selectedPosition]); + }, [mapCluster, clusters, direction, onMarkerClick, onClusterClick, devices, positions, selectedPosition]); return null; }; diff --git a/modern/src/map/MapRoutePath.js b/modern/src/map/MapRoutePath.js index 8b9e0468..c7d03400 100644 --- a/modern/src/map/MapRoutePath.js +++ b/modern/src/map/MapRoutePath.js @@ -81,7 +81,7 @@ const MapRoutePath = ({ name, positions, coordinates }) => { if (!coordinates) { coordinates = positions.map((item) => [item.longitude, item.latitude]); } - map.getSource(id).setData({ + map.getSource(id)?.setData({ type: 'Feature', geometry: { type: 'LineString', diff --git a/modern/src/map/MapRoutePoints.js b/modern/src/map/MapRoutePoints.js index 38a0e226..bed81f3a 100644 --- a/modern/src/map/MapRoutePoints.js +++ b/modern/src/map/MapRoutePoints.js @@ -55,7 +55,7 @@ const MapPositions = ({ positions, onClick }) => { }, [onMarkerClick]); useEffect(() => { - map.getSource(id).setData({ + map.getSource(id)?.setData({ type: 'FeatureCollection', features: positions.map((position, index) => ({ type: 'Feature', @@ -69,7 +69,7 @@ const MapPositions = ({ positions, onClick }) => { }, })), }); - }, [positions]); + }, [onMarkerClick, positions]); return null; }; diff --git a/modern/src/map/main/MapAccuracy.js b/modern/src/map/main/MapAccuracy.js index 335be58e..cdc706cc 100644 --- a/modern/src/map/main/MapAccuracy.js +++ b/modern/src/map/main/MapAccuracy.js @@ -42,13 +42,12 @@ const MapAccuracy = ({ positions }) => { }, []); useEffect(() => { - const data = { + map.getSource(id)?.setData({ type: 'FeatureCollection', features: positions .filter((position) => position.accuracy > 0) .map((position) => circle([position.longitude, position.latitude], position.accuracy * 0.001)), - }; - map.getSource(id).setData(data); + }); }, [positions]); return null; diff --git a/modern/src/map/main/MapLiveRoutes.js b/modern/src/map/main/MapLiveRoutes.js index 397d8c52..049ff9c9 100644 --- a/modern/src/map/main/MapLiveRoutes.js +++ b/modern/src/map/main/MapLiveRoutes.js @@ -61,7 +61,7 @@ const MapLiveRoutes = () => { .filter((id) => (type === 'selected' ? id === selectedDeviceId : true)) .filter((id) => history.hasOwnProperty(id)); - map.getSource(id).setData({ + map.getSource(id)?.setData({ type: 'FeatureCollection', features: deviceIds.map((deviceId) => ({ type: 'Feature', |