Pages: 1
- Sujet précédent - Identification des plus courts chemins - pgrouting/ Potgis - Sujet suivant
#1 Tue 16 April 2013 16:14
- Nicolas Granier
- Participant assidu
- Date d'inscription: 19 Apr 2007
- Messages: 271
Identification des plus courts chemins - pgrouting/ Potgis
Bonjour à tout le monde,
Je suis dans une impasse.
Je travaille sur la construction d'itinéraires basés sur les plus courts chemins. Je travaille en cumulant deux outils de calcul NetWork analyst (pour les phases amont de projet, plus rapide à utiliser) et pgrouting (en phase de production, plus puissant).
Je me trouve confronté à un problème sur PgRouting, en utilisant l'algorithme shortest_path, j'ai constaté que les itinéraires de plus courts chemins, ne sont pas les plus courts. J'ai fait apparaître les différences par rapport à Network Analyst, et je m'aperçois que j'ai des tronçons partageant les même extrémités (des deux côtés) qui ne font pas la même longueur (non pas le même coût) qui sont utilisés pour le plus court par Network Analyst, et pour le plus long (quelque metres de plus) par pg routing.
Autrement dit pgrouting ne me renvoie pas le chemin le plus court avec l’algorithme shortest_path !
Pour essayer de cerner le problème, j'ai utilisé aussi l'algorithme shortest_path_astar et même résultat
Par contre si je "force" pgrouting en supprimant le tronçon le plus long dans le graphe par requete sql, il passe bien par le second tronçon. il n'y a pas de problème de géométrie, c'est bien un problème de choix de passage.
J'ai enfin fait un dernier test avec l'algorithme shortest_path_shooting_star et là le résultat est bon, mon problème est que ce dernier algorithme demande en paramètre des id de chemins et non pas des id de nœuds et cela ne me convient pas. pour un itinéraire, je ne connais pas en avance le dernier tronçon qui va être utilisé pour rejoindre mon point d'arrivée.
Avez-vous des idées si c'est mon utilisation de pg routing qui n'est pas bonne ou si c'est un bug bien identifié ?
et peut être une solution de contournement ?
Merci d'avance
Nicolas
ps : j'ai posé la question aussi sur le forum voisin http://www.forumsig.org/showthread.php/ … post309493, je ne voudrai pas passer à côté du spécialiste qui aura ma solution
Hors ligne
#2 Tue 16 April 2013 16:27
- Nicolas Granier
- Participant assidu
- Date d'inscription: 19 Apr 2007
- Messages: 271
Re: Identification des plus courts chemins - pgrouting/ Potgis
J'ai peut être un début de solution. Il semblerait que lors de chemins parallèles, le premier tronçon (dans l'ordre de construction) soit choisi. La solution consisterait à classer le graphe par coût avec un order by.
par exemple :
Code:
SELECT gid as id,source::integer,target,cost FROM mon_graphe order by cost asc'
La solution vu ici : https://dhs.stanford.edu/spatial-humani … pgrouting/
et à priori le bug est reconnu et fixé
https://gist.github.com/xcalibur666/4975815
Dernière modification par Nicolas Granier (Tue 16 April 2013 16:51)
Hors ligne
Pages: 1
- Sujet précédent - Identification des plus courts chemins - pgrouting/ Potgis - Sujet suivant