FR:User:Petrovsk/Mkgmap styles
Mkgmap crée des cartes Garmin en convertissant les éléments de carte d'OpenStreetMap en éléments de carte Garmin. Cette conversion s'effectue selon une table de correspondance décrite par les styles de mkgmap.
Je désigne par éléments de carte les points, lignes et polygones figurant les points d'intérêt, les routes, limites et utilisations du terrain, bâtiments...
Les éléments Garmin
Garmin et OpenStreetMap n'utilisent évidemment pas la même nomenclature pour les éléments de carte. La version OSM se trouve ici tandis que l'équivalent Garmin peut être trouvé dans le fichier resources/garmin_feature_list.csv de votre installation de mkgmap, ou bien sur le wiki OSM. On y trouve par exemple qu'une autoroute est décrite comme une Major Highway et représentée par le code 0x01. Le rôle de mkgmap est de faire correspondre les tags OSM avec ces codes hexadécimaux par l'intermédiaire des styles. Avant de nous intéresser aux styles, nous devons nous pencher sur la gestion des éléments de carte dans les cartes Garmin.
Résolution et niveaux
- La résolution (resolution) est le niveau de zoom auquel la carte est affichée. C'est une valeur comprise entre 1 et 24, indépendante de l'appareil ou logiciel affichant la carte.
- Le niveau (level) est le niveau de détail affiché par la carte, échelonné de 0 à 16.
Ainsi, si les autoroutes apparaissent à faible zoom, il faut zoomer davantage (monter dans les résolutions) pour faire apparaitre les routes moins importantes dans les niveaux suivants. Dans chaque style, le fichier options définit la correspondance entre niveaux et résolutions, de la manière suivante pour le style par défaut (default) :
levels = 0:24, 1:22, 2:20, 3:18, 4:16
Routage
Pour permettre aux algorithmes de routage de choisir un itinéraire, les routes sont accompagnées de classes (road_class) et de vitesses de trafic (road_speed).
- La classe est un nombre de 0 à 4, jaugeant la facilité de circulation.
Class | Used as |
---|---|
4 | Major HW/Ramp |
3 | Principal HW |
2 | Arterial St / Other HW |
1 | Roundabout / Collector |
0 | Residential Street / Unpaved road / Trail |
- Les vitesses de trafic permettent le calcul du temps estimé de trajet et de choisir le trajet le plus rapide. Les vitesses retenues par Garmin sont les suivantes :
road_speed | highest speed |
---|---|
7 | No speed limit |
6 | 70 mph / 110 kmh |
5 | 60 mph / 90 kmh |
4 | 50 mph / 80 kmh |
3 | 35 mph / 60 kmh |
2 | 25 mph / 40 kmh |
1 | 15 mph / 20 kmh |
0 | 3 mph / 5 kmh |
Les styles
Les styles sont l'ensemble de règles permettant la conversion des éléments de carte et tags OSM en éléments Garmin. Le style en lui-même est constitué d'un dossier situé dans le dossier resources/styles de mkgmap comprenant divers fichiers. Les fichiers lines, points, polygons et relations définissent les équivalences des éléments correspondants, le fichier info décrit le style lui-même, options regroupe les réglages des niveaux et les langues à afficher par exemple.
Le style par défaut (default) reproduit la progressivité d'importance des routes alors que le style noname met en avant les routes n'ayant pas de nom, rejetant les routes nommées à un niveau inférieur.
La définition complète d'une route dans une carte Garmin comprend le code du type de route, son ordre d'importance, sa vitesse de trafic et le niveau à partir duquel elle apparaît sur la carte :
highway=primary [0x03 road_class=3 road_speed=4 resolution 19]
Il en est de même pour les éléments de carte ponctuels :
amenity=post_office [0x2f05 resolution 20]
Ainsi que les polygones :
landuse=forest [0x50 resolution 18]
La liste complète se trouve sur le wiki OSM, avec des pages sur la personnalisation des styles et les règles de style.
Utilisation d'un style
Par défaut, mkgmap utilise le style default se trouvant dans le dossier mkgmap-r*/resources/styles.
Pour en utiliser un autre présent dans le dossier des styles, comme noname, invoquer mkgmap avec l'option --style=name. Par exemple :
java -jar mkgmap.jar --style=noname data.osm
Il est aussi possible d'utiliser des styles externes, qui ont l'avantage de ne pas risquer d'être effacés lors de la mise à jour de mkgmap. Il faut alors préciser le chemin absolu du dossier du style, ou bien le chemin relatif par rapport au répertoire de travail actuel avec l'option --style-file=file. Le style default sera utilisé, à moins d'utiliser l'option --style=name.
Pour utiliser le style bicycle dans le dossier ~/OSM/styles :
java -jar mkgmap.jar --style-file=~/OSM/styles --style=bicycle data.osm