More svelte work

This commit is contained in:
Pieter Vander Vennet 2023-01-31 14:45:32 +01:00
parent 890980d534
commit 112162e6c8
6 changed files with 75 additions and 31 deletions

View file

@ -209,11 +209,15 @@ export class GeoOperations {
* GeoOperations.inside([1.42822265625, 48.61838518688487], multiPolygon) // => false
* GeoOperations.inside([4.02099609375, 47.81315451752768], multiPolygon) // => false
*/
public static inside(pointCoordinate: [number, number] | Feature<Point>, feature): boolean {
public static inside(
pointCoordinate: [number, number] | Feature<Point>,
feature: Feature
): boolean {
// ray-casting algorithm based on
// http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
if (feature.geometry.type === "Point") {
// The feature that should 'contain' pointCoordinate is a point itself, so it cannot contain anything
return false
}
@ -227,6 +231,7 @@ export class GeoOperations {
if (feature.geometry.type === "MultiPolygon") {
const coordinatess = feature.geometry.coordinates
for (const coordinates of coordinatess) {
// @ts-ignore
const inThisPolygon = GeoOperations.pointInPolygonCoordinates(x, y, coordinates)
if (inThisPolygon) {
return true
@ -236,6 +241,7 @@ export class GeoOperations {
}
if (feature.geometry.type === "Polygon") {
// @ts-ignore
return GeoOperations.pointInPolygonCoordinates(x, y, feature.geometry.coordinates)
}