You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2013-10-27 01:18:39

Prince Kassad
Member
Registered: 2013-10-18
Posts: 2,391

Fläche einer Relation berechnen

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

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

Offline

#2 2013-10-27 02:45:14

EvanE
Member
Registered: 2009-11-30
Posts: 5,716

Re: Fläche einer Relation berechnen

Prince Kassad wrote:

Gibt es irgendwie einen Weg, die Fläche einer Relation zu berechnen?
Es wäre hilfreich, um die Fläche von Orten und Ortsteilen zu bestimmen, oder auch die Fläche z. B. eines Waldes.

Es gibt sicher viele Wege die Größe eine Fläche zu berechnen, auch für OSM-Objekte wie geschlossene Wege oder Multipolygone.

Ein sehr einfacher Weg ist, den Editor JOSM zu benutzen und dort das Measurement-Plugin zu installieren. Dann brauchst du es nur noch abzulesen.
Ach ja, Multipolygone sollten komplett geladen sein.

Edbert (EvanE)

Offline

#3 2013-10-27 07:32:32

rayquaza
Member
From: DE-BW
Registered: 2012-11-18
Posts: 2,007

Re: Fläche einer Relation berechnen

EvanE wrote:

Ein sehr einfacher Weg ist, den Editor JOSM zu benutzen und dort das Measurement-Plugin zu installieren. Dann brauchst du es nur noch abzulesen.
Ach ja, Multipolygone sollten komplett geladen sein.

Funkioniert das mit MPs nicht oder mache ich was falsch? Falls letzteres bitte ich um eine idiotensichere Erklärung, falls ersteres um eine Alternative wink

Offline

#4 2013-10-27 08:44:40

MKnight
Member
Registered: 2012-08-01
Posts: 2,406

Re: Fläche einer Relation berechnen

rayquaza wrote:
EvanE wrote:

Ein sehr einfacher Weg ist, den Editor JOSM zu benutzen und dort das Measurement-Plugin zu installieren. Dann brauchst du es nur noch abzulesen.
Ach ja, Multipolygone sollten komplett geladen sein.

Funkioniert das mit MPs nicht oder mache ich was falsch? Falls letzteres bitte ich um eine idiotensichere Erklärung, falls ersteres um eine Alternative wink

Im Eigenschaftenfenster rechte Maustaste auf die MP -> Elemente auswählen


gesammelte Overpass-abfragen zu QA (hauptsächlich Strassenfehler) + verschiedene Stats zu Strassen-eigenschaften

Offline

#5 2013-10-27 09:07:57

rayquaza
Member
From: DE-BW
Registered: 2012-11-18
Posts: 2,007

Re: Fläche einer Relation berechnen

MKnight wrote:

Im Eigenschaftenfenster rechte Maustaste auf die MP -> Elemente auswählen

Ich erhalte damit nur eine Länge und seltsamerweise einen Winkel. Getestet an einem PLZ-MP und einer Grenzrelation, beide geschlossen und sortiert. Stattdessen die Relation selbst auswählen ergibt für alles 0.

Offline

#6 2013-10-27 09:49:47

MKnight
Member
Registered: 2012-08-01
Posts: 2,406

Re: Fläche einer Relation berechnen

Ja, was anderes macht das Plugin auch nicht, ausser Linienlängen messen. Flächeninhalt wäre mir neu.


gesammelte Overpass-abfragen zu QA (hauptsächlich Strassenfehler) + verschiedene Stats zu Strassen-eigenschaften

Offline

#7 2013-10-27 10:11:36

chris66
Member
From: Germany
Registered: 2009-05-24
Posts: 10,130

Re: Fläche einer Relation berechnen

16287800in.jpg
Relationen gehen anscheinend nicht, nur einfache closed ways.

measurement plugin wrote:

Bietet eine Maßanzeige und Ebene um Länge und Winkel von Segmenten, Flächen von (einfach) geschlossenen Linien zu messen. Außerdem können Messpfade (die auch von einer GPS-Ebene importiert werden können) angelegt werden.

Last edited by chris66 (2013-10-27 10:18:59)


Mapper aus dem Münsterland.

Offline

#8 2013-10-27 10:22:27

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Fläche einer Relation berechnen

Prince Kassad wrote:

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

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

Nachdem die Kollegen sich über die Features von Josm gestritten unterhalten haben, erstmal etwas zur Klarstellung:

In welchem Umfeld, mit welcher Art von Anwendung willst du denn die Flächengröße haben?

- Liste ?
- einmalig Nachsehen (z.B. in Josm)?
- als Legende einer Karte?
- Interaktiv?
- ???

Und wie sieht dein IT-Umfeld/-Wissen aus? Was hast du? Was kannst du?

Dann könnte man mal überlegen, wie deine Frage zu beantworten ist.

Gruss
walter

Offline

#9 2013-10-27 11:38:44

Prince Kassad
Member
Registered: 2013-10-18
Posts: 2,391

Re: Fläche einer Relation berechnen

Soll das eine Anspielung sein auf "programmiers doch selbst"?

Ich weiß ja gerade noch, wie man mathematisch die Fläche eines Polygons berechnet, nämlich indem man die Fläche in Quadrate und (rechtwinklige) Dreiecke aufteilt. Manuell ist das, je nach Komplexität der Relation, sehr mühsam, und vor allem wenn man Grenzen hat die Küstenlinien oder Flussläufen folgen, hat man irgendwann sehr viele Dreiecke und Quadrate und kommt mit dem Rechnen kaum hinterher.

Mir reicht es ja wenn es ähnlich wie oben erwähntes Measurement-Plugin funktionieren würde, also man wählt eine Relation und erhält die Fläche. Ich wüsste allerdings gerade nicht, wie sich das bewerkstelligen ließe.

Offline

#10 2013-10-27 11:54:19

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Fläche einer Relation berechnen

Prince Kassad wrote:

Soll das eine Anspielung sein auf "programmiers doch selbst"?

Nein, aber wenn jemand fragt "Wie komme ich von Berlin nach München?", darf man doch mal fragen, womit - oder? (Flugzeug?, Bahn?, Auto?, fährst du selber?, Fahrgemeinschaft?, Moped?, Rad?, Skateboard?, ...)

Mir reicht es ja wenn es ähnlich wie oben erwähntes Measurement-Plugin funktionieren würde, also man wählt eine Relation und erhält die Fläche. Ich wüsste allerdings gerade nicht, wie sich das bewerkstelligen ließe.

OK, schon wissen wir, was du eigentlich wissen möchtest - und ich hab für diesen Fall leider keine Lösung sad

Problem ist, daß in jedem Editor (du benutzt ja josm) die MP-Relationen nicht als ein geschlosses Objekt (hier Fläche) aufgefasst werden, sondern als eine Zusammenstellung mehrere Objekte, die was "Größeres" darstellen. Das ist ja gerade der Sinn von Relationen. Im Editor arbeitest du mit den Rohdaten.

Erst wenn bestimmte Programme wie u.A. osm2pgsql die Rohdaten weiterverarbeiten, werden aus Multipolygonen flächige Objekte - und die haben natürlich auch eine Fläche in z.B. m².

lt;dr: wenn du nur Rohdaten hast, mußt du selber rechnen - wenn du fertige Software einsetzt, kannst du die Größe der Flächen einfach abrufen.

Gruss
walter

Last edited by wambacher (2013-10-27 11:56:42)

Offline

#11 2013-10-27 14:00:27

Netzwolf
Member
Registered: 2008-04-01
Posts: 1,681
Website

Re: Fläche einer Relation berechnen

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?


Fragen zu meinen Posts via Mastodon oder per Twitter-DM.

Offline

#12 2013-10-27 14:32:45

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Fläche einer Relation berechnen

Netzwolf wrote:

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.

Aber aber, wer wird den gleich mit der Keule schmeißen. Das Ganze geht auch 3 Hausnummern kleiner und läuft zur Not auch in einer Virtuellen Maschine. Den Planeten installiert man - mit allen Konsequenzen - nur wenn man wirklich alles braucht. Ein/e Stadt, Landkreis oder Bundesland geht wesentlich schneller und frisst nicht so viele Ressourcen. Und so nebenbei kann man dann auch ganz andere Sachen machen als "nur" die Flächen zu berechnen.

Aber prinzipiell ist der Weg schon richtig - nur nicht soooo breit und soooo lang.

Der nicht mit dem Wolf tanzt.
Walter

Offline

#13 2013-10-27 14:37:22

MKnight
Member
Registered: 2012-08-01
Posts: 2,406

Re: Fläche einer Relation berechnen

wambacher wrote:

Problem ist, daß in jedem Editor (du benutzt ja josm) die MP-Relationen nicht als ein geschlosses Objekt (hier Fläche) aufgefasst werden, sondern als eine Zusammenstellung mehrere Objekte, die was "Größeres" darstellen. Das ist ja gerade der Sinn von Relationen.

Naja, das kann man mit nem leicht schmutzigen Workaround umgehen, indem man die Linien vorübergehend zusammensetzt -> Werte ablesen -> rückgängig


gesammelte Overpass-abfragen zu QA (hauptsächlich Strassenfehler) + verschiedene Stats zu Strassen-eigenschaften

Offline

#14 2013-10-27 19:19:29

EvanE
Member
Registered: 2009-11-30
Posts: 5,716

Re: Fläche einer Relation berechnen

MKnight wrote:
wambacher wrote:

Problem ist, daß in jedem Editor (du benutzt ja josm) die MP-Relationen nicht als ein geschlosses Objekt (hier Fläche) aufgefasst werden, sondern als eine Zusammenstellung mehrere Objekte, die was "Größeres" darstellen. Das ist ja gerade der Sinn von Relationen.

Naja, das kann man mit nem leicht schmutzigen Workaround umgehen, indem man die Linien vorübergehend zusammensetzt -> Werte ablesen -> rückgängig

Ich möchte wambacher bezüglich JOSM widersprechen. Wie selbstverständlich füllt JOSM auch Multipolygone mit der zu den Taggs passenden Farbe (frühere Versionen konnten das noch nicht). Das geht sogar, wenn nur Bruchstücke des MP vorhanden sind (auch das gab es noch nicht in den 3xxx Versionen).

An der Stelle hat das Measurement Plugin noch ein wenig nachzuholen. Aber immerhin, in früheren Versionen konnte es die Flächen von disjunkten Objekten nicht sauber addieren. Mittlerweile kann das Plugin das, es besteht also noch Hoffnung. Wem es wichtig ist, der kann ja den Autor anschreiben oder ein Ticket bei JOSM erstellen.

Aber nicht vergessen, wenn ein MP nicht vollständig geladen ist, kann das Plugin natürlich keinen richtigen Werte für die Länge und Fläche liefern.

Edbert (EvanE)

Offline

#15 2013-10-27 22:52:59

rayquaza
Member
From: DE-BW
Registered: 2012-11-18
Posts: 2,007

Re: Fläche einer Relation berechnen

EvanE wrote:

Wem es wichtig ist, der kann ja den Autor anschreiben oder ein Ticket bei JOSM erstellen.

Letzteres geht übrigens hier mit OSM-Account.

Offline

Board footer

Powered by FluxBB