Suite

Restrictions de virage dans GraphHopper

Restrictions de virage dans GraphHopper


Version courte

Les restrictions de virage ne semblent pas être prises en compte dans le routage de GraphHopper, bien que leurs problèmes GitHub indiquent qu'il est implémenté. Est-ce que quelqu'un connaît l'état de cela? Est-il implémenté, mais non fusionné, non publié, non déployé ou simplement non activé ? Ou y a-t-il un problème avec les données de l'exemple ci-dessous ? Quel est l'état des restrictions de virage dans les autres solutions de routage ouvertes basées sur OpenStreetmap ?

Version détaillée

Situation

GraphHopper Maps est ma solution de prédilection pour le routage. Cela semble être le meilleur service de routage avec les données OpenStreetmap, qui à son tour est la base de données la plus complète pour les pistes cyclables et les sentiers.

Étant donné que je fais également du mappage OpenStreetmap et que je souhaite passer à des fonctionnalités plus sophistiquées telles que les restrictions de virage, j'ai essayé d'apprendre des exemples d'autres personnes. Ils semblent être reconnus par JOSM, mais pas pris en compte par GraphHopper.

Exemple

Voici un exemple de complexité moyenne avec un croisement qui contient une restriction de virage à droite et une restriction de demi-tour. OpenStreetmap semble avoir les restrictions de virage appropriées et JOSM semble les comprendre (à en juger par les panneaux de signalisation indiqués dans la représentation graphique).

Notez que j'ai sélectionné le "de" via dans les deux cas, il est donc sélectionné dans la visualisation de la carte et vous pouvez confirmer qu'il n'y a pas de confusion entre les entrées "de" et "à".

Mais quand je l'essaye sur GraphHopper, il s'avère qu'aucune des deux restrictions n'est prise en compte. Le virage à droite et le demi-tour suivant sur l'itinéraire proposé par GraphHopper sont en fait illégaux :

Implémentation de GraphHopper

Je me demandais donc si le problème venait des données OpenStreetmap ou de GraphHopper.

D'après le numéro 2 de GitHub "Prise en charge des restrictions et des coûts de virage", je comprends que la fonctionnalité de restrictions de virage a été implémentée il y a quelque temps. Mais il existe un problème GitHub n ° 55 "Implémentation initiale de la prise en charge des restrictions de virage par khuebner" qui parle de problèmes de fusion avec du code trop complexe dans un seul commit. Il fait également référence à la fusion divisée en plusieurs parties, les demandes d'extraction #133, #134, #135 et #158. Ils sont tous marqués comme "fermés" ou "fusionnés".

Des questions

Alors, est-ce que quelqu'un sait quel est l'état de ça ? Est-il implémenté, mais non fusionné, non publié, non déployé ou simplement non activé ? Ou y a-t-il un problème avec les données de cet exemple ? Quel est l'état des restrictions de virage dans les autres solutions de routage ouvertes basées sur OpenStreetmap ?


La fonction de restriction de virage (également le coût de virage) n'est actuellement pas implémentée pour le mode d'accélération, et ce mode d'accélération est utilisé dans GraphHopper Maps. Mais vous pouvez facilement télécharger GraphHopper, activer le mode flexibilité dans le fichier config.properties et cela fonctionnera :

prepare.chWeighting=no graph.flagEncoders=car|turnCosts=true

Mettre à jour: tous les modes, y compris le mode vitesse, prennent en charge les restrictions de virage (coûts de virage plus généraux même) depuis la v0.12.


edit : reflétant la syntaxe mise à jour de config.properties

prepare.ch.weightings=no graph.flag_encoders=car|turn_costs=true