Symptôme
Lors du calcul d’un itinéraire avec xRoute en utilisant un profil camion (par ex. hauteur = 5,00 m) et les restrictions de hauteur activées (CFL_Hauteur) :
- L’itinéraire initial contient plusieurs événements ROUTE_VIOLATION_EVENT liés aux contraintes de hauteur.
- Lorsqu’un point de passage intermédiaire est ajouté sur la géométrie de l’itinéraire d’origine :
- L’itinéraire change de manière inattendue.
- Les violations de hauteur précédemment signalées disparaissent.
Ce comportement peut sembler incohérent d’un point de vue métier, notamment dans des scénarios de transport réglementés.
Cause
Ce comportement est lié à la configuration de l’espace de recherche de l’algorithme de routage, et non nécessairement à des données incorrectes ou à un défaut.
Par défaut :
- L’algorithme de routage (basé sur Dijkstra) privilégie les classes de réseau supérieures (routes majeures telles que autoroutes et routes primaires — NC0 à NC2), en particulier lorsqu’on est éloigné des points de passage.
- Dans les zones avec de nombreuses restrictions (par ex. contraintes de hauteur issues de CFL_Hauteur), l’algorithme peut :
- Rester sur des routes de classe supérieure
- Accepter des violations de contraintes si aucune alternative n’est trouvée dans l’espace de recherche exploré
Lorsqu’un point de passage est ajouté :
- Le problème de routage est recalculé en plusieurs segments
- L’espace de recherche est modifié
- L’algorithme peut explorer des routes supplémentaires
- Cela peut conduire à :
- Un itinéraire différent
- L’évitement des violations détectées précédemment
De plus, si le CFL contient des attributs avancés (par ex. segments préférés ou autres influences sur le routage), ils peuvent également affecter le calcul de l’itinéraire.
Résolution
Pour garantir que le moteur de routage explore davantage d’alternatives et évite les violations inutiles, configurez explicitement l’espace de recherche dans la requête de routage.
Étape 1 : Mettre à jour la requête de routage
remplacer :
"searchSpace": null
par :
"searchSpace": {
"excludeByNetworkClass": {
"minimumDistancesFromWaypoint": [
"UNBOUNDED",
"UNBOUNDED",
"UNBOUNDED",
"UNBOUNDED",
50,
20,
10,
10
]
}
}
Étape 2 : Effet de la configuration
Cette configuration :
- Élargit l’exploration des classes de réseau inférieures (routes secondaires)
- Permet à l’algorithme de trouver des détours
- Réduit la dépendance exclusive aux routes majeures
- Aide à éviter les violations de hauteur au lieu de les accepter
Étape 3 : Valider les résultats
Après application de la configuration :
- Recalculez l’itinéraire sans point de passage
- Recalculez avec point de passage
- Comparez :
- La géométrie de l’itinéraire
- La présence de violations
Vous devriez observer :
- Un comportement de routage plus cohérent
- Des violations réduites ou éliminées lorsque des alternatives existent
Articles connexes
PTV xServer : Service de mise à jour de contenu (CUS) - Port 1099 déjà utilisé
Commentaires
0 commentaire
Cet article n'accepte pas de commentaires.