Cartes OpenStreetMap randonnée pour montre Garmin
Encore un énième rendu ? ... Oui, pour essayer de maximiser la qualité des données affichées sur les montres Garmin, notamment les Epix ou Epix Pro qui disposent d'un écran AMOLED beaucoup plus défini que les Fenix 5/6/7 et Forerunner 945/955/965
Le meilleur rendu trouvé jusqu'à présent était MapRando amoureusement généré et suivi par Alexis Lecanu, mais le rendu est très minimaliste et les traits des chemins trop fins pour l'Epix.
Suite au travail effectué par la communauté du forum Randonner Léger sur le rendu des cartes OSMAnd nous essayons désormais d'avancer dans la même direction pour le rendu sur les montres Garmin... et les GPS de rando (Etrex, Oregon...) pourront probablement en profiter également.
Face à la complexité et la redondance de certaines tâches j'ai souhaité mettre à disposition les sources intermédiaires, les fichiers de rendu et les cartes finales en téléchargement. Ainsi vous pouvez soit récupérer des cartes prêtes à l'emploi, soit les sources les plus proches du rendu final pour avoir le moins de manipulations à faire pour effectuer votre propre rendu si vous le souhaitez.
Il s'agit d'un travail en cours (notamment sur certaines couleurs pour prendre en compte l'arrivée de l'ombrage du relief sur les Epix Pro/Fenix 7 Pro et en beta sur les Epix/Fenix précédentes), loin d'être terminé, mais vous pouvez déjà accéder à ce qui a été réalisé.
Peut-être que tout finira par être intégré dans le rendu d'Alexis, mais en attendant ça permet de mettre à disposition, notamment des membres de Randonner Léger, des fichiers pratiques pour gagner du temps pour effectuer des tests de rendus.
Oulala, moi je veux juste des cartes
Si tout ce que vous souhaitez c'est télécharger des cartes au format .IMG prêtes à transférer sur votre montre,
c'est par ici que ça se passe.
Préambule compilation
Ci-dessous je présente les opérations sous Windows, mais (dans l'ensemble) on trouve les programmes en version linux également, ce qui peut être pratique pour faire tourner automatiquement sur un serveur et non pas votre ordinateur local
n'hésitez pas également à mettre les commandes dans des scripts au fur et à mesure de votre avancée afin de pouvoir par la suite mettre à jour une carte en une seule commande.
Conversion des courbes au format OSM
Il s'agit de la conversion des fichiers HGT "1 arc seconde" issues de
viewfinderpanoramas.org en mai 2022. Ce sont les meilleures sources disponibles pour l'Europe à l'heure actuelle.
Pour connaitre la zone couverte,
reportez vous à la sourceActuellement seule la France Métropolitaine a été prise en compte. Avec les 9 fichiers K,L,M 30,31,32 vous couvrez l'intégralité "très large" de la France, avec tous les Pyrénées, les Alpes, ... J'ai rajouté L et M 33 pour les Alpes complètes (jusqu'à Vienne/Bratislava)
Les données ont été converties avec la commande suivante (ex pour le dossier M30) :
hgt2osm.exe --HgtPath=./hgt/M30/ --WriteElevationType=false --FakeDistance=-0.5 --MinVerticePoints=3 --MinBoundingbox=0.00016 --DouglasPeucker=0.05 --MinorDistance=10 --OutputOverwrite=true
Note : cette conversion plante sur les fichiers HGT qui ne couvrent que de l'eau (donc aucune valeur > 0). Il faut supprimer le fichier bloquant, déplacer ceux déjà traités et relancer la commande. C'est pénible. Bref n'hésitez pas à récupérer les fichiers que j'ai généré, vous gagnerez beaucoup de temps !
Sous linux vous pouvez utiliser un autre programme, pyhgtmap :
pyhgtmap --step=10 --no-zero-contour --simplifyContoursEpsilon=0 --jobs=16 --gzip=1 *.hgt
Ces fichiers n'évoluent quasiment pas dans le temps (les montagnes ne poussent pas de 10 mètres tous les quelques années :), vous pouvez donc les télécharger une fois pour toute.
K30_osm.zip (2022-05-30 16:12:23 / 1.4 Go)
K31_osm.zip (2022-05-30 14:24:51 / 941 Mo)
K32_osm.zip (2022-06-01 22:51:59 / 541 Mo)
L30_osm.zip (2022-06-01 20:57:25 / 95 Mo)
L31_osm.zip (2022-06-01 22:05:53 / 950 Mo)
L32_osm.zip (2022-06-02 08:25:41 / 2.7 Go)
L33_osm.zip (2022-11-03 18:23:57 / 1.3 Go)
M30_osm.zip (2022-06-02 09:02:48 / 250 Mo)
M31_osm.zip (2022-06-02 10:02:39 / 332 Mo)
M32_osm.zip (2022-06-02 08:09:37 / 726 Mo)
M33_osm.zip (2022-11-03 18:49:03 / 398 Mo)
Styles
Il s'agit du regroupement du style (qui définit quoi afficher à quel niveau de zoom via le picto n°XYZ) + du fichier TYP qui définit à quoi ressemble le picto XYZ (couleur, épaisseur de trait, motif...) qui sera utilisé pour cet affichage.
Ces fichiers sont intimement liés et doivent être appliqués ensemble en même temps sur les pbf d'une carte.
Pour éditer le style, ce sont des fichiers textes, par exemple "lines" s'édite dans n'importe quel éditeur de texte ou de code.
Pour éditer le TYP, utiliser
TYPViewer
epix.zip (2024-09-07 12:48:28 / 32 Ko)
A titre indicatif le rapport entre les niveaux de zoom dans les fichiers de conf vs l'échelle sur la montre :
Niveau de zoom | Sur l'Epix |
17 | 50km 30km |
18 | 20km |
19 | 12 km 8km 5 km |
20 | 3 km 2km |
21 | 1.2 km |
22 | 1.2 km (étrange) 800m |
23 | 500m |
24 | 300m et moins |
On voit bien que l'essentiel du travail se concentre sur le rendu à niveau de zoom 24, avec quelques adaptations pour avoir un rendu cohérent quand on regarde autour de sa position (zooms 22 et 23).
Fichiers PBF de courbes
Il s'agit des courbes de la zone choisie, au format osm.pbf, AVANT application du style. Si vous voulez changer l'aspect et les niveaux de zoom d'apparition des courbes c'est ce fichier qu'il faut télécharger
Le passage des fichiers osm.gz en pbf a été effectué par une commande du style :
java -Xmx32768m -jar ../splitter/splitter.jar --polygon-file=../poly/pyrenees.poly --mapid=61230000 --max-nodes=1600000 --keep-complete=false dossier_des_osm.gz/*.osm.gz
Les paramètres sont à adapter à vos dossiers et votre machine (Xmx32768m c'est pour dire d'utiliser jusqu'à 32 Go de RAM)
Cette commande nécessite l'installation préalable d'un environnement de développement
JAVA (choisissez une version 64 bits).
Splitter provient
de ce site.
On se retrouve avec un paquet de .pbf + un fichier template.args (qu'on renomme courbes.arg) + d'autres fichiers inutiles à supprimer.
Nota : si vous voulez extraire une petite zone, par exemple les Pyrénées, essayez de donner à splitter juste les fichiers correspondant à la zone, donc ceux issus de K30 et K31 par exemple... et non pas les 9 fichiers, vous gagnerez beaucoup de temps de calcul !
Les mapid sont libres, il faut juste qu'ils fassent 8 digit et de préférence laisser au moins les 3 derniers à 0 + il faut un mapid supérieur pour les courbes par rapport aux cartes, sinon les courbes passeront au dessus des chemins dans le rendu final
contours_alpes_osm_pbf.zip (2022-11-04 08:16:58 / 2 Go)
contours_france_plus_osm_pbf.zip (2022-06-02 13:56:18 / 1.9 Go)
contours_K_L_M_30_31_32_osm_pbf.zip (2022-06-02 11:44:46 / 3.3 Go)
contours_pyrenees_osm_pbf.zip (2022-06-09 19:32:16 / 522 Mo)
Fichiers IMG des courbes
Il s'agit de courbes au format IMG Garmin, APRES application du style, servant de base pour un assemblage avec une base de carte. Si le rendu des courbes de niveau vous convient, c'est ce fichier qu'il faut télécharger.
Le passage des fichiers pbf en .img a été effectué par une commande du style :
java -Xmx32768m -jar ../mkgmap/mkgmap.jar -c ../options_courbes.args -c courbes.args
Mkgmap provient
de ce site.
On peut également en profiter pour ajouter des informations d'ombrage du relief (hill shading) en ajoutant les paramètres ci-dessous :
--dem="../contour/hgt/K30,../contour/hgt/K31,../contour/hgt/L30,../contour/hgt/L31" --dem-poly="./poly/pyrenees.poly" --dem-dists=3312,13248,26512,53024 --overview-dem-dist=200000
Les paramètres pour le hill-shading, c'est de fournir une liste de dossiers dans lesquels sont de fichiers HGT d'altitude (vous vous souvenez au début), zippés ou non + un poly de découpe (le même que pour les autres commandes) + des précisions sur quel niveau de zoom entraine quel niveau de précision d'ombrage. Je n'ai pas encore tout compris malgré
la documentation de mkgmap.
Le contenu du fichier "option_courbes.arg" :
max-jobs: 12
style-file=../style/rando
latin1
max-jobs: 12 c'est le nombre de coeurs (logiques) de votre processeur, 12 sur un Intel 6 coeurs + hyperthread par exemple.
contours_alpes_img.zip (2022-11-04 08:06:52 / 549 Mo)
contours_france_plus_img.zip (2022-06-15 22:39:09 / 512 Mo)
contours_pyrenees_img.zip (2022-06-15 22:31:57 / 148 Mo)
Et les cartes dans tout ça ?
Il faut récupérer les cartes les plus récentes sur
GeoFabrik. Dans notres cas pour générer des cartes qui sont sur plusieurs pays en même temps on récupère
europe-latest.osm.pbf (oui ça fait plus de 25 Go !).
Ensuite on extrait la zone qui nous intéresse via le poly, par exemple, lancé depuis un sous-dossier dans lequel j'ai téléchargé le fichier europe-latest.osm.pbf :
java -Xmx32768m -jar ../splitter/splitter.jar --polygon-file=../poly/pyrenees.poly --mapid=51230000 --max-nodes=1000000 --keep-complete=true --route-rel-values=foot,hiking --overlap=0 europe-latest.osm.pbf
Cela génère des .pbf + un fichier template.args (qu'on va renommer carte.args) + d'autres fichiers à supprimer.
Je ne mets pas ces fichiers à disposition car ils évoluent tout le temps, il faut récupérer la carte d'Europe à la source.
Si vous voulez générer des cartes de morceaux d'un pays (Auvergne par exemple), vous pouvez ne télécharger que
le fichier pbf de la France. Pour gagner du temps, essayez de partir du fichier le plus petit incluant la zone qui vous intéresse.
Sur le même principe, vous pouvez télécharger plusieurs pays ou régions puis les assembler (Merci
Bombadyl pour l'info). Pour ça vous aurez besoin du logiciel
OSMConvert.
Exemple d'utilisation (il faut changer le format au passage):
osmconvert andorre.osm.pbf -o=t1.o5m
osmconvert navarre.osm.pbf -o=t2.o5m
osmconvert basque.osm.pbf -o=t3.o5m
osmconvert midipy.osm.pbf -o=t4.o5m
osmconvert roussi.osm.pbf -o=t5.o5m
osmconvert aquitaine.osm.pbf -o=t6.o5m
osmconvert aragon.osm.pbf -o=t7.o5m
osmconvert catalogne.osm.pbf -o=t8.o5m
osmconvert t1.o5m t2.o5m t3.o5m t4.o5m t5.o5m t6.o5m t7.o5m t7.o5m -o=merge_for_pyrenees.o5m
osmconvert merge_for_pyrenees.o5m -o=merge_for_pyrenees.pbf
rm *.o5m
Cela produit un fichier final pbf utilisable pour la création des .img à l'étape suivante. L'avantage est qu'on télécharge et travaille sur des fichiers plus petits, c'est donc plus rapide que de partir de l'Europe entière par exemple. Sur ma carte des Pyrénées par exemple, prendre France + Andorre + Espagne plutôt que l'Europe entière m'a permis de passer de 88 minutes à seulement 42 minutes (14 minutes 30 de génération du fichier merge + 27 minutes 30 de création de la carte). On a divisé le temps de génération par 2 !
Fichiers IMG de la carte
Avant de procéder à un assemblage courbes + carte il faut convertir la carte en appliquant le style au passage.
Cette étape est nécessaire car on n'a pas les mêmes paramètres entre les courbes et la carte.
java -Xmx32768m -jar ../mkgmap/mkgmap.jar -c ../options_rando.args -c ./pyr/carte.args
Le contenu du fichier "options_rando.arg" :
max-jobs: 12
add-boundary-nodes-at-admin-boundaries=10
road-name-pois
add-pois-to-areas
add-pois-to-lines
remove-short-arcs
precomp-sea=../sea.zip
x-check-precomp-sea: 0
style-file=../style/rando
latin1
net
route
road-name-pois
Cela génère la carte en fichiers .img en appliquant au passage le style qui va bien
Là encore je ne mets pas ces fichiers à disposition car ils se périment vite. Il faut repartir des cartes "à jour" à chaque fois.
Assemblage final
On a donc des .img de courbes et des .img de cartes, il est temps de les regrouper :
java -Xmx32768m -jar ../mkgmap/mkgmap.jar --mapname=41230000 --family-id=4123 --description="Pyrenees" -c ../options_rando.args --gmapsupp ../style/rando.typ ../cartes/pyr_img/*.img ../contour/img_pyr/*.img
Cette étape est très rapide, normalement vous devez aboutir à un fichier gmapsupp.img transférable sur votre montre, GPS, ou affichable dans
QmapShack si vous voulez vérifier le résultat avant.
Le mapname / family-id n'a pas grande importance mais doit être différent d'une carte à l'autre qui serait sur la montre.
Pour aller plus loin
Si vous voulez "compiler" régulièrement vos cartes, vu le nombre de commandes, de paramètres, de déplacements ou suppression de fichiers, il va être utile de scripter un peu tout ça.
Regardez ce qu'a fait
Alexis pour MapRando ça vous donnera probablement de bonnes idées. Merci encore à lui pour les échanges ayant permis de créer cette page.
Pour disctuer de ces cartes
rendez-vous sur Randonner-LegerSi vous voulez me contacter pour en savoir plus,
c'est par iciSi vous voulez soutenir mon travail, vous pouvez
faire un don ici