OpenStreetMap pour Garmin

Le GPS de randonnée eTrex 10 est le modèle d'entrée de gamme chez Garmin: mémoire limitée, écran monochrome (mais du coup l'autonomie est sans doute meilleure). En tout cas l'appareil est tout-à-fait approprié pour du geocaching (exemple d'utilisation pédagogique: voir cette présentation), pour enregistrer un parcours en vélo, ou encore pour se positionner sur le carroyage UTM d'une carte papier.

basemap GarminCarte papier en effet, car même s'il y a un fond de carte mondial dans l'eTrex 10 sa résolution est trop faible en pratique, comme en atteste la copie d'écran ci-contre où la ville de Brest est située à l'intérieur de la rade de Brest! C'est pourquoi la navigation cartographiée est peu utile avec l'eTrex10, sauf à remplacer soi-même la carte du constructeur... Heureusement diverses ressources (comme cette vidéo ou ce post) expliquent comment faire grâce aux données libres OpenStreetMap et au logiciel libre mkgmap. J'ai finalement choisi la procédure suivante:

  1. téléchargement sur Geofabrik d'un extrait OSM régional (par exemple la Bretagne);
  2. installation des paquets mkgmap et mkgmap-splitter d'une distribution Linux (en l'occurrence Ubuntu): sudo apt-get install mkgmap mkgmap-splitter; N.B. Le logiciel ne fonctionne pas uniquement sous Linux ;-)
  3. découpage de la carte .osm (trop grande) en carreaux compatibles avec l'eTrex 10: mkgmap-splitter bretagne-latest.osm.pbf > splitter.log;
  4. choix d'un carreau (facilité par ce script awk: awk -f areas.awk areas.list);
  5. "compilation" du .osm choisi (au format Open Street Map) en .img (format Garmin): mkgmap 63240005.osm.pbf;
  6. copie USB du .img (ici 63240005.img) dans l'eTrex 10, en lieu et place de gmapbmap.img (sauvegarder les gmapbmap.* et autres *.img avant...).

Voici quelques photos d'écran obtenues à différents niveaux de zoom:

4 zooms

L'inconvénient de cette procédure, c'est que le fichier gmapbmap.img "pèse" typiquement 4Mo (presque la moitié de la mémoire d'un eTrex 10) et qu'il faut le changer dès qu'on prévoit de sortir du carreau... Il faudrait donc réduire la densité d'information dans le fichier .img afin de pourvoir installer des carreaux plus grands, ce qui fait justement l'objet de certaines options de mkgmap... à suivre!

Commentaires

Après diverses recherches sur Internet et plusieurs essais infructueux, je recommande la procédure suivante qui est basée sur osmfilter (au lieu des styles de mkgmap).

  1. comme précédemment, on se base ici sur le fichier bretagne-latest.osm.pbf disponbible chez Geofabrik (qui propose les autres régions aussi :-)
  2. installer le paquet osmctools (Ubuntu...)
  3. osmfilter ne lit pas les .pbf: osmconvert bretagne-latest.osm.pbf --out-o5m -o=bretagne-latest.o5m
  4. on ne garde que le trait de côte (indispensable en Bretagne!) et toutes les routes, rues et autres chemins (optimisation: on évite de garder les arrêts de bus...): osmfilter bretagne-latest.o5m --keep="natural=coastline or highway=" --drop-nodes="highway=" --out-o5m -o=bretagne4etrex10.o5m
  5. télécharger cities5000.zip (cela rendra inutile le script areas.awk :-I)
  6. mkgmap-splitter bretagne4etrex10.o5m --output-dir=tmp --mapid=1 --geonames-file=cities5000.zip >splitter.log => seulement 4 carreaux (au lieu de 18 précédemment pour la Bretagne): les carreaux pèsent toujours 4Mo en version .img mais sont plus étendus car moins denses (on n'a retenu que ce qui s'est avéré utile pour du geocaching)
  7. cd tmp; éditer templates.args: ne garder que le carreau utile (commenter ou effacer les autres): les carreaux sont identifiées par un nom de ville grâce à l'option --geonames-file)
  8. mkgmap -c template.args
  9. copier le .img à la place du gmapbmap.img sur le Garmin Etrex 10