Polygone zur Linienfolge vereinfachen?

16

Ich möchte einige Polygone, die Flüsse darstellen, zu Linien zusammenfassen. Ich gehe davon aus, dass Löcher in Polygonen weggelassen werden können. Hat jemand eine gute Idee, wie man es einfach macht?

Es wäre schön, wenn es möglich wäre, direkt in Postgis oder mit einem anderen Open-Source-Tool zu arbeiten, aber eine kurze Beschreibung des Algorithmus wird ausreichen.

Stachu
quelle

Antworten:

13

Was Sie brauchen, heißt "Skelettierungsalgorithmus".

Schauen Sie sich diesen Artikel an:

Haunert, J.-H., Sester, M., Jun. 2008. Gebietszusammenbruch und Straßenmittellinien basierend auf geraden Skeletten. GeoInformatica 12 (2), 169-191. URL http://dx.doi.org/10.1007/s10707-007-0028-x

Einige dieser Algorithmen wurden in der CGAL-Bibliothek entwickelt .

julien
quelle
Keiner der Links funktioniert mehr, Julien: Glauben Sie, Sie könnten eine Zusammenfassung der Algorithmen oder zumindest formale Verweise bereitstellen, damit die Leute die Papiere nachschlagen können?
Whuber
Ja, ich habe die Antwort mit einem korrekten Verweis auf einen neueren Artikel aktualisiert.
Julien
2
Vielen Dank! (Ich kann jedoch keine weitere Bewertung abgeben - ich musste nur eine
abgeben
1

Nur als Warnung habe ich das noch nie versucht. Ihr Erfolg hängt von der Qualität Ihrer Daten ab.

Stellen Sie sich das Polygon also als einen Streifen aus Dreiecken vor. Jedes Dreieck ist mit einer Kante mit einem Scheitelpunkt auf der gegenüberliegenden Seite des Korridors verbunden. Platzieren Sie nun für jede Kante im Korridor einfach einen Eckpunkt rechts in der Mitte. Diese neuen Eckpunkte sind die Punkte Ihrer Linienfolge. Sie können wahrscheinlich damit experimentieren, wie Sie den Mittelpunkt an der Kante auswählen, um eine größere Genauigkeit zu erzielen.

Jon Bringhurst
quelle