© Excellent backgrounds/Shutterstock.com
Java Magazin
Wie lassen sich OSM-Daten zur Weiterverarbeitung aufbereiten?

Geodaten à la Carte

Das OpenStreetMap-Projekt [1] stellt, neben der bekannten Webseite, auch die Rohdaten zur Verfügung. Diese werden von einer großen Gemeinschaft, ähnlich wie bei Wikipedia, zusammengetragen, stammen aber auch teilweise aus anderen freien Quellen. Das Rohdatenformat ist auf geringen Speicherbedarf hin optimiert, eignet sich jedoch nur bedingt zur weiteren Verarbeitung. Im Folgenden wird gezeigt, wie die Daten umgewandelt werden können, um sie für Routenberechnung, Kartenerstellung usw. verwenden zu können.

Oliver Schünemann


OSM-Daten werden im Wesentlichen in drei verschiedenen Formaten bereitgestellt. Das bekannteste ist das OSM-Format [2], ein XML-Dialekt. Daneben gibt es noch das PBF [3] und das O5M-Format [4]. Allen gemeinsam ist der prinzipielle Aufbau der Daten. Sie sind aufgeteilt in Knoten, Wege und Relationen. Die kleinste Einheit bilden die Knoten (Nodes, Listing 1). Diese enthalten die geografische Position eines Punkts in der Landschaft und können, so wie alle anderen Elemente der Karte auch, weitere Eigenschaften besitzen, die als Schlüssel-Wert-Paare abgelegt sind.

Listing 1: Knoten als OSM-XML

Mehrere Knoten zusammen bilden einen Weg (Way, Listing 2). Dieser enthält selbst keinerlei Positionsangaben, sondern referenziert lediglich die Knoten über deren ID.

Listing 2: Weg als OSM-XML

Aus einem Weg können dabei nicht nur Straßen, Pfade, Bahn- und Wasserlinien gebildet werden, sondern es werden auch alle einfachen Flächen von Wegen umrandet. Kompliziertere Objekte werden dagegen als Relation beschrieben (Listing 3). Diese referenzieren wiederum Knoten und Wege, aber auch andere Relationen, um daraus lange Autobahnen, große Waldgebiete und mehr zu bilden.

Listing 3: Relation als OSM-XML

Jede dieser Referenzen hat einen Typ („node“, „way“, „relation“) und eine Rolle. Mehr dazu in [5].

Probleme bei der Verarbeitung

Die Daten könnten so, wie sie im XML abgelegt sind, direkt einer Datenbank entsprungen sein. Die einzelnen Tabellen für Knoten, Wege und Relationen mit ihren Zeigern auf die anderen Tabellen lassen sich deutlich erkennen. Der einfachste Ansatz zur Weiterverarbeitung der Daten wäre also, sie in eine Datenbank zurückzuspielen und anschließend die einzelnen Knoten für die Wege zu finden, um diese z. B. in einer Karte zu zeichnen. Bei aktuell 2,5 Milliarden Knoten in den OSM-Daten und 250 Millionen Wegen braucht es aber s...

Java Magazin
Wie lassen sich OSM-Daten zur Weiterverarbeitung aufbereiten?

Geodaten à la Carte

Das OpenStreetMap-Projekt [1] stellt, neben der bekannten Webseite, auch die Rohdaten zur Verfügung. Diese werden von einer großen Gemeinschaft, ähnlich wie bei Wikipedia, zusammengetragen, stammen aber auch teilweise aus anderen freien Quellen. Das Rohdatenformat ist auf geringen Speicherbedarf hin optimiert, eignet sich jedoch nur bedingt zur weiteren Verarbeitung. Im Folgenden wird gezeigt, wie die Daten umgewandelt werden können, um sie für Routenberechnung, Kartenerstellung usw. verwenden zu können.

Oliver Schünemann


OSM-Daten werden im Wesentlichen in drei verschiedenen Formaten bereitgestellt. Das bekannteste ist das OSM-Format [2], ein XML-Dialekt. Daneben gibt es noch das PBF [3] und das O5M-Format [4]. Allen gemeinsam ist der prinzipielle Aufbau der Daten. Sie sind aufgeteilt in Knoten, Wege und Relationen. Die kleinste Einheit bilden die Knoten (Nodes, Listing 1). Diese enthalten die geografische Position eines Punkts in der Landschaft und können, so wie alle anderen Elemente der Karte auch, weitere Eigenschaften besitzen, die als Schlüssel-Wert-Paare abgelegt sind.

Listing 1: Knoten als OSM-XML

Mehrere Knoten zusammen bilden einen Weg (Way, Listing 2). Dieser enthält selbst keinerlei Positionsangaben, sondern referenziert lediglich die Knoten über deren ID.

Listing 2: Weg als OSM-XML

Aus einem Weg können dabei nicht nur Straßen, Pfade, Bahn- und Wasserlinien gebildet werden, sondern es werden auch alle einfachen Flächen von Wegen umrandet. Kompliziertere Objekte werden dagegen als Relation beschrieben (Listing 3). Diese referenzieren wiederum Knoten und Wege, aber auch andere Relationen, um daraus lange Autobahnen, große Waldgebiete und mehr zu bilden.

Listing 3: Relation als OSM-XML

Jede dieser Referenzen hat einen Typ („node“, „way“, „relation“) und eine Rolle. Mehr dazu in [5].

Probleme bei der Verarbeitung

Die Daten könnten so, wie sie im XML abgelegt sind, direkt einer Datenbank entsprungen sein. Die einzelnen Tabellen für Knoten, Wege und Relationen mit ihren Zeigern auf die anderen Tabellen lassen sich deutlich erkennen. Der einfachste Ansatz zur Weiterverarbeitung der Daten wäre also, sie in eine Datenbank zurückzuspielen und anschließend die einzelnen Knoten für die Wege zu finden, um diese z. B. in einer Karte zu zeichnen. Bei aktuell 2,5 Milliarden Knoten in den OSM-Daten und 250 Millionen Wegen braucht es aber s...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang