-
Notifications
You must be signed in to change notification settings - Fork 9
OpenStreetMap Datenimport
ACHTUNG: Diese Seite beschreibt Funktionen, wie sie vor Version 2 in Gebrauch waren. Sie sollte demnächst aktualisiert werden, sobald Version 2 fertig ist.
Offenes Köln greift auf bestimmte Daten des OpenStreetMap (OSM) Projekts zurück. Diese werden in die Datenbank von Offenes Köln importiert. Hier wird beschrieben, wie der Import funktioniert.
Für Offenes Köln werden alle Straßen des Kölner Stadtgebiets benötigt. Zu jeder Straße gehören in OSM Punkte mit Geo-Koordinaten, im OSM-Jargon "nodes" genannt. Die nodes werden in den OSM-Daten durch Verbindungen, die "ways" genannt werden, zusammen gehalten. Eine Straße in OSM besteht aus einem oder mehreren solcher ways. Diese ways tragen auch die Namen der Straßen.
Die OSM-Daten enthalten viele nodes, die nicht zu Straßen gehören. Für eine möglichst effiziente Suche nach Straßen und deren Punkten ist es daher nötig, die OSM-Daten so weit zu reduzieren, dass nur die tatsächlich benötigten Daten übrig bleiben.
Die Reduktion der Daten passiert in mehreren Schritten.
- Zuerst werden alle Daten verworfen, die außerhalb der Stadtgrenzen Kölns liegen.
- Danach werden die übrig bleibenden Daten gefiltert, so dass nur ways übrig bleiben, die Straßen, Plätze und Wege abbilden, mit den dazu gehörenden nodes. Hierbei werden auch weitere nicht benötigte Informationen wie Version und Bearbeiter verworfen.
- Im dritten Schritt werden die übrig gebliebenen OSM-Daten in eine für die Datenbankabfragen optimierte Struktur umgewandelt. Hierbei werden noch mal ein paar Daten verworfen, nämlich z.B. Straßen ohne Namen.
Angewandt werden die so importierten Daten bislang in den beiden folgenden API-Methoden:
- multipoligon.py aus dem python-osm (Python-Modul)
- osmosis (Java tool)
- osmfilter (Java tool)
- imposm (Python-Modul)
- osm-import.py Script
- Die geo_* Tabellen müssen in der Datenbank vorhanden sein.
# Die Kölner Stadt- bzw. Stadtkreisgrenze hat die relation-ID 62578.
# Siehe http://www.openstreetmap.org/browse/relation/62578
multipolygon.py -r 62578 -m koeln-kreisgrenze.poly
# Neue Datei herunterladen (falls vorhanden)
wget -N http://download.geofabrik.de/openstreetmap/europe/germany/nordrhein-westfalen/koeln-regbez.osm.bz2
bunzip2 --keep koeln-regbez.osm.bz2
# Daten einschraenken auf Stadt- bzw. Kreisgrenze
osmosis --read-xml file="koeln-regbez.osm" \
--bounding-polygon file="koeln-kreisgrenze.poly" \
--write-xml file="koeln.osm"
# große, entpackte osm-Datei wieder löschen
rm koeln-regbez.osm
# Eingeschraenkte Koeln-Datei filtern auf Strassen
osmfilter koeln.osm \
--keep="highway=primary =secondary =tertiary =residential =unclassified =road =living-street =pedestrian" \
--drop-author --drop-version > koeln-nur-strassen.osm
python osm-import.py koeln-nur-strassen.osm