import type { GeoPoint } from "../model/mapTypes"; export function pointInPolygon(point: GeoPoint, polygon: GeoPoint[]): boolean { if (polygon.length < 3) return false; let inside = false; for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) { const pi = polygon[i]!; const pj = polygon[j]!; const intersects = pi.lat > point.lat !== pj.lat > point.lat && point.lon < ((pj.lon - pi.lon) * (point.lat - pi.lat)) / (pj.lat - pi.lat) + pi.lon; if (intersects) { inside = !inside; } } return inside; }