OpenStreetMap pour les cyclistes

ou comment améliorer ses calculs d’itinéraire

Si vous avez ne serait-ce qu’une seule fois insulté de tout votre cœur [insérer ici le nom de votre application d’itinéraires préférée] pour vous avoir emmené·e dans un pierrier avec votre vélo de route, votre gage est de lire cet article jusqu’à la fin 😉

Qui ne s’est jamais retrouvé·e à galérer sur une piste caillouteuse à souhait en suivant son GPS ? C’est sûrement une des galères universelles de tout·e cycliste s’éloignant de ses routes, ou voyageant en-dehors des itinéraires balisés. Quand ça nous arrive, un premier réflexe est souvent d’en vouloir au calculateur d’itinéraires qu’on a utilisé : « Mais pourquoi Komoot me fait passer par là ??? ». Ce à quoi les autres répondent en chœur : « Bah il faut utiliser OpenRunner/Strava/GarminConnect… [je vous fais pas la liste], c’est bien mieux !! »

Alors, peut-être…mais sûrement pas vraiment non plus. Restez avec moi, on reprend la base et je vous explique tout ça, en plus de vous donner les outils pour améliorer le système !

Comment un itinéraire se calcule ?

Pour comprendre l’origine de nos galères sur le terrain, il faut déjà comprendre l’origine des itinéraires, souvent sous format GPX, qu’on met dans nos dispositifs GNSS (GPS n’est qu’une des constellations de satellites disponibles) et smartphones. Évidemment je ne parlerai pas ici des tracés qu’on récupère depuis l’activité d’autres cyclistes, par exemple depuis des profils Strava, Komoot, ou sur des sites comme UtagawaVTT ou Visorando. Si vous avez eu un problème avec l’un des itinéraires, envoyez un message à la personne qui l’a mis en ligne, laissez un commentaire et roulez jeunesse !

Tous les logiciels (qu’ils soient installés sur un ordinateur, une application mobile ou sur un site internet) utilisent le même principe : utiliser un réseau de voies et lui appliquer un algorithme (c’est le terme informatique pour recette de cuisine !) pour déterminer un itinéraire d’un point A à un point B. C’est la base de la base, ils le font tous. Les termes peuvent varier (le réseau est en termes techniques un graphe routier, les voies peuvent être appelées tronçons ou ways), les options également (points d’étapes, profils d’activité, etc.), mais les fondations sont identiques.

Pour calculer cet itinéraire, l’option la plus commune et facile à proposer est celle du chemin le plus court. D’autres options peuvent exister, comme le temps de trajet le plus court, ou bien un profil voiture, en évitant les péages ou pas, un profil piéton, cycliste sur route, etc. La granularité est infinie et dépend du bon vouloir des équipes de développement de ces outils.

Concrètement, chaque option vient ajouter des coûts au calcul, c’est-à-dire qu’un coût différent est attribué à certaines voies afin de les écarter ou les favoriser dans le résultat final. Si on revient à notre cas le plus simple, le chemin le plus court sans autre critère, chaque voie a un coût équivalent, un poids identique dans le calcul algorithmique. Il suffit donc à l’algorithme de proposer à l’utilisateur/trice le trajet qu’il aura trouvé dont la longueur totale est la plus faible. Simple, basique.

Ça se complique quand on intègre d’autres critères dans le tas, et c’est bien ce qui nous intéresse, puisqu’en temps que cycliste on souhaite notamment éviter les autoroutes, histoire de vivre un peu plus longtemps. Chaque nouveau critère va changer l’équilibre des poids pour chaque voie, afin de déterminer quel serait le meilleur compromis entre tous les critères choisis. Le terme « compromis » est important, car il faut comprendre qu’il ne peut exister de meilleur itinéraire dans l’absolu dès qu’on quitte le seul calcul du chemin le plus court.

Pour comprendre cela, prenons un autre calcul qui semble simple à première vue : le calcul du trajet le plus rapide. Pour cela, il faut déjà déterminer une vitesse moyenne pour le type de pratique choisi (piéton, voiture, vélo…), cette vitesse devant ensuite être influencée par les caractéristiques des voies utilisées par le trajet. Les exemples les plus évidents sont les limitations de vitesse pour la voiture : il faut prendre en compte les limitations de chaque voie pour en déduire un temps de trajet total. Plutôt simple jusqu’ici, et encore, quand on a l’information pour chacune d’entre elles.

Sauf que personne ne roule aussi vite sur les départementales lozériennes que sur celles de la Beauce (et si vous ne comprenez pas pourquoi, venez faire un tour en Lozère). Idéalement il faudrait prendre en compte la rectitude des routes, ou le nombre de virages, pour influencer cette vitesse moyenne. Google Maps utilise nos données de géolocalisation pour en déduire des vitesses moyennes réalistes, ce qui est très efficace, même si cela pose d’autres problèmes.

Ceci est une Nationale en Lozère

À vélo ou à pied, il faut bien sûr prendre en compte la pente, le sens dans lequel elle est prise, les virages, le revêtement, peut-être même l’altitude ou encore les feux rouges ? La précision (illusoire) du calcul peut être poussée infiniment loin. Un des principaux critères qui nous intéressent en tant que cyclistes, qu’on soit cyclotouristes, bikepackers, ultra-racers ou que sais-je encore, est l’adaptation des voies à notre type de pratique. Si l’évitement des nationales est une volonté plutôt partagée, c’est ensuite que ça se complique : privilégier les voies cyclables ? les sentiers monotraces ? les pistes forestières ? les départementales peu fréquentées ?

En fait, chaque algorithme donne un poids particulier à certains critères, et affecte l’équilibre des coûts de chaque voie à sa manière. Donc quand vous vouliez un itinéraire sur route et que l’algorithme vous a envoyé dans un chemin de terre battue, plusieurs raisons peuvent expliquer cela :

  • l’algorithme ne savait pas que cette voie était en terre battue ;
  • l’algorithme savait que c’était de la terre, mais a déterminé que le coût de faire passer l’itinéraire par cette voie était inférieur au coût du détour par du bitume.

Pour cette deuxième raison, on peut encore trouver plusieurs explications :

  • l’algorithme est « mal fichu » : ça peut arriver ! Si la proposition vous semble vraiment trop farfelue, n’hésitez pas à faire remonter ce problème à l’équipe technique pour les aider. Mais plutôt qu’un algorithme qui serait intrinsèquement mal fichu, c’est peut-être simplement que…
  • l’équilibre des coûts ne vous convient pas : là où une personne ne sera pas gênée par le fait de pousser le vélo sur 200m de terre pour éviter 3km de route, une autre en sera excédée. Chacun·e sa pratique, ses envies et ses contraintes ! Si un algorithme ne vous convient finalement pas, essayez-en un autre, mais ce n’est pas forcément que le premier était mauvais dans l’absolu.
  • enfin, la faute à pas de chance ! Ne s’agissant pas d’une science exacte, il y a forcément une partie des itinéraires proposés qui seront, selon nos critères humains, mauvais. Plus on utilise ces outils, et plus on les utilise sur des distances longues, plus la probabilité d’être confronté·e à un mauvais tirage est grande. C’est normal !

Au-delà de toutes ces considérations, revenons à cette première explication : « l’algorithme ne savait pas que cette voie était en terre battue ». Eh oui ! Si l’information manque, l’algorithme ne peut pas la deviner, pas plus qu’il ne peut interpréter tout seul de l’imagerie aérienne. Et ça tombe bien, c’est là qu’on peut intervenir !

En effet, le point commun de la quasi-totalité des algorithmes de calcul d’itinéraire pour vélo (ou randonnée pédestre), c’est qu’ils utilisent les données d’OpenStreetMap. Si une information manque dans OpenStreetMap, elle sera donc absente de tous nos outils de calcul d’itinéraire préférés. Mais au fait…

…c’est quoi OpenStreetMap ?

OSM, pour les intimes, est un projet cartographique mondial, libre, open source et collaboratif. En gros c’est le Wikipédia de la carto. Et si vous ne savez pas non plus comment fonctionne Wikipédia, un petit résumé de ce qui rapproche ces deux projets :

  • collaboratif : ces projets ne vivent que par les contributions bénévoles de citoyen·nes, sans distinction de nationalité ou de compétences professionnelles. Tout le monde peut contribuer.
  • open source : le code source de ces projets (des sites webs ou applications qui les composent) est ouvert, c’est-à-dire qu’il est librement consultable par qui que ce soit, sur internet. Cela permet à chacun·e de savoir comment ils fonctionnent.
  • libre : c’est-à-dire que la réutilisation des données et du code des applications est gratuite et (presque) sans restrictions. C’est aussi le principe qui encadre la contribution au code source : tout le monde peut être développeur/euse d’OpenStreetMap ou Wikipédia.

Une confusion est souvent faite lorsqu’on pense qu’OSM est une carte. Ce n’est pas une carte, c’est une base de données, et cette distinction est très importante ! Lorsqu’on va sur openstreetmap.org, ce qu’on voit c’est un style de carte. On peut d’ailleurs en changer dans le menu à droite. Ce style n’est qu’une représentation de la base de données parmi tant d’autres. C’est pour cela que de très nombreux styles de cartes OSM sont disponibles : car chacun·e peut décider d’en créer un et de le mettre à disposition du public. Parmi ceux qui nous intéressent, citons OpenCycleMap, CyclOSM, OpenTopoMap, Openmtbmap, etc.

Plusieurs styles de carte créés par Thunderforest

L’usage auquel est destiné un style détermine la manière de représenter les données d’OSM sur le fond de carte : est-ce qu’on met en valeur les fontaines d’eau potable ? est-ce qu’on attribue une couleur différente aux sentiers monotraces selon le niveau de difficulté leur étant attribué ? etc.

Pour cela, chaque style interroge les objets de la base de données OSM, qui sont constitués d’un ensemble d’attributs appelés clefs et valeurs. Chaque objet peut être de trois types : node (nœud), way (chemin), relation.

Un nœud est l’expression la plus simple qu’un objet peut prendre, c’est un simple point géolocalisé (c’est-à-dire avec des coordonnées géographiques). Par exemple : un sommet.

Un chemin est un objet constitué de plusieurs nœuds. Un chemin peut être ouvert ou bien fermé, en boucle. Exemple : la piste qui mène au Pic d’Usclat. Ou bien un bâtiment pour un chemin fermé. Le mot chemin est ici à comprendre comme « enchaînement de plusieurs nœuds », et pas comme « voie de circulation en terre pour piétons ».

Une relation est un groupe d’objets (mais elle-même un objet aussi). Exemple : un itinéraire de randonnée, qui est défini par l’assemblage de plusieurs chemins.

Vous commencez à le comprendre avec ces captures d’écran, chaque objet a un certain nombre de champs renseignés. Ces champs sont appelés des clefs (keys), et leur contenu les valeurs (values). Un objet peut contenir un nombre illimité de couples clefs/valeurs, ces couples étant appelés tags. Ce sont précisément ces tags qui vont servir aux algorithmes de calcul d’itinéraire ! Par exemple, un itinéraire optimisé pour VTT donnera la priorité aux chemins qui ont comme tag highway=path. highway est la clef qui détermine que l’objet en question est une voie de circulation, et path est la valeur qui détermine que le type de cette voie de circulation est un sentier monotrace. Largeur d’une ou deux personnes donc.

Si les clefs, valeurs et combinaisons possibles est quelque chose qui semble assez obscur au début, pas de souci ! Le wiki du projet OSM est là pour nous aider à comprendre quel sens la communauté met derrière telle clef ou telle valeur. Certaines disparaissent, d’autres sont créées, certaines sont synonymes…aller dans les détails peut être compliqué, mais en se concentrant sur les clefs les plus importantes, on peut déjà se mettre à…

…contribuer à OpenStreetMap

Eh oui, c’est la prochaine étape ! De nombreux tutoriels mieux réalisés que je ne pourrais le faire existent déjà, aussi je vous renvoie vers eux à la fin de cet article. Je vous propose cependant une rapide présentation de logiciels permettant de contribuer, sur téléphone ou ordinateur, pour débutant·es ou niveau plus avancé. Dans tous les cas, il est important de se renseigner un minimum afin de ne pas faire d’erreurs en contribuant : tout ce que vous modifiez l’est directement dans la base de données et est réutilisé par des millions de personnes à travers le monde dans l’heure qui suit ! Faites un tour sur ce guide du débutant avant de vous lancer. Oui, même si vous êtes bon·ne en informatique. J’ai envie de dire, surtout si vous êtes bon·ne en informatique, car vous avez des capacités de nuisance bien plus élevées pour la base de données 😉

StreetComplete : la plus ludique

Le plus simple d’utilisation, le plus ludique, le plus sécurisant ! C’est une application mobile Android qui transforme la contribution à OpenStreetMap en sortes de quêtes à réaliser. Des bulles apparaissent sur la carte, chaque bulle correspond à un objet auquel il manque une information considérée comme importante, et cette information est demandée par le biais de questions très intelligibles, et qui s’affranchissent de tous les mots techniques spécifiques à OSM. Au lieu de devoir « choisir une valeur pour la clef cycleway:both parmi lane, shared_lane et shared_busway », charabia incompréhensible pour beaucoup, il suffit de répondre à la question suivante :

Convaincu·e ? Téléchargez-la ici : StreetComplete – Google Play Store

Éditeur iD : la simplicité

C’est l’éditeur le plus simple d’accès : il suffit de se connecter à son compte OSM sur openstreetmap.org puis de cliquer sur la petite flèche à côté de « Modifier » en haut à gauche de l’écran.

Interface de l’éditeur iD

La contribution est ensuite assez simple : il suffit de cliquer sur un objet et de remplir les champs qui s’affichent à gauche de l’écran, toujours en suivant les conseils fournis en cliquant sur l’icône [i].

Tutoriel disponible ici : learnosm.org/fr/beginner/id-editor

OsmAnd : l’appli de navigation hors-ligne

Cette application mobile n’a pas pour but principal de contribuer à OpenStreetMap, mais elle le permet ! Si vous ne la connaissez pas, elle est très utilisée par les voyageurs/euses car on peut y télécharger des cartes de pays entiers pour y accéder hors-ligne par la suite. La liste de fonds de carte n’a pas de limites : tous les styles OSM possibles, mais aussi les cartes IGN, et même de l’imagerie satellite. Les données ne se limitent pas aux fonds de carte, mais également à tous les points d’intérêt possibles et même, si vous le souhaitez, leur fiche Wikipédia. Il est ainsi très facile de chercher la boulangerie ou le point d’eau le plus proche, sans jamais avoir besoin d’internet.

Application libre disponible sur Android et iOS, OsmAnd est la plus complète de sa catégorie et elle ne contient pas de publicités. Pour télécharger autant de cartes que vous voulez, deux solutions s’offrent à vous : acheter l’application ou bien…contribuer à OpenStreetMap ! Eh oui, en contribuant vous pouvez non seulement améliorer la base de données OSM mais aussi avoir accès à une des meilleures applications du genre gratuitement. Alors, on est tout de suite plus intéressé·e hein ?

Pour cela, il faut ajouter le greffon (aussi appelé plugin) « Édition OpenStreetMap » à l’application, puis se connecter à son compte OSM. On peut ensuite contribuer directement depuis l’interface, il suffit de cliquer sur la carte, puis sur « Créer/modifier un point d’intérêt » comme montré ci-dessous.

Pour débloquer le niveau OsmAnd Live, qui permet de mettre à jour de façon illimitée les cartes téléchargées, il faut avoir contribué au moins 15 fois à OpenStreetMap dans les 60 derniers jours. Ce décompte vaut pour toutes vos contributions, quel que soit le logiciel utilisé pour cela. Vous pouvez donc très bien contribuer sur StreetComplete ou l’éditeur iD et bénéficier de la gratuité d’OsmAnd Live. Pour activer ce décompte, aller dans les paramètres du greffon « Édition OpenStreetMap », puis cliquez sur « Map updates for Mappers » pour voir votre état d’avancement.

JOSM : l’étape supérieure

Et enfin, si vous êtes vraiment à l’aise avec le modèle de données d’OpenStreetMap, vous pouvez passer au logiciel Java OSM, sûrement l’un des plus pratiques dès qu’on se met un peu sérieusement à la contribution ! L’interface est plus complexe à appréhender, mais vous pourrez éditer de larges zones de manière beaucoup plus efficace et rapide. Une fonctionnalité particulièrement intéressante réside dans les « Préréglages » (ou Presets) : ce sont des raccourcis qui permettent d’éditer un objet OSM avec des formulaires personnalisés. Ces derniers sont adaptés à chaque objet, avec les clefs pertinentes pour celui-ci, des listes de valeurs proposées ou encore des descriptions qui aident à la contribution.

Interface de JOSM

J’ai d’ailleurs créé plusieurs préréglages adaptés aux données autour du vélo et du sport en général :

  • le premier se concentre sur les sentiers monotraces, avec une perspective de VTTiste
  • le deuxième permet d’éditer les itinéraires de randonnée non-motorisée : pédestres, cyclistes, équestres, etc.

Ils sont tous les deux entièrement traduits en français, et disponibles directement dans JOSM, il faut les télécharger en suivant les indications du tutoriel suivant : Préréglages – JOSM

Communauté OSM et entraide

Pour conclure, rappelez-vous que contribuer à OSM est un projet collectif ! Alors si vous vous lancez, ne restez pas seul·e : faites un tour sur le forum d’OSM France, participez à la thématique Plein air, venez discuter et travailler avec nous 🙂

Une liste de ressources pour aller plus loin :

Une réflexion sur “OpenStreetMap pour les cyclistes

  1. Merci pour ces éclairages !
    Cela nous évitera de râler et de mieux comprendre un système ainsi que notre responsabilité collective.

Répondre à Jean-Yves Couput Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.