aboutsummaryrefslogtreecommitdiff
path: root/modern/src
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-08-13 07:27:54 -0700
committerAnton Tananaev <anton@traccar.org>2022-08-13 07:27:54 -0700
commit060a7e6d15a7d93e9e819228679b2bc798e8bc34 (patch)
tree7432d36e05dd637014a43be07c83b38909774f40 /modern/src
parenta34a1be52dc6b08f6691845487a7dfc843e774e3 (diff)
downloadtrackermap-web-060a7e6d15a7d93e9e819228679b2bc798e8bc34.tar.gz
trackermap-web-060a7e6d15a7d93e9e819228679b2bc798e8bc34.tar.bz2
trackermap-web-060a7e6d15a7d93e9e819228679b2bc798e8bc34.zip
Filter position accuracy (fix #1014)
Diffstat (limited to 'modern/src')
-rw-r--r--modern/src/main/MainPage.js2
-rw-r--r--modern/src/map/main/MapAccuracy.js18
2 files changed, 9 insertions, 11 deletions
diff --git a/modern/src/main/MainPage.js b/modern/src/main/MainPage.js
index a09d9f87..bcd62c7d 100644
--- a/modern/src/main/MainPage.js
+++ b/modern/src/main/MainPage.js
@@ -231,7 +231,7 @@ const MainPage = () => {
<MapView>
<MapOverlay />
{mapGeofences && <MapGeofence />}
- <MapAccuracy />
+ <MapAccuracy positions={filteredPositions} />
{mapLiveRoutes && <MapLiveRoutes />}
<MapPositions positions={filteredPositions} onClick={onClick} showStatus />
{selectedPosition && selectedPosition.course && (
diff --git a/modern/src/map/main/MapAccuracy.js b/modern/src/map/main/MapAccuracy.js
index bec8bde8..335be58e 100644
--- a/modern/src/map/main/MapAccuracy.js
+++ b/modern/src/map/main/MapAccuracy.js
@@ -1,21 +1,13 @@
import { useId, useEffect } from 'react';
-import { useSelector } from 'react-redux';
import circle from '@turf/circle';
import { useTheme } from '@mui/styles';
import { map } from '../core/MapView';
-const MapAccuracy = () => {
+const MapAccuracy = ({ positions }) => {
const id = useId();
const theme = useTheme();
- const positions = useSelector((state) => ({
- type: 'FeatureCollection',
- features: Object.values(state.positions.items)
- .filter((position) => position.accuracy > 0)
- .map((position) => circle([position.longitude, position.latitude], position.accuracy * 0.001)),
- }));
-
useEffect(() => {
map.addSource(id, {
type: 'geojson',
@@ -50,7 +42,13 @@ const MapAccuracy = () => {
}, []);
useEffect(() => {
- map.getSource(id).setData(positions);
+ const data = {
+ 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;