Après une première étape en début d’année pour ajouter le tracé d’une majorité de lignes dans les itinéraires, toutes les lignes sont maintenant supportées.
Le problème des tracés OpenStreetMap
La première approche se contentait de lire les tracés des lignes définis par les contributeurs d’OpenStreetMap.
Si cette méthode fonctionne très bien la plupart du temps, elle n’est pas sans défaut : elle est fragile et incomplète.
Incomplète car toutes les lignes de sont pas manuellement renseignées ou maintenues — cela demande beaucoup de temps. Par exemple la ligne 29 est toujours présente sur OpenStreetMap alors qu’elle est devenue la ligne C9.
Fragile car un tracé est un ensemble de routes par lesquelles passe le bus, et il suffit qu’une seule portion manque (par exemple un nouveau rond point fraichement créé sans être associé à la ligne de bus) pour que le tracé soit inutilisable par OpenTripPlanner, le calculateur d’itinéraires.
GraphHopper à la rescousse
La nouvelle approche consiste à faire de la cartospondance : calculer l’itineraire le plus probable pour une suite de coordonnées géographiques.
GraphHopper, un calculateur d’itinéraire routier permet d’arriver à un résultat presque parfait. En se faisant passer pour un bus et en priorisant les routes ayant un tracé de ligne dans OpenStreetMap, je peux reconstruire le tracé des lignes sans être bloqué par une portion manquante.
Les lignes non présentes dans OpenStreetMap — comme les lignes relais ou les lignes scolaires — peuvent aussi avoir leur tracé réel.
Bientôt disponible dans le détail des lignes et arrêts
Le tracé de toutes les lignes est dès maintenant disponible pour les itinéraires, et sera intégré partout dans Naonedbus dans une prochaine version.