x

Re: Fläche einer Relation berechnen


Geschrieben von Netzwolf (Gast) am 27. Oktober 2013 14:00:27: [flux]

Als Antwort auf: Fläche einer Relation berechnen geschrieben von Prince Kassad (Gast) am 27. Oktober 2013 01:18:

Nahmd,

Prince Kassad wrote:

Gibt es irgendwie einen Weg, die Fläche einer Relation zu berechnen?

Es gibt mehrere.

1. Der orthodoxe Weg besteht darin, dass Du Dir eine Geodateninfrastruktur schaffst: Du beschaffst einen hinreichend leistungsstarken Server, setzt eine Postgres-Datenbank mit PostGIS Erweiterung auf, lädst den aktuellen OSM-Planet (35Gb oder so) herunter und spielst den mit einem dazu geeigneten Tool in die Datenbank ein. Nach wenigen Stunden bis Tagen (in Einzelfällen auch Wochen) steht die Datenbank bereit, und Du kannst per SQL trivial die Fläche beliebiger Objekte abrufen, also nicht nur von Relationen, sondern auch von Ways.

2. Eine listigere Möglichkeit besteht darin, jemanden zu finden, der Methode 1 bereits erfolgreich angewandt hat, und denjenigen/diejenige/dasjeniges darum zu bitten, Dir einen Zugriff auf die Daten per API bereitzustellen.

3. Du kannst auch auf die originalen OSM-Daten zurückgreifen. Die vollständigen Geometriedaten zur Relation 3257243 rufst Du unter http://www.openstreetmap.org/api/0.6/re … 57243/full ab; dabei das “/full” am Ende nicht vergessen. Achtung: bei größererereren Objekten braucht es ein wenig Geduld. Du bekommst vom Server eine Liste der Linien geliefert, aus denen die Relation zusammengesetzt ist, und die Koordinaten der Punkte, aus denen die Linien bestehen. Diese Linien setzt Du nun zu geschlossenen Ringen zusammen. Bleiben Teile übrig, ist die Relation defekt; Da kannst Du überlegen, ob Du versuchst automatisiert zu flicken oder ob Du einen Fehler wirfst. Als nächstes berechnest Du die Fläche jedes Rings, bei Wikipedia findet sich die Formel. So schön die Formel auch ausschaut, die Numerik ist Mist: also Obacht bei der Implementierung. Jetzt noch die Flächen der “outer”-Ringe addieren und die “inner”-Ringe (Löcher, siehe obiges Beispiel) subtrahieren, und dann noch die Flächenkorrektur je nach Lage auf der Erde (1°×1° ist am Äquator flächengrößer als in der Arktis), und: geschafft. Man kann (und bei großen Flächen ist es sinnvoller), auch die Trapezformel von Fläche auf Kugel umstellen.

Keine einfache Entscheidung!

Es wäre hilfreich, um die Fläche von Orten und Ortsteilen zu bestimmen, oder auch die Fläche z. B. eines Waldes.

Erzählst Du uns mehr über Dein Projekt?

Gruß Wolf

PS: Bis Du eine dauerhafte Lösung gefunden hast, hilft Dir vielleicht diese Zusammenstellung?