diff --git a/Logic/GeoOperations.ts b/Logic/GeoOperations.ts index 86a717007..b5a34956a 100644 --- a/Logic/GeoOperations.ts +++ b/Logic/GeoOperations.ts @@ -10,7 +10,7 @@ import { MultiPolygon, Polygon, } from "@turf/turf" -import { GeoJSON, LineString, Point } from "geojson" +import { GeoJSON, LineString, Point, Position } from "geojson" import togpx from "togpx" import Constants from "../Models/Constants" @@ -46,7 +46,7 @@ export class GeoOperations { * @param lonlat0 * @param lonlat1 */ - static distanceBetween(lonlat0: [number, number], lonlat1: [number, number]) { + static distanceBetween(lonlat0: [number, number], lonlat1: [number, number] | Position) { return turf.distance(lonlat0, lonlat1, { units: "meters" }) } diff --git a/Logic/Web/MangroveReviews.ts b/Logic/Web/MangroveReviews.ts index 763b7fa66..a0076e027 100644 --- a/Logic/Web/MangroveReviews.ts +++ b/Logic/Web/MangroveReviews.ts @@ -87,21 +87,23 @@ export default class FeatureReviews { if (feature.geometry.type === "Point") { this._uncertainty = options?.uncertaintyRadius ?? 10 } else { - let coords: Position[][] + let coordss: Position[][] if (feature.geometry.type === "LineString") { - coords = [feature.geometry.coordinates] + coordss = [feature.geometry.coordinates] } else if ( feature.geometry.type === "MultiLineString" || feature.geometry.type === "Polygon" ) { - coords = feature.geometry.coordinates + coordss = feature.geometry.coordinates } let maxDistance = 0 - for (const coord of coords) { - maxDistance = Math.max( - maxDistance, - GeoOperations.distanceBetween(centerLonLat, coord) - ) + for (const coords of coordss) { + for (const coord of coords) { + maxDistance = Math.max( + maxDistance, + GeoOperations.distanceBetween(centerLonLat, coord) + ) + } } this._uncertainty = options?.uncertaintyRadius ?? maxDistance