Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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 wink

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

 

Pied de page des forums

Powered by FluxBB