Demo pgRouting

Actions

Récupérer l'id et les coordonnées du sommet le plus proche correspondant à une coordonnée

SELECT *
FROM ways_vertices_pgr
ORDER BY the_geom <-> ST_GeometryFromText('POINT(LON LAT)',4326)
LIMIT 1;

Recherche d'un itinéraire entre deux sommet

SELECT st_union(route.the_geom)
FROM (
  SELECT * FROM pgr_dijkstra('ways', START_NODE, END_NODE)
) as route
SELECT st_union(route.the_geom)
FROM (
  SELECT * FROM pgr_dijkstra_directed('ways', START_NODE, END_NODE)
) as route

Pseudo algorithme de l'application

Lorsque l'utilisateur clique sur start ou end point:
  - Ajouter la classe "active" à l'élément courant
  - Enlever la classe "active" à l'autre élément
  - Définir que le drawControl fonctionne sur le layer correspondant à l'élément courant

L'utilisateur clique sur la carte
  - Création d'une feature au lieu cliquer
  - Envoi d'une requête ajax pour vérifier s'il existe un sommet
    du réseau routier à proximité
    - Oui: Correction de la position de la feature et récupération de l'id
    - Non: Avertir l'utilisateur et supprimer la feature

Lorsque l'utilisateur clique sur le bouton "Search"
  - Pour autant :
    - qu'il existe une feature sur chaque layer
    - que chaque feature possède bien un id référencant un sommet
  - Alors mettre à jour l'URL de la couche et lui demander de se rafraîchir