Routingfähige OSM-Karte auf Garmin-GPS-Geräten

Als Besitzer von Garmin-Navigations-Geräten kann man davon ein Lied singen: Auf dem Gerät ist nur eine grobe Basiskarte vorinstalliert und kommerzielles Kartenmaterial ist teuer. Zudem sind die gekauften Karten dann auch noch per Freischaltung an ein bzw. zwei bestimmte Geräte gebunden.

Vor kurzem habe ich mir ein neues Gerät geleistet. Die Topo Deutschland kann man für ein zweites Gerät freischalten, dann ist aber auch schon Schluß. Für den Preis einer zusätzlichen Standalone-Lizenz für die City-Navigator-Europe-Karten bekommt man im Auto-Navi-Segment nicht nur die Karte sondern auch noch ein Gerät ;-). Kaufen kommt eigentlich nicht in Frage, trotzdem hätte ich gerne eine routingfähige Karte auf meinem GPSr. Kostenloses und zumindest für Deutschland ziemlich detailiertes Kartenmaterial stellt das OpenStreetMap-Projekt zur Verfügung.

Die Suche im WWW ergab folgendes Ergebnis:

  • Es gibt Programme, mit denen man routingfähige Karten aus den OSM-Daten erstellen kann, diese sind jedoch richtig teuer
  • MKGMAP: Freie Software um aus den OSM-Daten Kartenmaterial für Garmin-Geräte bzw. -Software zu erstellen. Das Tool ist nicht perfekt, wird aber aktiv weiterentwickelt und kann routingfähige Karten erzeugen.
  • TILE-SPLITTER: Erzeugt Kacheln aus den OSM-Daten, die von MKGMAP verarbeitet werden können.
  • Cloudmade: Diese Firma extrahiert aus dem OSM-Planet-File Karten für fast alle Länder der Erde.
  • MapSetToolkit: Programm mit dem man selbsterstellte Karten in MapSource installieren kann.

Bis ich die erste funktionierende Karte erstellt hatte, habe ich sicherlich zwei Wochen herumprobiert. Die Karten die ich momentan erstelle, kann ich sowohl in Garmin-Mapsource einbinden, als auch als gmapsupp.img direkt auf das Gerät laden. Routing funktioniert, allerdings kann man nur nach Städten und nicht nach Adressen suchen. Mit Roadname-POIs gibt es für dieses Problem allerdings einen akzeptablen Workaround. Das Rendern der Karten dauert auf meinem nicht mehr ganz taufrischen PC keine halbe Stunde für Deutschland. Ich verwende hier unter Linux ein kleines Script, unter Windows sollte das Ganze bis auf die Pfade analog funktionieren.

#!/bin/bash

###Define some variables
verzeichnis="~/Documents/maps/osm_germany/"
karte="germany.osm"

### Change to working directory
cd $verzeichnis

###split to tiles
java -Xmx2000M -jar ~/bin/splitter/splitter.jar --max-nodes=800000 $karte

### mkgmap
java -Xmx2000M -jar ~/bin/mkgmap-r899/mkgmap.jar --latin1 --family-id=3965 --product-id=1 --route --net --tdb-v4 --road-name-pois --gmapsupp --description="OSM Deutschland routingfähig" --country-name="GERMANY" --country-abbr="DE" -c template.args

OSM in MapSource

Informationen zu den verwendeten Programmen finden sich im OSM-Wiki.  Das jeweils aktuelle Ergebnis meiner Experimente stelle ich hier als gmapsupp.img-Datei direkt für das GPSr zum Download zur Verfügung, solange der Traffic nicht das Limit überschreitet.

Update: Sorry, leider überschreitet der Traffic neuerdings das Limit, und mir entstehen dadurch Kosten. Deshalb habe ich den Download vorerst von der Seite genommen. Wer einen Mirror zur Verfügung stellen kann, der keiner Traffic-Limitierung unterliegt, darf sich per PM bzw. über die Kommentare melden ;-). Ich würde dann auch die von mir generierte Karte wieder zum Download anbieten.

Alternativen zu meiner Karte:
Germany All in one
Karten von Computerteddy

6 Gedanken zu „Routingfähige OSM-Karte auf Garmin-GPS-Geräten“

  1. Super, danke für den Bericht. Was aus meiner Sicht noch interessant wäre:

    Woher hast Du die Datei „germany.osm“ ?
    Oder, anders formuliert, ich habe mir hier: http://touren.mospace.de/kachel.html schon fertige tiles für mein Wunschgebiet geholt, jetzt gehe ich davon aus, daß ich mir den Punkt „split to tiles“ schenken kann.
    Nur, wie übergebe ich jetzt diese 100te von tiles (bereits im .img Format) an mkgmap? Das dürfte wohl in templates.args stehen, nur, wie muß die Datei aussehen?

    –country-name=“GERMANY“ –country-abbr=“DE“ sind optional, oder? Nur als Frage für länderübergreifende Karten.

    Alternativ wäre natürlich spannend, wie ich mir von einem beliebigen Kartenausschnitt aus OSM eine custom.osm zusammenstellen kann.

  2. Die Karten findest Du hier: http://downloads.cloudmade.com

    mkgmap kann mit .img-Dateien nichts anfangen. Das Programm dient ja gerade dazu, ebendiese aus .osm-Dateien zu erstellen.
    „java -jar mkgmap.jar –help=options“ gibt die Hilfe aus. Allerdings sind einige Optionen nicht dokumentiert. Da hilft nur suchen mittels Google oder Stöbern in der Entwickler-Mailingliste.

    Es gibt Programme mit denen Du Teile aus dem Planet-File von OSM extrahieren kannst, z.B. osmosis. Damit habe ich mich allerdings noch nicht beschäftigt.

  3. Super Tipp! funktioniert einwandfrei. Noch einfacher: Die gepackte OSM Datei (gz, bz oder bz2) kann unverändert an splitter übergeben werden:

    java -Xmx2000M -jar ~/bin/splitter/splitter.jar --max-nodes=800000 land.osm.bz2

    splitter erzeugt daraus gzip-Files die wiederum problemlos von mkgmap weiter verarbeitet werden.

  4. Super Geschichte!

    Wie aktuell ist denn die routingfähige Map?
    Was ich aus dem Büro heraus gesehen habe, ist sie hier in Herne auf jedenfall schon sehr genau!

    Zu groß ist das file ja auch nicht, würde also gern Webspace zur Verfügung stellen – fullspeed…

    Grüße
    Rudi

  5. Hallo Rudi,

    Leider ist die Karte nicht sonderlich aktuell. In letzter Zeit hatte ich einiges um die Ohren, und konnte mich nicht um eine Aktualisierung kümmern. Ich plane eine automatisierte Erstellung/Aktualisierung der Karte z.B. im Wochenrhythmus, und würde auf Dein Angebot zurückkommen, wenn ich Zeit gefunden habe, das zu realisieren.

Kommentar verfassen