Node.js / Javascript-Bibliothek, um zu prüfen, ob der Punkt im Geojson-Multipolygon ist

9

Gibt es eine Bibliothek für node.js oder Javascript im Allgemeinen, die eine Funktion bietet, um zu überprüfen, ob eine Koordinate in einem Geojson-Multipolygon ist?

Ich versuche, eine kleine HTTP-API zu erstellen, die mir sagt, welche Multipolygone (die Länder, Landkreise, Städte usw. repräsentieren) eine gegebene Koordinate enthalten.

Ich dachte, dass ich eine Liste aller Multipolygone halten werde & amp; ihre Bounding-Box im Speicher und dann zuerst für jedes Polygon überprüfen, ob sein Bounding-Box die Koordinate enthält. Wenn ja, dann wird geprüft, ob die Koordinate im Multipolygon selbst liegt.

Ich weiß, dass es eine Bibliothek namens "Clipper" gibt, die zu JavaScript portiert wurde, aber es scheint, dass die Bibliothek dies nicht bietet eine einfache "pointInPolygon" -Funktion, auch wenn die Bibliothek selbst sehr mächtig ist. Ist das mit dieser Bibliothek noch möglich?

Zusätzlich habe ich eine andere Bibliothek namens "geojson-js-utils" gefunden , aber es scheint nicht so Multipolygone zu unterstützen (zumindest ist es dort nicht erwähnt)

Ich habe einige andere Bibliotheken gefunden, die prüfen können, ob ein Punkt in einem Polygon liegt, aber ich weiß nicht, wie ich sie verwenden kann, um zu prüfen, ob ein Punkt in einem Multipolygon ist.

Irgendwelche Hinweise?

    
Van Coding 04.12.2013, 15:22
quelle

1 Antwort

1

Im neuesten Clipper gibt es eine effiziente PointInPolygon-Funktion. Es verwendet den Algorithmus Der Punkt im Polygon-Problem für beliebige Polygone < von Hormann & amp; Agathos.

Die Dokumentation von Javascript Clippers PointInPolygon-Funktion lautet:

ClipperLib.Clipper.PointInPolygon ()

%Vor%

Gibt 0 zurück, wenn false, -1 wenn pt auf Poly steht und +1, wenn pt in poly ist.

Verwendung:

%Vor%

Um Multipolygon zu testen, können Sie Subpolygone durchlaufen und sie mit PointInPolygon überprüfen.

    
Timo Kähkönen 11.02.2014 03:44
quelle