Sonntag, 25. Dezember 2011

Garmin-Karten aus OpenStreetMap-Daten erstellen

Die folgende Beschreibung ist als Einstieg gedacht, um einfache Garmin-Karten aus OSM-Daten zu erstellen. Die Karten können hilfreich sein, um auf einem etTrex 10 die Basemap zu ersetzen oder sie können auf älteren Garmin-GPS eingesetzt werden, die nur einen begrenzten Kartenspeicher zur Verfügung haben.

Als Alternative zu den selbst erstellten Karten kann man diesen Online-Dienst ausprobieren, der fertige Kacheln im Garmin-Format bereitstellt.

Man benötigt die aktuelle Java-Version auf dem PC sowie das kostenlose Java-Programm Mkgmap. Wenn man sich nicht sicher ist, ob Java bereits installiert ist, kann man es hier online testen.

Am Besten legt man sich ein separates Verzeichnis an, z.B. \OSM, in das man Mkgmap sowie weitere Dateien kopiert.

Variante 1
Auf www.openstreetmap.org einen Kartenausschnitt wählen und dann über der Karte den Reiter "Export" wählen. In der Export-Übersicht wählt man "OpenStreetMap-XML-Daten". Mit dem Button "Export" wird der Vorgang gestartet, der einen Augenblick dauern kann. Die Daten werden als Datei "map.osm" zum Download bereitgestellt. Diese Datei speichert oder kopiert man in das zuvor angelegte Verzeichnis \OSM.



Enthält der gewählte Bereich zu viele Daten, erscheint entweder im Export-Fenster oder im Browser-Fenster eine Fehlermeldung: "You requested too many nodes (limit is 50000). Either request a smaller area, or use planet.osm."

In diesem Fall zoomt man in das Gebiet hinein, um den Kartenausschnitt zu verkleinern.Soweit erforderlich, kann man auch mehrere osm-Dateien herunterladen und in eine Garmin-Karte umwandeln.

Als letzten Schritt legt  man sich noch eine Batch-Datei an. Die Batch-Datei kann einen beliebigen Namen haben, aber muss auf "*.bat" enden. Ich nenne sie einfach "osm2garmin.bat". Die Batch-Datei bekommt folgenden Inhalt, der in einer Zeile stehen muss:

java -jar mkgmap.jar --mapname=88888888 --description=OSM-TEMP  --gmapsupp map.osm

Um die Batch-Datei anzulegen, einfach den blauen Text kopieren, in einen Texteditor (Notepad) einfügen und als Textdatei speichern. Wichtig ist, dass der Dateiname am Ende nicht ".txt" sondern "*.bat" benannt wird.

Jetzt kann man mit einem Doppelklick auf "osm2garmin.bat" den Prozess starten. Es werden folgende Dateien erzeugt:
  • 88888888.img
  • gmapsupp.img
Als Beschreibung im GPS-Gerät wird für die Dateien die Bezeichnung "OSM-Temp" verwendet. Wenn man andere Namen haben möchte, muss man die entsprechende Einträge in der Batch-Datei ändern.

Sollen mehrere Karten erzeugt werden, muss man die img-Dateien umbenennen, oder in ein anderes Verzeichnis verschieben, da sie beim nächsten Aufruf von "osm2garmin.bat" ohne Nachfrage überschrieben werden.


Variante 2
Hierzu benötigt man zusätzlich den kostenlosen OSM-Editor "JOSM".

In JOSM kann man einen Kartenausschnitt zum Download definieren in dem man den Download-Pfeil (s. Grafik) anklick und im Fenster, das sich dann öffnet, einen Bereich mit der linken Maustaste markieren kann. Mit der rechten Maustaste verschiebt man den Ausschnitt.

Download von OSM-Daten

In JOSM den Downlaodbereich markieren
Hier kann eine Fehlermeldung erscheinen, wenn der Ausschnitt zu viele Daten enthält.  Dann sollte man den Ausschnitt verringern. Nachdem man den ersten Datensatz vom OSM-Server geladen hat, kann man weitere Daten laden, in dem man den Ausschnitt verschiebt.



Falls man Kartenmaterial entlang eines Tracks benötigt, kann man eine gpx-Datei in JOSM öffnen. Sollte der Track nicht vollständig angezeigt werden, mit dem Mausrad oder den Tasten "+" bzw. "-" zoomen und anschließend den grünen Downloadpfeil (s. oben) klicken. Sollte eine Fehlermeldung zur Datenmenge auftreten, verringert man den Ausschnitt, lädt die Daten herunter und kann dann weitere Daten laden, in dem man den Ausschnitt verschiebt.

JOSM mit Anzeige von OSM-Daten

Wenn alle Daten in JOSM geladen sind, speichert man sie unter dem Namen "map.osm" im Verzeichnis \OSM, das Mkgmap enthält.

Dann kan man mit der oben beschriebenen Batch-Datei "osm2garmin.bat" die Garmin-Karten erzeugen.

Bei JOSM sollte man unbedingt darauf achten, keine Daten auf den OSM-Server zu laden, wenn man mit JOSM bzw. der OSM-Bearbeitung keine Erfahrung hat.


Update 14.01.2012
Im Artikel OSM-Daten mit Maperitive laden habe ich eine weitere Download-Möglichkeit beschrieben, die man bei größeren Gebieten bevorzugen sollte, da es nicht zu o.a. Fehlermeldungen komt.

Kommentare:

Anonym hat gesagt…

... für das eTrex 10 ist die Datenmenge einfach zu groß; z.b. Büsum mit ein wenig Umland - ca. 7 x 7 km - bringt schon 3,1 MB.

Tom@NOeGS hat gesagt…

Also ich komme für den Bereich Büsum - Wesselburen - A23/B5 auf ca. 160 kB für die img-Datei.
Kannst dich ja per E-Mail melden.

Anonym hat gesagt…

... die Map OSM hat 3,06 MB; allerdings muss ich zugegeben, dass ich die Map nicht weiter konvertiert habe.
Ich werde wohl nach mal die Bat anwenden müssen; so hat mich die Größe abgeschreckt.

Anonym hat gesagt…

... letztendlich sind 67 KB dabei rausgekommen, aber .... mir gefällt der Aufwand nicht. Zuerst wird die Größe des Kartenausschnitts angemeckert, dann schlägt nochmals die 50.000er Datengrenze zu.
Für das eTrex 10 ist das Verfahren nicht ideal, um die Basemap zu ersetzen.