Ce billet est sous licence Art Libre 1.3, mauvaise illustration comprise.

Carte OSM sur un Garmin eTrex Les GPS Garmin (comme par exemple le eTrex Legend HCx que possède Gulliver) utilisent un format de carte propriétaire. Mais il est néanmoins possible de charger une carte générée à partir des données d'Open Street Map alias OSM (donc libre !) sur le Garmin.

À la louche, la création d'une telle carte se fait en deux étapes : découper les données de france.osm en plusieurs morceaux grâce au programme libre splitter puis générer par mkgmap (libre aussi) la carte au format Garmin à partir de ces morceaux.

En premier lieu, on crée la structure de répertoires pour stocker les données générées :

 $ mkdir splitted-osm && mkdir garmin-maps

splitted-osm/ contiendra les morceaux de données OSM de la France et garmin-maps/ contiendra la carte générée au format Garmin.

On récupère les données OSM de la France[1] :

 $ wget http://download.geofabrik.de/osm/europe/france.osm.bz2

On découpe ce gros fichiers france.osm en plusieurs fichiers plus petits en utilisant le programme libre splitter :

 $ wget http://www.mkgmap.org.uk/splitter/splitter.jar
 $ cd splitted-osm/
 $ java -Xmx2G -jar ../splitter.jar ../france.osm.bz2
 $ cd ..

L'option -Xmx2G permet d'utiliser une taille de pile plus important (2 Go) pour la machine virtuelle Java. Vous pouvez essayer avec une taille moins importante (-Xmx1G ou -Xmx512m) et passer à une taille supérieure si vous avez une exception java.lang.OutOfMemoryError: Java heap space.

On récupère ensuite la dernière version de mkgmap et on l'utilise pour créer la carte au format Garmin :

 $ wget http://www.mkgmap.org.uk/snapshots/mkgmap-r1051.tar.gz
 $ tar zxf mkgmap-r1051.tar.gz
 $ cd garmin-maps/
 $ java -Xmx2G -jar ../mkgmap-r1051/mkgmap.jar --gmapsupp --latin1 --net ../splitted-osm/*.osm.gz

Les options utilisées :

  • --gmapsupp : on génère le fichier gmapsupp.img qui résume tous les morceaux de carte générés ;
  • --latin1 : encodage des caractères au format Latin1 pour pouvoir afficher les accents ;
  • --net : on génère une carte routable qui permette au GPS d'indiquer une route[2].

Et voilà ! Il ne reste plus qu'à transférer toutes les données du répertoire garmin-maps/ (63240001.img, gmapsupp.img, ...) dans le répertoire Garmin/ (à créer si nécessaire) du GPS Garmin monté on USB Mass Storage ou sur sa carte mémoire micro-SD mise dans un lecteur.

Mais si vous ne voulez pas vous fatiguer, des cartes toutes faites sont disponibles ici : http://fredericbonifas.free.fr/osm/....

Liens utiles utilisés pour écrire ce billet :

Dernière minute : on m'a soufflé à l'oreille que GroundTruth est un autre programme intéressant pour générer des cartes Garmin. Je suis preneur de retours. :-)

Notes

[1] Ne pas utiliser les données d'hexagone.openstreetmap.fr qui sont invalides !

[2] Mise à jour 2009-06-29 : j'ai testé et ça marche.