Navigation

Automatisiertes Erstellen einer Karte für Garmin Geräte aus GPX Daten

 

Warum überhaupt der Aufwand:

Oft werden mit diversen Programmen die Tracks gesplittet und hochgeladen, die Nachteile sind jedoch dass der Trackspeicher schnell voll ist und somit die Tracks oft ausgetauscht werden müssen. Und nach Murphy hat man doch mal wieder die falschen Tracks auf dem Gerät. Für großen Touren wie z.B. der Jakobsweg ist man chancenlos. Oder wenn man, wie ich, seine Lieblingstouren immer am Start haben will oder sich seine eigene Karte von den Feld- und Waldwegen der Umgebung erstellt.
Deshalb habe Ich meine Karten mit den Programmen cgpsmapedit und cgpsmapper erstellt. Wobei als Datenbasis für die Karten die GPS Daten im GPX Format von MapSource gespeichert wurden. Diese Tracks wurden manuel Importiert, in Polygone umgewandelt, Attribute vergeben und in eine Datei im sogenannten Polisch Format exportiert. Der Rest bis zur fertigen Karte konnte über Batch Scripte automatisiert werden.
Da es jedoch immer die gleiche stupide Arbeit ist die Daten zu Importieren und zu Bearbeiten reifte der Plan ein kleines Programm zu schreiben. Da GPX eine XML basierte Datei und die Datei im Polisch Format eine ASCII Textdatei ist wurde eben mal schnell das Programm gpx2mp geschrieben. Dieses leistet mir nun gute Dienste da nach dem Speichern der Track Daten in einer GPX Datei nur noch eine Batch Datei abgearbeitet werden muss und ist die Karte fertig. Diese kann nun mit MapsSource und somit auch auf dem GPS Gerät verwendet werden. So erstelle ich mir zukuzesssive meine eigenen Karten, Stück für Stück kommt nacheinender ein neuer gefahrener Track zur GPX Datei und somit zu meiner Karte hinzu.

Kurzanleitung gpx2mp

Für das Programm gpx2mp wird eine Template Datei, eine Mapping Datei sowie die erwähnte Batch Datei benötigt. Welche Informationen in der Template bzw. Mapping Datei stehen finden Sie weiter unten bei der Beschriebung wie die Karte manuell erstellt wird.
Das Programm wurde auf die schnelle in der Programmiersprache PHP "zusammengeklopft", d.h. für die Ausführung muss ein PHP Interpreter auf dem Computer installiert sein. Ausserdem müssen die beiden schon erwähnten Programme gpsmapedit und cgpsmapper installiert und die Pfadangaben in der Batchdatei angepasst werden. Wenn jemand das Programm verwendet und eventuell sogar noch erweitert würde ich mich über eine Rückmeldung freuen.
Für die Verwendung muss ausser der Batch Datei noch die Template Datei(n) und Mapper Datei angepasst werden. Jede MapSoure Karte hat Ihren eigenen 4-stelligen Productcode, dieser wird in der Mapper Datei angegeben und die Beschreibung der Karte. Für eine Mapsoure Karte können mehrere Teilkarten verwendet werden, diese werden in der [Files] Sektion angegeben. Die Teilkarten haben eine 8-stellige ID, die in der jeweiligen Template Datei angegeben wird. Die ID ist ausserdem der Dateiname der mittels der Batchdatei vom gpx2mp Programm erzeugten Karten mit der Endung .mp im Polisch Format. Ich benenne die Karten einfachheitshalber folgendermaßen, z.B.:
Productcode=1234, Teilkarte1: ID=12340001, Teilkarte2: ID=12340002 usw.
Nachdem Ausführen der Batchdatei und wenn alles erfolgreich erstellt wurde, muss die erstellte Registry Datei (.reg) editiert werden, damit die Karte Registriert und somit von Mapsource verwendet wird. Hinter dem Eintrag ...Product\ muss der Productcode eingetragen und nachfolgend die richtigen Pfade zu den erstellten Dateien angepasst werden. Danach die Einträge der Registry mit einem Doppelclick auf die Datei hinzufügen. Sollte MapSoure nicht mehr starten (Fehlermeldung und Absturz) wurde beim Editieren ein Fehler gemacht. Falls nichts mehr geht, mit Start|Ausführen -> regedit den Registryeditor starten, den Eintrag
[HKEY_LOCAL_MACHINE\SOFTWARE\Garmin\MapSource\Products\1234]
suchen und löschen. Dann läuft wenigstens MapSource wieder, wenn auch ohne die eigene Karte.
Sollte noch etwas unklar sein, dann einmal weiter unten lesen, email an mich, oder zu einem späteren Zeitpunkt hier nochmals vorbeischauen.

Download vom Programm gpx2mp, den Template und Batch Dateien.

 

Nochmals kurz zusammengefasst:

 

Mitschrift meiner verschiedenen Schritte zum Erzeugen einer Garmin Karte

Hier ist meine leicht bereinigte Mitschrift meiner Vorgehensweise eine Karte zu erzeugen aufgeführt. Ausführlichere Informationen finden Sie genügend im Internet, unter anderem auch auf der Homepage der verwendeten Programme cgpsmapper bzw. cgpsmapedit.

GPX Daten vorbereiten - Mapsource
Die Tracks können z.B. mit dem Programm Mapsource bearbeitet bzw. bereinigt werden.
Karten editieren bzw. aus der GPX Datei erstellen - gpsmapedit

Die Karten werden im polisch Format .mp abgespeichert. Dies ist eine einfache Text Datei, welche auch direkt mit einem Texteditor gelesen und verändert werden kann. Dies kann dazu verwendet werden einfachn und schnell mit Hilfe eines Templates eine Karte zu erzeugen. Bzw. es kann auch schnell ein gemachter Fehler direkt mit einem Texteditor in der Datei korrigiert werden.

Hinweise zu den Einstellungen:
Es muss für jede Karte eine eindeutige ID mit 8 Ziffern vergeben werden. Die ersten 4 Ziffern sind bei mir immer gleich, die letzen 4 Ziffern identifizieren die Karte z.B. 0001-0012, wenn für das Kartenset 12 einzelne Karten verwendet werden. Die Karte muss unter dem Namen ID.mp also zum Beispiel mit dem Namen 12340001.mp abgespeichert werden.
Es können mehrere Levels definiert werden, diese werden verwendet um zu definieren ab welcher Auflösung auf dem GPS Display die Elemente eingeblendet werden. Im Beispiel sind es 2 Ebenen wobei die höchste, also hier Level1, immer leer sein muss. Deshalb können die Elemente nur dem Level0 zugeordnet werden.
Die Karte wird mit einem transparenten Hintergrund erstellt, d.h. eine vorhandene aktivierte City Navigator oder Topo Karte ist sichtbar und die eigene Karte mit den Tracks wird darauf abgebildet.

Im nachfolgenden Beispiel sind meine Standardeinstellungen abgebildet:
Einstellungen editieren: FILE|Map Properties

* Header:
  * Typeset             Garmin
  * ID                  12340001 
  * Name                Trackname
  * Copyright           Josef Hahn-Dambacher 2008, ....
  * Elevation Units     Meters
  * Code Page           1250
  * Coding Schema       European(single-byte)
* Levels:
  *                     Level0=24, Zoom0=0
  *                     Level1=20, Zoom1=1
* cGPSMapper:
  * TRE size            1000
  * RGN limit           127
  * TRE margin          0.00
  * Map is transparent  Y
  * Preprocessing       Generalization + intersection

Datei mit der ID als Dateiname speichern, hier: 12340001.mp

Diese Datei kann nun schon fast als Template verwendet werden, d.h. nur die ID und der Name muß für eine neue Karte geändert werden. Damit eine .mp Datei geöffnet werden kann muss sich jedoch noch mindesten ein Objekt auf der Karte befinden. Bei mir ist dies ein POI von meinem Wohnort, somit habe ich bei neuen Karten auch gleich einen Bezugspunkt. Dieser kann für die Weiterverarbeitung und Kartenerstellung natürlich wieder gelöscht werden.

Zum Einfügen dieses POIs auf der Karte, oder natürlich auch danach die eigentlichen Tracks und POIs gehen sie folgendermaßen vor:
Garmindaten erzeugen - cGPSMapper

Die Konfigurationsdatei z.B. 1234mapper.txt mit einem Texteditor anlegen

[Map]
FileName=MeineKarte
MapVersion=100
ProductCode=1234
Color=32
Levels=2
Level0=24
Level1=20
Zoom0=0
Zoom1=1
MapsourceName=Meine Karte
MapSetName=Meine Karte
CDSetName=Meine Karte
Copy1=Josef Hahn-Dambacher
[End-Map]

[Files]
img=12340001.img
[END-Files]

Batchdatei für den einfachen Aufruf z.B. CreateMapset_Batch.bat anlegen

C:\Programm\cGPSmapper\cGPSmapper pv 1234mapper.txt
pause

 

Schritte wenn eine Karte in gpsmapedit verändert wird

 

Schritte wenn eine neue zusätzliche Karte mit gpsmapedit angelegt wird