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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GeoRezo vous rend service, faites un don.

Merci à tous pour votre fidélité.

L'équipe GeoRezo

#1 sam. 06 mai 2017 09:10

Abdoulayi
Membre
Date d'inscription: 5 janv. 2017
Messages: 9

SQL: recherche du plus court chemin en passant par un point précis.

Bonjour à tous,

Comme mon titre l'évoque, je cherche à trouver le plus court chemin, mais en empruntant à chaque fois, une voie intermédiaire (qui n'est pas toujours la même).

Pour cela, je dispose des milliers de données (il n'est donc pas question de chercher un par un le chemin le plus proche à chaque fois :-) )
Dans les différentes tables que je dispose, j'ai réussi à les grouper afin que je puisse avoir à chaque fois, un colonne des points de départs A, une sur les points d'arrivée B et un point intermédiaire C.

L'objectif est donc de lancer une requête SQL permettant pour chaque point de départ "A", passer par son point intermédiaire "C" et d'accéder au point d'arrivée "B", tout cela par le chemin de plus proche.
Je dispose bien évidemment d'un réseau routier qui me servir de chemin à emprunter.

Sur la documentation de Postgres, que j'utilise, j'ai trouvé un exemple comme ci-dessous mais il ne me parait pas suffit car à chaque fois, il faut insérer manuellement les différents points que je souhaite. Hors, cela parait impossible dans mon cas au vu de l'immensité des données que je dispose.

En vous remerciant en avance pour votre aide.

Exemple:

SELECT seq, id1 AS node, id2 AS edge, cost, geometry
FROM pgr_dijkstra('SELECT id,  source, target, cost
FROM table_a', 120, 500, false, false)             
AS di JOIN table_b
ON di.id2 = table_b.id

Hors ligne

 

#2 lun. 15 mai 2017 13:55

lejedi76
Membre
Date d'inscription: 8 août 2013
Messages: 239

Re: SQL: recherche du plus court chemin en passant par un point précis.

Bonjour,

à priori le chemin le plus court en entre A et B en passant par C
est la somme des plus courts chemins, entre A et C et entre C et B.

En passant par une sous-requête adaptée avec un UNION, vous devriez pouvoir
arrivé au résultat escompté ?

Qu'est-ce qui vous pose problème ?

Cordialement,

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |