ST_SHORTESTPATh

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

ST_SHORTESTPATh

rihab
This post was updated on .
Salut,

J'utilise la fonction ST_SHORTESTPATh pour trouver le plus court chemin entre plusieurs points de départ et points d'arrivée. Dans l'exemple mentionné sur le site, le chemin le plus court est calculé entre seulement deux points (en déclarant l'identifiant). Je voulais utiliser la fonction pour une table contenant des noeuds de départ ainsi que des nœuds d'arrivée correspondants(d'une manière automatisée) sans passer par taper l'identifiant de chaque nœud. Est-il possible? et comment puis-je procéder?
la requete est la suivant(j'ai eu un message d'erreur)

CREATE TABLE sdt (source integer,destination integer);
INSERT INTO  sdt(source, destination) SELECT node_near,factnear FROM surface_coupe

select *
       from ST_SHORTESTPATh('v2_routard_explode1_EDGES',
       'undirected', 'SDT')


Merci
Reply | Threaded
Open this post in threaded view
|

Re: ST_SHORTESTPATh

Gwendall Petit
Administrator
Bonjour,

Pourriez-vous nous faire part du message d'erreur que vous obtenez ?

Juste pour être certain de bien comprendre, vous avez bien utilisé la fonction ST_Graph avant ?

Sur l'exemple que vous donnez, votre table d'entrée "sdt" ne comporte que 2 champs, or dans la documenation  (http://www.h2gis.org/docs/dev/ST_ShortestPath/) il est indiqué que la table d'entrée doit avoir une structure du type "EDGE_ID, "Strat_node", "End_node".

Pour le reste de votre question, sauf erreur de ma part, oui vous devriez pouvoir utiliser une table pour alimenter le calcul.

Cordialement,

Gwendall
Reply | Threaded
Open this post in threaded view
|

Re: ST_SHORTESTPATh

rihab
Salut,

J'ai bien utilisé la fonction st_graph et la table v2_routard_explode1_EDGES présente la structure "EDGE_ID, "Strat_node", "End_node".
Au lieu d'appliquer la fonction st_shortestpath sur un point de départ et point d'arrivé, je veux l'appliquer sur un ensemble de point de départ et un ensemble de point d'arrivé (many to many) qui sont présenté par la table sdt.

Reply | Threaded
Open this post in threaded view
|

Re: ST_SHORTESTPATh

nicolas-f
Administrator
In reply to this post by rihab
Bonjour,

Il est possible de calculer la matrice de distance avec ST_ShortestPathLength Many-to-Many

http://www.h2gis.org/docs/dev/ST_ShortestPathLength/

-Nicolas
Reply | Threaded
Open this post in threaded view
|

Re: ST_SHORTESTPATh

rihab
Merci pour la réponse. Mais la fonction ST_SHORTESTPAThlength n'affiche pas les arcs du réseau pour chaque itinéraire comme dans la fonction ST_SHORTESTPATh(EDGE_ID). T_SHORTESTPAThlength mesure le plus court chemin sans identifier ses arcs, et moi j'aurai besoin des arcs parcourus pour chaque plus court chemin.