import { point, multiPolygon, booleanPointInPolygon, booleanIntersects, polygon } from "@turf/turf";
import leitstellenGeoJSON from "../_components/map/_geojson/Leitstellen.json"; // Pfad anpassen

export function findLeitstelleForPosition(lat: number, lng: number) {
	const heliPoint = point([lat, lng]);

	for (const feature of (leitstellenGeoJSON as any).features) {
		const geom = feature.geometry;

		if (geom.type === "Polygon") {
			const turfPolygon = polygon(geom.coordinates);
			if (booleanPointInPolygon(heliPoint, turfPolygon)) {
				return feature.properties?.name ?? "Unbenannte Leitstelle";
			}
		} else if (geom.type === "MultiPolygon") {
			// MultiPolygon: check each polygon
			for (const coords of geom.coordinates) {
				const turfPolygon = polygon(coords);
				if (booleanPointInPolygon(heliPoint, turfPolygon)) {
					return feature.properties?.name ?? "Unbenannte Leitstelle";
				}
			}
		} else {
			continue; // Andere Geometrietypen ignorieren
		}
	}

	return null;
}
