Skip to content
This repository has been archived by the owner on Jan 7, 2019. It is now read-only.

OpenStreetMap Datenimport

marians edited this page Apr 9, 2013 · 19 revisions

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.

Zusammenfassung

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.

  1. Zuerst werden alle Daten verworfen, die außerhalb der Stadtgrenzen Kölns liegen.
  2. 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.
  3. 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:

Voraussetzungen

Ablauf

Stadtgrenze als Datei ablegen

# 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

Aktuelle OSM-Daten herunter laden

# 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 filtern

# 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

Import

python osm-import.py koeln-nur-strassen.osm