Openstreetmap hat mir schon oft in Städten und/oder beim finden von Wegen auf dem Land gute Dienste erwiesen, oft ist OSM aktueller als die meisten anderen kostenfreien Onlineangebote. Allerdings sind OSM-Karten für Wildniswanderungen kaum zu gebrauchen. Um es kurz zu fassen: Es fehlen Höhenlinien, wie sie auf jeder guten topografischen Wanderkarte zu finden sind, aber zum Glück hat die Nasa in den neunziger Jahren ein Projekt zur Elevationsmessung durchgeführt und stellt die Daten unter public Domain zur Verfügung. Mit Hilfe dieser Karten und Openstreetmap lassen sich so Karten erstellen, welche auf dem Handy oder Ausgedruckt als Unterstützung für eine topografische Wanderkarte dienen können.

Ist man ein Anfänger in Sachen Navigation und Kartenkunde, so empfehle ich die Lektüre folgender Fachbücher:

http://www.lehmanns.de/shop/sachbuch-ratgeber/13590801-9783866863132-karte-kompass-gps

http://www.lehmanns.de/shop/reisen/19853769-9783768833141-orientierung-mit-karte-kompass-gps

Ich beschränke mich hier auf die Erstellung von Karten für gpsmid, ein sehr beliebtes routingfähiges Navigationsprogramm für die J2ME-Plattform. Es wandelt die OSM-Karten in ein eigenes Vektorformat um. was neben der Routingfähigkeit auch Platzersparnis bringt.

Grund für diesen Post ist mein neues mobiles Fernfunksprechgerät Samsung B2710 und meine diesjährige sechswöchige Reise durch Skandinavien. Die für dieses Handy erstellten Karten und die Handhabung können natürlich nicht mit einem professionellem Garmin-Gerät mithalten, aber die Karten stehen unter CreativeCommons und das B2710 hat lediglich 100€ (+25€ Ersatzakku und Datenkabel) gekostet. Testberichte und Funktionsvielfalt können in unzähligen Beiträgen im Netz eingesehen werden, daher werde ich mich hier nur mit der Software zur Kartenerstellung (mit Höhenlinien) befassen. Voraussetzung ist ein sicheres Umgehen mit der Kommandozeile. Als Host-System benutze ich ein Debian-GNU/Linux System, aber die Kommandozeilen für Osmosis und srtm2osm können aber auch analog auf anderen Systemen benutzt werden.

Für die folgenden Abläufe habe ich mir eine kleine Toolchain angelegt, ich empfehle die gleichen Versionen der Werkzeuge zu verwenden:

Osmosis (Java):

Kommandozeilenwerkzeug für die Bearbeitung von Karten im Openstreetmap Format. Versionen (0.39 und 0.35!) srtm2osm (.net(mono)):

Werkzeug für die Kommandozeile, welches srtm Daten (.hrt) lesen kann und diese in eine .osm Datei exportiert (Achtung Tool verwendet Api 0.5 (aktuell: 0.6)) osm2gpsmid (Java):

Tool mit GUI, wandelt die OSM-Datei in ein Jar-File für gpsmid um.

Programm zum bearbeiten von OSM-Karten und zum Export in Bitmap und SVG (Druckvorbereitung) Version: Build 1219]

Zu allererst benötigt man eine Openstreetmap im .osm format. Da allerdings der Export von Openstreetmap.org die meisten Downloads größer als 10km² Fläche nicht zulässt und man nicht unbedingt den ganzen Datenbankdump von Openstreetmap laden möchte, existieren unter geofabrik.de auch schon voreditierte Karten für bestimmte Gebiete. Ansonsten ist es möglich Karten über das Webfrontend oder aber per JOSM herunterzuladen.

  1. Karte besorgen!

Ich empfehle allerdings die Karte von geofabrik.de zu besorgen. Man hat die Auswahl ein ganzen Kontinent als OSM-Karte herunterzuladen, einzelne Staaten oder in Deutschland sogar einzelne Karten der Bundesländer. http://download.geofabrik.de/osm/

Nachdem eine lokale Kopie existiert muss die Karte noch dekomprimiert werden (Achtung die Datei ist extrahiert um ein Vielfaches größer: circa Faktor 8 bis 9).

2. Karte mit osmosis Beschneiden

Ist eine Karte von geofabrik.net heruntergeladen, so kann man diese auf den lediglich benötigten Kartenausschnitt zuschneiden. Wenn man nicht die genauen Grenzkoordinaten kennt, so empfehle ich eine visuele Markierung des ungefähr benötigten Bereiches im Export-Webfrontend von OSM um sich so die Grenzkoordinaten zu besorgen (Tip für Fortgeschrittene: OSM-Karten und deren Koordinaten verwenden das Kartendatum WGS84/ETRS89 und geografische Koordinaten, nicht UTM und auch nicht Gauß-Krüger-Geoide). Sind die vier Grenzkoordinaten besorgt, wird nun mit Hilfe des Werkzeuges Osmosis die Karte von Geofabrik zugeschnitten:

./osmosis/osmosis-0.39/bin/osmosis --read-xml geofabrik/finland.osm --bounding-box top="69.25" bottom="68.58" left="26.64" right="27.94" --write-xml ~/akt_karte/Inari-See.osm

3. Prüfen ob SRTM-Daten für Bereich zur Verfügung stehen Weiterführende Informationen zu SRTM-Daten bietet Wikipedia an: http://de.wikipedia.org/wiki/SRTM-Daten

Für unsere Zwecke reicht es zu wissen, dass es sich um Höhendaten für große Teile unserer schönen Kugel handelt. Diese Daten müssen nicht zwangsweise mit extraterrestrischen Mitteln ermittelt werden, im Gegenteil, sie können von schon vorhandenen topografischen Karten stammen von denen die Höheninformationen in das SRTM-Format konvertiert werden.

Es stehen leider nicht für alle Gebiete auf der Erde SRTM-Daten zur Verfügung. In folgenden Dokumenten kann in Erfahrung gebracht werden, ob für die Zielkarte SRTM-Daten von der Nasa zur Verfügung gestellt werden. In der PDF Datei werden auch Angaben zur Genauigkeit auf den verschiedenen Kontinenten gemacht:

(http://dds.cr.usgs.gov/srtm/version2_1/Documentation/Continent_def.gif) (http://dds.cr.usgs.gov/srtm/version2_1/Documentation/SRTM_Topo.pdf)

Für viele andere Gebiete existieren SRTM-Daten vom VIEWFINDERS-Projekt, inbesondere für Island, Skandinavien und Russland.

Abdeckung der SRTM-Daten vom Viewfinders Projekt:

VIWEFINDERS: http://www.viewfinderpanoramas.org/Coverage%20map%20viewfinderpanoramas_org3.htm

Gedownloadet werden die SRTM-Daten des Viewfinders-projekt hier, die NASA-SRTM-Daten werden von dem Werkzeug srtm2osm selbst vom Nasa-Server heruntergeladen:

4. Webserver einrichten und Ordnerstruktur erstellen

(mkdir Australia Eurasia Africa Islands North_America South_America) (Daten Entpacken —> Eurasia (z.B. Eurasia) und zippen “for i in ls -1 ; do zip $i.zip $i  ; done”)

Sollten keine NASA-SRTM-Daten für das Zielgebiet zur Verfügung stehen, so lädt man sich die benötigten .zip Dateien vom Viewfinders-Projekt herunter und richtet sich ein lokal laufenden Webserver ein. Damit srtm2osm auch die korrekten SRTM-Daten findet, muss die gleiche Verzeichnisstruktur wie auf dem NASA-Webserver eingerichtet werden und die Dateien aus den ZIP-Archiven in das richtige Verzeichnis kopiert werden und wieder gezipped werden, nur so kann srtm2osm mit den Daten umgehen.

5.Erstellen einer Karte mit Höhenlinien für bestimmte Grenzkoordinaten

mono strm-nasa-evelation/Srtm2Osm/Srtm2Osm.exe -large -bounds1 68.58 26.64 69.25 27.94 -o ~/akt_karte/Inari-See_srtm_V5.osm -source 'http://localhost/srtm/version2_1/SRTM3/'

6.Daten in Version 6 Konvertieren:

Dazu benötigt: ältere Version von OSMOSIS wegen alter API 0.35!!!!!!! (http://dev.openstreetmap.org/~bretth/osmosis-build/osmosis-bin-0.35.tgz)

./osmosis/osmosis-0.35/bin/osmosis --read-xml-0.5 enableDateParsing=no ~/akt_karte/Inari-See_srtm_V5.osm --migrate --wx ~/akt_karte/Inari-See_srtm_V6.osm

7. Die beiden Daten verschmelzen (wieder mit Version 0.39):

./osmosis/osmosis-0.39/bin/osmosis --rx ~/akt_karte/Inari-See.osm --sort --rx ~/akt_karte/Inari-See_srtm_V6.osm --sort --merge --wx ~/akt_karte/Inari-See_FINAL.osm

8. Style-File für osm2gpsmid bearbeiten:

8.1 Style-File aus der .jar Datei extrahieren: Dazu am besten das ganze Jar-Paket in das aktuelle verzeichnis extrahieren:

jar xf *.jar

8.2 style-file.xml in dem Tag <Way> um folgenden Tag erweitern:

keyW tag = "contour";
Wvalue name ="elevation";
description desc = "Meter;
namekey tag = "ele";
isArea area = "false";
scale scale = "17";
lineColor color = "009C004B"; 
lineStyle dashed = "false"; 
wayWidth width="1"; 
/Wvalue;
/keyW;

8.3 osm2gpsmid über ein neues Startskript starten, auf 64 Bit z.B. damit:

java -Xmx4096m -XX:+UseCompressedOops -jar Osm2GpsMid-0.7.6-map67.jar

8.4 Style-File und finale Karte wählen und ein Midlet daraus erstellen.

8.5 Auf das Handy kopieren und als Karte wählen oder Midlet installieren.

9. Beachte Das ersetzt auf keinen Fall eine aktuelle topografische Karte!


Next post: SSL/TLS improvements on the so called internet

Previous post: Zwischenmeldung Skandinavienreise