Für alle Mitfahrer der diesjährigen Silvester Skitour 2012/2013 nach L’Alpe d’Huez habe ich
eine Anleitung geschrieben, mit der man eine Skikarte der gesamten Alpen
für seinen Garmin erstellen kann.
Wer keine Zeit oder keine Lust hat die Anleitung zu lesen, der kann
die Anleitung einfach mit dem nachfolgenden Link überspringen und im
Downloadbereich am Ende der Seite die fertige Skikarte herunter laden.
Wer aber wissen will, wie es geht und später eventuell eigene Karten erstellen will,
für den könnte die nachfolgende Anleitung interessant sein.
Die Anleitung erklärt alle notwendigen Schritte und Hintergründe
zur Erstellung eigener Garmin Karten und kann somit einem interessierten PC-Anwender den
Einstieg in die OpenStreetMap Community erleichtern.
Die in der Anleitung beschriebenen Schritte beziehen sich
auf auf Linux Systeme, wer aber erst mal das Prinzip verstanden hat,
kann die Schritte problemlos auf seinem Windows Rechner
nachvollziehen. Alle eingesetzten Programme laufen sowohl unter
Linux als auch unter Windows. Detailfragen zu dieser Anleitung
beantworte ich gerne unter der am Ende der Seite angegebene
Kontakt Adresse.
Abbildung 1
Wie komme ich nachher zur nächsten Piste? (Benoit Audige CC BY-SA 2.0 fr)
Die Grundlagen
Die notwendigen Daten für eine eigene Skikarte sind in der zentralen OpenStreetMap Datenbank
bereits für viele Skigebiete weltweit vorhanden. Leider können diese Daten nicht
direkt in einem Garmin Gerät angezeigt werden, das "Warum?" soll im nachfolgenden Absatz
erläutert werden.
Ein spezielles Mapping Projekt mit dem Namen "Piste Maps" der Openstreetmap Community
kümmert sich um die Erweiterung und Pflege der Daten für Skifahrer in der
Openstreetmap Datenbank.
Die Teilnehmer des Projektes organisieren sich über eine
Wiki Seite
innerhalb der OSM Community. Hier werden alle notwendigen Elemente
wie Pisten, Lifte, Liftpfeiler und deren mögliche Darstellung in einer Karte definiert.
Es geht der Gruppe darum, international festzulegen welche Attribute eine
Geokoordinate haben muss, wenn es sich beispielsweise um einen Liftpfeiler oder eine Piste handelt.
Erfasste Objekte können später mit den von der Projektgruppe erstellten Definitionen,
den sogenannten Tags versehen und in der riesigen OSM-Datenbank gespeichert werden.
Ich habe mich an dem Projekt während unserer Skitour 2009/2010 beteiligt, als ich die Pisten in
Valmorel erfasst und in die
Datenbank eingetragen
habe. Mittlerweile (Nov. 2012) sind die Definitionen des Projektes OpenPisteMap als
eigene Sektion in das OpenStreetMap Tagging System eingegangen, allerdings noch mit
dem Status "Proposed" also als
Vorschlag.
Da aber in der OSM Datenbank bereits über
10.000 Objekte mit diesen Tags gespeichert sind
ist davon auszugehen, dass diese Vorschläge bald offiziell übernommen werden.
Abbildung 2
OSM Kartenauschnitt des Skigebiets L’Alpe d’Huez im standard Mapnik Renderer.
Es gibt also bereits mehr als 10.000 Pistmap-Objekte in der Datenbank, aber warum kann man diese
in der offiziellen OSM Karte
www.openstreetmap.org
nicht sehen?
Die Antwort ist einfach: Weil sie für den Normalnutzer der Karten nicht von Interesse sind.
Aus dem riesigen OSM-Datenbestand werden je nach Bedarf und Interessenlage verschiedene Karten erstellt,
man nennt den Vorgang rendern. Die bekannten Standardkarten von OSM werden von Renderer mit den
wohlkingenden Namen Mapnik und Osmarender erstellt.
Daneben gibt es aber eine unüberschaubare Anzahl weiterer Renderer,
die aus den OSM-Rohdaten themenbezogene Karten erstellen.
Es gibt Karten für den ÖPNV, Seekarten, Fahrradkarten, Wanderer und Reiterkarten und so weiter und so weiter.
Je nach Thema werden dabei bestimmte Daten weggelassen oder hervorgehoben.
Neben der Auswahl der Daten muss ein Renderer noch entscheiden, für welches Endgerät er die
Daten aufbereiten soll. Im Normalfall werden die Daten für die Darstellung im Webbrowser aufbereitet,
genau das macht beispielsweise Mapnik in Abbildung 2. Ein Endgerät wie der Garmin Edge unterscheidet sich aber
prinzipiell von einem Webbrowser, die Daten müssen in einer vollkommen anderen Art
aufbereitet werden. Halten wir also fest: Es gibt zwei wichtige Kriterien für die Erstellung
von Karten aus den OSM-Rohdaten. Einmal kommt es auf den Verwendungszwecke an und zum Anderen
auf die Art des Endgeräts mit dem die Daten angezeigt werden sollen.
Zur Darstellung der OpenPisteMap Daten im Webbrowser existiert bereits ein
Renderer, der im Internet unter dem Namen
www.openpistemap.org verfügbar ist. Der Renderer
leidet seit einiger Zeit allerdings unter Finnanzierungs- und in der Folge unter Administrationsproblemen,
die Karten wurden teilweise seit Monaten nicht mehr aktualisiert. Für den Renderer gibt
es wiederum eine eigene
Wiki Seite,
was für viele Leute sehr verwirrend ist, weil sie diese mit der eigentlichen "Piste Maps"
Wiki-Projektseite verwechseln.
Man muss aber nur wissen, dass sich dieses Wiki-Projekt
ausschließlich um die Weiterentwicklung des OpenPisteMap Renderers kümmert und
daher nur indirekt etwas mit der Erfassung und Definition der PisteMap Daten zu tun hat.
Es geht hier ausschließlich um die Programmierung und
Administration des Servers, der zur Darstellung der OpenPisteMap Daten im Internet dient.
Abbildung 3
OSM Kartenauschnitt des Skigebiets L’Alpe d’Huez im OpenPisteMap Renderer.
Die beiden Abbildungen 2 und 3 zeigen sehr schön die oben erläuterten Zusammenhänge.
Abbildung 2 zeigt die Standardkarte von OSM, dort sind lediglich die Lifte eingezeichnet, während
in Abbildung 3 auch die unterschiedlichen Skipisten hervorgehoben sind. In der Standarddarstellung
sind Lifte erkennbar, weil diese ganzjährig im Landschaftsbild vorhanden sind und daher für
die Allgemeinheit von Interesse sind.
In Abbildung 3 wurde neben den Pisten auch die Höhenlinien der Berge
durch Schattierungen sichtbar gemacht, ein Verfahren das hillshading genannt wird.
Von diesen Höhenlinien abgesehen sind die zugrunde liegenden Rohdaten beider Karten identisch.
Die Rohdaten zu den oben gezeigten
Kartenausschnitten sind als Datei
alpe-huez.osm verfügbar.
Die Datei ist gerade mal 700 KB groß und kann mit einem einfachen
Texteditor oder direkt im Browser angezeigt werden.
Abbildung 4
Die Export Funktion von OpenStreetMap.
Der vorliegende Ausschnitt aus
den OSM-Datenbestand hat mir während der Entwicklung der Anleitung und den Tests der
Garmin Skikarte als Referenzdatensatz gedient.
Diesen Datensatz habe ich wie in Abbildung 4 gezeigt mit Hilfe der "Export"
Funktion direkt aus der OpenStreetMap Datenbank runtergeladen.
Die Export-Funktion ist frei verfügbar, man braucht also keinen gültigen OSM-Account.
Achtung! Das funktioniert nur bei kleineren Kartenausschnitten, größere Regionen
können darüber nicht geladen werden.
Fazit:
Wenn wir OpenPisteMap Daten im Garmin darstellen wollen, können wir weder die
OSM Rohdaten noch die Karten von openpistemap.org verwenden.
Wir müssen quasi einen eigenen "Renderer" verwenden, der die Rohdaten
speziell für Garmin Geräte aufbereitet. Ein solcher "Renderer" ist das Programm
mkgmap.
Nachfolgend wird jetzt erklärt, wie man mit Hilfe von mkgmap aus den OSM-Rohdaten
eine erste Skikarte für den Garmin erstellt.
Die ersten Experimente
Bevor die erste Karte erzeugt werden kann, müssen ein paar Vorbereitungen getroffen werden.
Als Erstes erzeuge ich ein Arbeitsverzeichnis mit dem Namen pistemap. Dort hinein lade
ich das Programm mkgmap und die Testdaten von L’Alpe d’Huez. Mkgmap kann als
tar.gz
Datei runter geladen und entpackt werden, die Testdaten wie oben beschrieben als Export aus der
OpenStreetMap Datenbank oder als Datei
alpe-huez.osm
direkt von dieser Webseite.
peter@linux:~/pistemap$ wget http://www.mkgmap.org.uk/download/mkgmap-r2423.tar.gz
peter@linux:~/pistemap$ tar xvpfz mkgmap-r2423.tar.gz
peter@linux:~/pistemap$ wget http://www.wasserstoffe.de/pistemap/alpe-huez.osm
Mit dieser Minimalversion kann jetzt bereits eine erste Testkarte erzeugt werden.
Der notwendige Aufruf von mkgmap sieht wie folgt aus:
peter@linux:~/pistemap$ java -jar mkgmap-r2423/mkgmap.jar --gmapsupp alpe-huez.osm
Mkgmap wird hier mit der Option --gmpasuppp aufgerufen, womit nach
Programmende im aktuellen Verzeichnis eine Datei mit dem Namen gmapsupp.img
erzeugt wird. Nach Installation der gerade erstellten, ersten
gmpasupp.img.01
auf meinem Garmin nüvi sieht das Ergebnis wie folgt aus.
Abbildung 5
Erster Versuch im Skigebiet L’Alpe d’Huez mit dem Garmin nüvi 1930.
In dem Bild fallen auf Anhieb die Grenzen des geladenen OSM Datenbestands auf.
Außerhalb des geladenen OSM-Datenbestands wird im nüvi nur eine braune Fläche
angezeigt.
Innerhalb des Datenbereichs sieht man bereits Wiesen, Straßen, Wege, Seen, Flüsse
und Bäche. Wenn man weiter reinzoomt kann man sogar einzelne Gebäude
und weitere Details erkennen.
Die gleiche Karte sieht im Garmin Edge 705 sehr ähnlich aus.
Abbildung 6
Erster Versuch im Skigebiet L’Alpe d’Huez mit dem Garmin Edge 705.
Die Bereiche außerhalb des Datenbestands werden im Edge schraffiert dargestellt,
Straßen, Feldwege und Wanderwege sind unterschiedlich hervorgehoben, was für den
Einsatz des Geräts auf dem Fahrrad auch sehr sinnvoll ist.
Man kann anhand der beiden Karten sehr gut erkennen,
dass jedes Gerät die vorhandenen Kartendaten unterschiedlich darstellt.
Was offensichtlich bei beiden Gerätedarstellungen fehlt, sind alle Details rund um
das Thema Ski, obwohl in den Rohdaten enthalten werden sie nicht angezeigt.
Das diese tatsächlich bereits in den Daten vorhanden sind ,kann jeder selbst überprüfen,
in dem er die
Rohdaten
in den Browser lädt und beispielsweise nach dem Wort "piste" sucht.
Abbildung 7
OSM Rohdaten, Pistenelement der schwarzen Piste "Les Balcons" im Gebiet L’Alpe d’Huez.
Die in Abbildung 7 gezeigten Rohdaten beziehen sich auf einen Teilabschnitt der
schwarzen Piste mit dem Namen "Les Balcons".
Die Piste führt von der Gondelstation "Clocher de Macle" runter zum Ende des Sesselliftes "Lievre Blanc".
Erfasst wurde die Piste von einem Benutzer mit dem OSM-Account Plop76, der Pistenabschnitt wird
über sechs Knoten referenziert, d.h. sechs Geokoordinaten bilden die Linie des Pistenabschnitts.
Die zugehörigen Geokoordinaten der sechs Knoten befinden sich am Anfang der OSM-Datei.
Die Daten sind also vorhanden, aber warum werden sie nicht angezeigt? Die Antwort ist einfach:
Das Garmin Gerät kennt sie nicht! Es weiß nicht, mit welchen grafischen Elementen
es eine Piste darstellen soll.
Das Gerät hat intern eingespeichert, wie es beispielsweise ein Linienelement vom
Typ "Landstraße" anzeigen soll, für das Element Skipiste fehlt dem Gerät jedoch
diese Information. Genau diese Lücke wird über das Konzept der Styles und Types
gefüllt, das im nächsten Abschnitt erläutert wird.
Styles und Types
Wenn wir Elemente darstellen wollen, die ein Garmin Gerät nicht kennt, so
müssen wir auf das Konzept der Styles und Types zurückgreifen. Starten wir mit Styles.
Mit Styles können beliebige Elemente der OSM-Daten auf Elemente der Garmin
Geräte umgebogen werden. Man könnte beispielsweise alle Skipisten auf Straßen
abbilden, oder wie es in einigen anderen Projekten tatsächlich gemacht wird, auf
Eisenbahnstrecken. Somit könnte man die Pisten im ersten Schritt zumindest schon mal
sichtbar machen. Allerdings könnte man die Pisten dann nicht mehr von
echten Straßen oder Schienen unterscheiden und sie
würden alle in derselben Farbe dargestellt. Ob es sich um rote, blaue oder schwarze
Pisten handelt, könnten wir nicht mehr sehen.
Spätestens bei den Liften gerät das Konzept vollständig
an seine Grenzen. Eine Liftspur und ein Liftmast kann mit keinem Standardelement der
Garmingeräte sinnvoll dargestellt werden. Hier helfen die Type-Dateien weiter. Innerhalb
einer solchen Datei kann man die grafische Darstellung eines Elements unabhängig
vom Garmin Gerät definieren.
Types erweitern also quasi den von Garmin vorgegebenen Satz an Grafikelementen eines Gerätes.
Hierzu ein Beispiel aus einem Stylefile.
aerialway=chair_lift | aerialway=drag_lift | aerialway=gondola | aerialway=cable_car [0x38 resolution 24]
Diese Zeile im Style-File für Linenelemente hat folgende Bedeutung:
Alle OSM-Element die etwas mit Liften zu tun haben, werden auf das Garmin Element
0x38 gemappt und sie sollen ab einer Zoomstufe größer oder gleich 24 sichtbar werden.
Jetzt kommt die korrespondierende Definition im Type-File zum Einsatz.
Im Type-File wird das Element 0x38 wie folgt definiert.
Abbildung 8
Element 0x38 dargestellt im online Editior ati.land.cz
Mit Hilfe dieser beiden Informationen wird ein Lift im Garmin ab Zoomstufe 24
durch eine schwarze Linie mit schwarzen, runden Punkten dargestellt.
Zoomlevel 24
ist übrigens die maximale Zoomstufe, die man erreichen kann, die
niedrigste ist theoretisch 1. Bei der Stufe 12 hat man schon so weit rausgezoomt, dass bei
den meisten Garmin Geräten keine sinnvollen Details mehr erkennbar sind.
Die vollständige Neuentwicklung von eigenen Style- und Type-Dateien finde ich sehr aufwendig,
es braucht viel Zeit und Erfahrung. Nicht alle Garmin Geräte unterstützen den
vollständigen Umfang an Type-Elementen, in meinem nüvi wird das oben
definierten Elemente 0x38 beispielsweise nicht angezeigt. Man muss also wissen, welche
Elemente von Garmin in den Standardkarten verwendet werden und zunächst nur
diese nach seinen Wünschen anpassen. Anschließend kann man neue
Elemente hinzufügen und schrittweise versuchen die Type-Elemente zu
erweitern. Da das sehr zeitaufwendig ist, habe ich mich einfach an bestehenden
Designs orientiert und diese nach meinen Vorstellungen angepasst.
Besonders gut gefällt mir das Kartendesign der
AIO-Karten
von
Christoph.
Die von Christoph entwickelten Styles und Types sind frei verfügbar und können hier
runtergeladen
werden.
Für die Skikarte benötigen wir von den zahlreichen AIO-Definitionen
lediglich das Verzeichnis basemap-style/
sowie die Datei basemap.TYP. Das Verzeichnis basemap-style und die TYP-Datei
werden einfach in das Verzeichnis ~/pistemap gespeichert, die Dateien
liegen als ZIP-Archive in meinem
Experimentierkasten.
Mit Hilfe des basemap-Styles und des basemap-Types kann nun eine weit
detaillierte Karte erstellt werden, der zugehörige mkgmap Aufruf sieht wie folgt aus:
peter@linux:~/pistemap$ java -jar mkgmap-r2423/mkgmap.jar --style-file=basemap_style/ --family-id=4 --product-id=45 --gmapsupp basemap.TYP alpe-huez.osm
Mit der Option --style-files=basemap-style/ wird das Verzeichnis angegeben,
in dem die Style-Dateien zu finden sind.
Die Optionen --family-id=4 --product-id=45 beziehen sich auf Identifier in der basemap.TYP Datei.
Garmin unterstützt mehrere Typefiles in einer einzigen gmapsupp-Datei. Über die ID's kann entschieden werden,
welche Daten mit welchem Typefile dargestellt werden sollen.
Christoph hat der basemap.TYP Datei die Kennung 4/45 gegeben,
damit kann er in der AIO-Karte zwischen verschiedenen Layer wie Adressen und Maxspeed unterscheiden.
In meiner Pistenkarte verwende ich später nur einen Layer, daher ist diese
Unterscheidung nicht nötig. Ich kann die Default Einstellungen von mkgmap verwenden, was den Aufruf
von mkgmap deutlich übersichtlicher gestaltet. Die TYP-Datei wird beim Aufruf von
mkgmap als zusätzliche Input-Datei neben den OSM-Daten mitgegeben.
Abbildung 9
Zweite Karte im Edge 705 mit AIO-Basemap Style und Type
Das Ergebnis sieht vielversprechend aus, die entstandene zweite Karte liegt ebenfalls
im
Experimentierkasten
zum Download bereit. Die Lifte sind bereits eingezeichnet und auch POI's und sonstige
Details sind erkennbar. Die Pisten fehlen allerdings noch und eigentlich sollte
die gesamte Landschaft winterlich weiß aussehen und nicht gelb und grün.
Es gibt als offensichtlich noch ein wenig
Anpassungsbedarf, bevor wir eine wirklich brauchbare Pistenkarte erhalten.
Styles und Types für eine Pistenkarte anpassen
Als Erstes ein paar Überlegungen, was die Pistenkarte alles können sollte und wie sie aussehen sollte.
- Wie oben bereits angedeutet, sollten alle Bodenflächen, auf denen sich Skifahrer bewegen können, weiß sein.
Als Skifahrer ist es mir zunächst mal egal, ob es sich um Acker, Wiese, Weide, Ödland oder Felsen handelt,
im Skigebiet sind diese Flächen hoffentlich durch eine dicke Schneeschicht bedeckt und eine
Unterscheidung ist nicht nötig.
-
Hervorzuheben sind dagegen
Waldgebiete und dichtes Buschland, Sumpf und Wasserflächen, dort ist für Skifahrer in der Regel
kein Durchkommen, also müssen diese Flächen entsprechend auffällig gekennzeichnet werden.
-
Skifahrer sind eigentlich nur bei Tageslicht unterwegs, eine separate Nachtdarstellung
der Karte mit eigenen Farben ist nicht nötig.
-
Routing ist auf der Karte aus folgenden Überlegungen nicht sinnvoll.
- Ich habe keine Ahnung, ob eine Piste überhaupt geöffnet ist.
- Ich weiss nicht, ob der Lift am Ende der Piste läuft.
- Ich habe keine Ahnung, ob der Skifahrer den Schwierigkeitsgrad der Piste bewältigen kann.
-
Es sollten möglichst viele POI's erkennbar und deutlich unterscheidbar sein. Für Skifahrer
besonders interessant sind Einkehrmöglichkeiten, Toiletten und Rettungsposten bzw.
Erste Hilfe Stationen der Bergwacht.
-
Bei den Liften möchte ich gerne wissen, ob es sich um Gondeln, Sessellifte oder Schlepper
handelt, wenn möglich sogar, welche Kapazität der Lift hat.
Mit diesen Überlegungen habe ich mich als erstens an die Anpassung des Styles gemacht.
Das basemap_style/ Verzeichnis der AIO-Karten habe ich in pistemap.STYLE/ umbenannt
und in den Bereichen der Linien und Punkte die folgenden Ergänzungen vorgenommen.
Punkte:
# Skiing
aerialway=chair_lift & mkgmap:line2poitype=mid [0x7301 resolution 24]
aerialway=drag_lift & mkgmap:line2poitype=mid [0x7302 resolution 24]
aerialway=gondola & mkgmap:line2poitype=mid [0x7303 resolution 24]
aerialway=cable_car & mkgmap:line2poitype=mid [0x7304 resolution 24]
Linien:
# Ski
piste:type=downhill & piste:difficulty=novice [0x3a resolution 22]
piste:type=downhill & piste:difficulty=easy [0x3b resolution 22]
piste:type=downhill & piste:difficulty=intermediate [0x3c resolution 22]
piste:type=downhill & piste:difficulty=advanced [0x3d resolution 22]
piste:type=downhill & piste:difficulty=expert [0x3e resolution 22]
piste:type=downhill & piste:difficulty=freeride [0x3f resolution 22]
Danach habe ich mich an die Anpassung der Type Datei gemacht. Die basemap.TYP Datei
der AIO-Karten habe ich kopiert und in pistemap.TYP umbenannt, anschließend habe ich
die einzelnen Elemente im online Editor
ati.land.cz
nach meinen Vorstellungen angepasst.
Abbildung 10
Die Linienelemente 0x3b und 0x3c, blaue und rote Pisten im Online Editor
ati.land.cz
Um wirklich auf allen Kartenbereichen einen weißen Hintergrund zu erhalten, habe ich
im Type-File das Element 0x4b (Background (coverage)) in der Darstellungsreihenfolge 1
mit der Farbe #FFFFFF hinzugefügt. Ansonsten habe ich in der Type-Datei die Farben der
Polygone für Wald, Wiese, Acker, Park und Naturschutzregionen angepasst.
Dann kommen natürlich noch die Darstellungen der neuen Linienelemente 0x7301 - 0x7304
und der Punktelemente 0x3a - 0x3f hinzu. Die aerialway-Punktelemente existieren noch
nicht in den OSM-Rohdaten, sie werden erst mit dem Aufruf von mkgmap über die Optionen
add-pois-to-areas und add-pois-to-lines erzeugt.
Die Optionen sorgen dafür, dass an allen Flächen und Linien zusätzliche Punktelemente erzeugt werden,
die dieselben Attribute wie die Ursprungselemente erhalten. Mit Hilfe dieser Punktelemente
wird in der Mitte der Liftspur ein entsprechendes Symbol erzeugt. Die
Ergebnisse der Type-Anpassungen können im oben benannten online Editor angesehen werden,
die fertige Type-Datei liegt im
Experimentierkasten
zum Download bereit. Daraus kann mit dem leicht modifizierten Aufruf von mkgmap die erste
wirkliche Pistenkarte erzeugt werden.
peter@linux:~/pistemap$ java -jar mkgmap-r2423/mkgmap.jar --style-file=pistemap.STYLE/ --add-pois-to-areas --add-pois-to-lines --gmapsupp pistemap.TYP alpe-huez.osm
Das Ergebnis sieht schon ganz anschaulich aus.
Abbildung 11
Dritte und fertige Pistenkarte im Edge 705 mit eigenem Pistemap Style und Type.
Die OSM Rohdaten für die ganzen Alpen laden
Für die endgültige Karten benötigen wir die OSM-Rohdaten für die ganzen Alpen. Über
die Export-Funktion von OpenStreetMap ist es leider nicht möglich größere Datenmengen
zu laden, die Export-Funktion ist begrenzt, um den OSM-Server nicht unnötig zu belasten.
Die Beschaffung größerer Datenmengen, ganzer Regionen, Länder oder sogar
der ganzen Welt erfolgt daher über die separaten Download Servern
Cloudmade
oder
Geofabrik.
Für unsere Skikarte bietet sich die ganze
Alpenregion an.
Der komprimierte Datenbestand der Alpen ist aktuell (Nov. 2012) ca. 1,6 GB
groß, eine Größe die ich noch gut runter laden und entpackt auf meinem
alten Linux Rechner bearbeiten kann.
Die Datei mit der Endung .bz2 speicher ich in dem ~/pistemap Verzeichnis.
peter@linux:~/pistemap$ wget http://download.geofabrik.de/openstreetmap/europe/alps.osm.bz2
Anschließend wird die Datei mit einem Standard Packprogramm wie bunzip2 entpackt.
peter@linux:~/pistemap$ bunzip2 alps.osm.bz2
Achtung! Jetzt ist die Datei bereits auf eine Größe von 22 GigaByte explodiert.
Es ist also unbedingt erforderlich, das euer Dateisystem Dateigrößen jenseits der magischen
4 GigaByte Grenze unterstützt.
Die Rohdaten in appetitliche Häppchen zerteilen
Die Datei alps.osm ist für eine Verarbeitung an einem Stück zu groß und wird daher im ersten
Verarbeitungsschritt in kleinere Häppchen aufgeteilt. Dazu dient das Programm
splitter.
Splitter wird wie mkgmap zunächst in das Verzeichnis ~/pistemap/ geladen und anschließend
entpackt.
peter@linux:~/pistemap$ wget http://www.mkgmap.org.uk/download/splitter-r264.tar.gz
peter@linux:~/pistemap$ tar xvpfz splitter-r264.tar.gz
Anschließend kann die 22 GByte große Datei automatisch in kleinere Kacheln
zerlegt werden.
peter@linux:~/pistemap$ java -Xmx2048m -jar splitter-r264/splitter.jar --max-nodes=900000 alps.osm
Auf meinem alten Pentium Dual Core mit 2.80GHz hat das Zerteilen 2 Stunden und 40 Minuten gedauert.
Im Verzeichnis ~/pistemap/ sind über 170 Dateien im PBF-Format (Protocolbuffer Binary Format, einer
schnellen und platzsparenden XML-Alternative) mit der Endung .pbf entstanden. Diese werden
im nächsten Schritt mit mkgmap weiter verarbeitet.
Zusammenbau einer kompletten Karte
Der Zusammenbau zu einer Gesamtkarte mit mkgmap erfolgt in zwei Schritten. Zunächst werden die Kacheln
einzeln in das Garmin img-Format umgewandelt, anschließend werden die entstandenen Einzelkarten
zusammen mit der Type-Datei zu einer Gesamtkarte zusammengesetzt. Die Umwandlung in .img erfolgt
mit Hilfe des folgenden mkgmap Aufrufs.
peter@linux:~/pistemap$ java -Xmx1024m -jar ../mkgmap-r2423/mkgmap.jar --style-file=pistemap.STYLE/ --add-pois-to-areas --add-pois-to-lines *.pbf
Die Bearbeitung hat auf meinem alten Pentium Dual Core mit 2.80GHz gerade mal 50 Min gedauert.
Im Verzeichnis ~/pistemap liegen nun neben den .pbf-Dateien dieselbe Anzahl Dateien mit der Endung .img.
Diese werden nun zu einer Gesamtkarte zusammen geklebt.
peter@linux:~/pistemap$ java -Xmx1024m -jar ../mkgmap-r2423/mkgmap.jar --gmapsupp pistemap.TYP 6*.img
Die fertige gmapsupp.img Datei muss nur noch auf eine Micro-SD-Karte in das Verzeichnis /garmin
gespeichert werden und ist damit fertig zum Gebrauch.
Abbildung 12
Die Telemarkfraktion auf unserer Skitour 2012/2013, Fotograf: Nils Dauber (CC BY-NC-SA)
Fazit
Ich konnte mit der Anleitung hoffentlich vermitteln, dass der Bau einer eigenen Karte
für Garmin kein Hexenwerk ist. Wer einmal das Grundprinzip verstanden hat, kann sich mit relativ
wenig Aufwand eigene Karten nach seinem Geschmack erstellen. Die Hauptarbeit übernimmt am Ende
ein handelsüblicher alter PC, der je nach Leistung schon mal ein paar Stunden durchlaufen muss.
Für mich steht fest, dass die Erstellung eigener Karten für jedermann auch
ohne tiefe Kenntnisse in der
Geoinformationsverarbeitung
möglich ist. Dementsprechend kann ich es auch nicht nachvollziehen, wieso es immer noch Anbieter gibt,
die für die Erstellung derartiger Karten aus frei verfügbaren OSM-Daten Geld verlangen und ihr
Know-how wie einen Schatz hüten. Diese Zeiten sollten hoffentlich bald vorbei sein.
Die Erwartungen an den praktischen Einsatz derartiger Skikarten muss ich dagegen ein wenig dämpfen.
Mit einer Karte in der Größe von 3cm x 4cm kann man sich nicht im Gelände orientieren, geschweige
denn Touren planen. Das ist selbst mit einer Pistenkarte aus Papier in der Größe DIN A3 schon schwierig,
mit einer elektronischen Karte halte ich das für unmöglich.
Hilfreich und sinnvoll ist die Karte aber in Kombination mit einer Papierkarte zur Bestimmung
der aktuellen Piste oder des Ortes.
Ich brauchte bei unseren diesjährigen Skitouren nur kurz auf den Garmin zu schauen und konnte
sagen, auf welcher Piste ich mich momentan befinde oder wie ich am schnellsten zur nächsten Piste zurück komme.
Darüber hinaus ist die Karte natürlich für aktive OSM-Mapper interessant.
Mit der Karte werden fehlende Elemente im Alpinen Skibereich überhaupt erst sichtbar.
Experimentierkasten
(alle notwendigen Daten zum Nachvollziehen der Anleitung)
- alpe-huez.osm, die OSM Testdaten von L’Alpe d’Huez
- gmpasupp.img.01, die erste Garmin Testkarte ohne Styles und Types
- mkgmap-r2423.tar.gz, mkgmap in der Version von Dezember 2012
- basemap_style.zip, Style Dateien der AIO-Basiskarte
- basemap.TYP.zip, Type Datei der AIO-Basiskarte
- gmapsupp.img.02, zweite Garmin Testkarte mit AIO-Basemap Style und Type
- splitter-r264.tar.gz, splitter in der Version von Dezember 2012
- gmapsupp.img.03, dritte Garmin Testkarte eigenem Pistemap Style und Type
Meine fertigen Pistenkarten, Styles und Types
(hier liegen die Dateien in der letzten Version)
- pistemap.TYP.zip.2013.01.06,
meine Pistemap Type Datei, Januar 2013
- pistemap.STYLE.zip.2013.01.06,
meine Pistemap Style Dateien, Januar 2013
- gmapsupp.img.alps.2013.02.10
Pistenkarte der gesamten Alpen, Download Dropbox, ca. 500 MByte
- gmapsupp.img.alps.pistemap.noroute.2013.02.10
Pistenkarte der gesamten Alpen, Download Amazon E2C Cloud, ca. 500 MByte
Weiterführende Links
Allgemeine Einführung in die Erstellung von Garmin Karten aus OSM Daten:
http://wiki.openstreetmap.org/wiki/Mkgmap/help/How_to_create_a_map
Eine sehr gute und verständliche Anleitung zur Erstellung einer Fahrradkarte für Garmin:
http://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/Cycle_map
Ein Anbieter, der für Garmin Skikarten Geld verlangt:
http://Skidea.com
Stand: Februar 2013