aboutsummaryrefslogtreecommitdiff
path: root/modern/src/map/GeofenceMap.js
diff options
context:
space:
mode:
Diffstat (limited to 'modern/src/map/GeofenceMap.js')
-rw-r--r--modern/src/map/GeofenceMap.js19
1 files changed, 2 insertions, 17 deletions
diff --git a/modern/src/map/GeofenceMap.js b/modern/src/map/GeofenceMap.js
index 31da290d..c98a8c16 100644
--- a/modern/src/map/GeofenceMap.js
+++ b/modern/src/map/GeofenceMap.js
@@ -1,18 +1,8 @@
-import wellknown from 'wellknown';
import { useEffect, useState } from 'react';
import { map } from './Map';
import { useEffectAsync } from '../reactHelper';
-import { reverseCoordinates } from './mapUtil';
-import circle from '@turf/circle';
-
-
-const circleToPolygon = (item) => {
- let coordinates = item.area.replace(/CIRCLE|\(|\)|,/g, " ").trim().split(/ +/);
- var options = { steps: 32, units: 'meters' };
- let polygon = circle([Number(coordinates[1]), Number(coordinates[0])], Number(coordinates[2]), options);
- return [item.name, polygon.geometry];
-}
+import { geofenceToFeature } from './mapUtil';
const GeofenceMap = () => {
const id = 'geofences';
@@ -81,14 +71,9 @@ const GeofenceMap = () => {
}, []);
useEffect(() => {
- let circleFence = geofences.filter((item => item.area.indexOf('CIRCLE') > -1)).map(circleToPolygon);
map.getSource(id).setData({
type: 'FeatureCollection',
- features: geofences.map(item => [item.name, reverseCoordinates(wellknown(item.area))]).filter(([, geometry]) => !!geometry).concat(circleFence).map(([name, geometry]) => ({
- type: 'Feature',
- geometry: geometry,
- properties: { name },
- })),
+ features: geofences.map(geofenceToFeature)
});
}, [geofences]);