Ich bin daran interessiert zu verstehen, wie reale GIS-Systeme und ihre Daten Polygone codieren.
Wie lösen sie insbesondere die Mehrdeutigkeit des Inneren eines Polygons auf einer Kugel auf?
Hintergrund: In 2D ist es trivial, die Seite der Grenze auszuwählen, die eine endliche Fläche hat, da die 2D-Ebene unendlich ist. Eine Kugel ist jedoch endlich, so dass es unmöglich ist zu wissen, welche Seite sich im Inneren befindet, ohne zusätzliche Annahmen zu treffen.
Mögliche Ansätze, die ich kenne:
- Rechte Regel : Außengrenzen werden immer im Uhrzeigersinn und Löcher gegen den Uhrzeigersinn angegeben. (Es gibt natürlich auch die Regel für die linke Hand).
- Kleinster Bereich : Wählen Sie für einen bestimmten Ring immer die Seite mit dem kleinsten Bereich aus. Ich bin mir nicht sicher, wie Sie ein Polygon mit großer Reichweite angeben würden: Vielleicht einen leeren Außenring, gefolgt von Löchern?
- Gleichwinklig : Betrachten Sie einfach die gleichwinklige Projektion auf einer unendlichen 2D-Ebene. Dies setzt jedoch voraus, dass Merkmale am Antemeridian zerhackt werden, andernfalls wäre ein Fallback auf eine der beiden oben genannten Methoden erforderlich.
Meine persönliche Präferenz ist der erste Ansatz, aber ich bin daran interessiert zu verstehen, ob dies in Standard-GIS-Systemen üblich ist.
polygon
area
spherical-geometry
Jason Davies
quelle
quelle
Wenn ich Ihre Frage richtig verstehe, möchten Sie wissen, wie GIS einen Punkt im sphärischen Polygontest ausführt. Hier ist ein Algorithmus, den ich bei geospatialmethods.org gefunden habe :
Ich denke, es basiert immer noch auf dem planaren Algorithmus, einen Teststrahl vom fraglichen Punkt bis zu einem Punkt außerhalb des Polygons zu konstruieren, gefolgt von der Zählung, wie viele Kanten der Strahl kreuzt, die Sie erwähnt haben.
Es wird auch in einem JPL-Artikel der NASA über Algorithmen für Polygone auf einer Kugel ausführlich erörtert . Es ist auf Seite 11. Es gibt natürlich einige Optimierungen:
Ich denke, Sie werden das Papier am interessantesten finden :)
quelle