Geodatenkonvertierung für Openstreetmap

Wer sich ein wenig näher mit Geodaten befasst stellt recht schnell fest, dass man da mit unglaublichen Mengen an historisch gewachsenem Zeug zu kämpfen hat. Ähnlich grausam ist das eigentlich im EDV Bereich nur noch beiCharacter Encoding. Im Geodatenbereich hat sich jedoch das Gegenstück zu Unicode leider noch nicht in der Breite durchgesetzt. Jedes Land wenn nicht sogar jedes Bundesland kocht da meist sein eigenes Süppchen.

Daten die man von öffentlichen Stellen in Deutschland bekommt sind meist in der Gauß-Krüger-Projektion mit Bessel-Ellipsoid in 3° breiten Meridianstreifen. Für die südlichen Bundesländer sind das GK2 für RLP, GK3 für BW und GK4 für Bayern.

Für OSM brauchen wir die Daten aber im “GPS Format” mit geographischer Länge und Breite bezogen auf WGS84 (epsg:4326). Es stellt sich also die Aufgabe die Daten möglichst genau in diese Formate zu überführen.

Weil OSM ein freies Projekt ist verwenden wir dazu natürlich freie Software!

Ein Kommandozeilenprogramm zur Konvertierung von im Geobereich üblichen Vektorformaten ist das Kommandozeilentool ogr2ogr.

Da die Kommandozeilen ein wenig kryptisch sind veröffentliche ich hier mal die passenden Konvertierungsbefehle für die GK-Zonen, mit denen ich bisher zu tun hatte.

Es geht darum die Aufgabe zu lösen Dateien in GK-Format in eine OSM geeigenete Darstellung (epsg:4326) zu überführen. Dankenswerteweise gibt es dafür eine amtliche Korrekturdatei zum Download. Damit erreicht man Genauigkeiten von etwa einem halben Meter. Für OSM ist das also mehr als ausreichend. Strenggenommen ist die Korrekturdatei zwar für ETRS89 und nicht für WGS84 (Danke Tobias), aber das können wir für die nächsten paar Jahre mal vernachlässigen.

Hier sind die Befehlszeilen die man auf einem Debian GNU/Linux (apt-get install gdal-bin) zur Konvertierung benötigt. Die amtliche Korrekturdatei BETA2007.gsb sollte im aktuellen Pfad liegen.

GK Zone 2 (RLP, NRW):
ogr2ogr -s_srs '+proj=tmerc +lat_0=0 +lon_0=6 +x_0=2500000 +y_0=0 \
+k=1.000000 +ellps=bessel +units=m +nadgrids=./BETA2007.gsb +wktext' \
-t_srs epsg:4326 -f <dateityp> <outfile> <infile>

GK Zone 3 (BW, SHH):
ogr2ogr -s_srs '+proj=tmerc +lat_0=0 +lon_0=9 +x_0=3500000 +y_0=0 \
+k=1.000000 +ellps=bessel +units=m +nadgrids=./BETA2007.gsb +wktext' \
-t_srs epsg:4326 -f <dateityp> <outfile> <infile>

GK Zone 4 (BY):
ogr2ogr -s_srs '+proj=tmerc +lat_0=0 +lon_0=12 +x_0=4500000 +y_0=0 \
+k=1.000000 +ellps=bessel +units=m +nadgrids=./BETA2007.gsb +wktext' \
-t_srs epsg:4326 -f <dateityp> <outfile> <infile>

GK Zone 5 (SN):
ogr2ogr -s_srs '+proj=tmerc +lat_0=0 +lon_0=15 +x_0=5500000 +y_0=0 \
+k=1.000000 +ellps=bessel +units=m +nadgrids=./BETA2007.gsb +wktext' \
-t_srs epsg:4326 -f <dateityp> <outfile> <infile>

Wenn man nach dem gewünschten Dateityp gefragt wird ist das ESRI Shapeformat typischerweise dem Autocad DXF vorzuziehen. Für ersteres gibt es fertige Konvertierungsprogramme ins native OSM Datenformat. Diese sind zwar noch stark verbesserungsfähig, aber dennoch halbwegs brauchbar.

6 Gedanken zu „Geodatenkonvertierung für Openstreetmap“

  1. Hi,
    vielleicht passt meine Frage ja hier:
    ich will Shapes aus Google Maps nach OpenStreetMap konvertieren.
    Bei allem googlen und sonstigem Recherschieren habe ich (da ich auch wenig Ahnung habe) nicht rausbekommen was das hier für Koordinaten sind:
    http://maps.google.de/maps/ms?hl=en&gl=de&ie=UTF8&oe=UTF8&msa=0&msid=110508400785348124740.00046e38ca9b5f20780ce

    da drin die lat_e7:330000000,lng_e7:1246050000 Angaben, die versteh ich nicht…
    Kannst du da vielleicht helfen?
    Vielen Dank,
    robos

  2. 9-Stellig sind eigentlich unüblich. Normal sind 7 Stellen und Nachkomma.

    GK2 für diese Gegend wäre 2505406 5626568 (6.076072,50.774505) das kommt nicht hin. UTM Zone 32 auch nicht. Hast Du links zu den original Shapefiles (ohne google)?

  3. Also, diese “shapes” sind denke ich was google maps spezifisches. Ich habe die nicht erstellt, versuche die halt zu übertragen. Und ich denke die gibts nicht “ohne google”. Die Angaben mit lat_e7 sind, wie ich heute rausgefunden hab, wahrscheinlich nicht das Shape. Ich habe ein Beispiel-Shape bekommen wo zu viele von diesen lat_e7 drin sind – bei nur 3 Punkten:
    http://maps.google.com/maps/ms?hl=en&ie=UTF8&oe=UTF8&msa=0&msid=110508400785348124740.00046fd49f508381922bf
    mal gucken was die Punke sein könnte, war wahrscheinlich auf nem falschen Pfad.
    Schönen Gruss,
    Robos

  4. Shapefiles sind nicht Google spezifisch. Im Gegenteil Shape ist ein Format, das im GIS Bereich weit verbreitet ist. Shapefiles können aber in jedem beliebigen Koordinatenformat vorliegen.

    Sven

  5. Hi,
    habs rausbekommen: mit firebug wars ein Klick und dann hatte ichs.
    Das ist ein eingebettetes svg, also doch “spezielle” shapes. Ich glaube wir haben einfach nur unterschiedliche Vorstellungen was Shapes sind.
    Wenn ich jetzt noch rausbekomm wie ich diese svg-Daten in OSM rendern kann bin ich glücklich.
    Vielen Dank aber nochmal für die Hilfe,
    schönen Gruss
    Robos

  6. Zitat aus Wikipedia:
    “Das Dateiformat Shapefile (oft Shapedaten oder Shapes genannt) ist ein von ESRI ursprünglich für ArcView entwickeltes Format für Geodaten.”

Kommentare sind geschlossen.