Fonction Driving Distance

La fonction driving_distance est définie comme suit :

CREATE OR REPLACE FUNCTION driving_distance(sql text, source_id integer,distance float8)
RETURNS SETOF path_result

Les arguments sont :

sql
une requête SQL, qui devrait renvoyer un ensemble de lignes ayant les colonnes suivantes :

  • id: un identifiant (int4) de l'arc
  • source: un identifiant (int4) du noeud origine
  • target: un identifiant (int4) du noeud destination
  • cost: une valeur float8 représentant le coût de traversé d'un arc. (un coût négatif entrainera la non insertion de l'arc dans le graphe).

source_id
un identifiant (int4) du point de départ id of the start point
distance
une valeur float8 de la distance en degrés

La focntion renvoie un ensemble de lignes. Il y a une ligne pour chaque arc tranversés et un ligne supplémentaire contenant le noeud terminal. Les colonnes de chaque lignes sont :

  • vertex_id: l'identifiant du noeud source de chaque arc. Il y a une ligne supplémentaire contenant l'identifiant du noeud final du chemin.
  • edge_id: l'identifiant de l'arc traversé
  • cost: le coût associé à l'arc. Il vaut 0 pour la ligne après le dernier arc. Donc, le cou^t total du chemin peut être calculé comme la somme de la colonne cost de toutes les lignes.

    Exemple:

    SELECT * from driving_distance('select gid as id,source,target,
    length::double precision as cost from dourol',10549,0.01);
    vertex_id | edge_id |            cost
    -------------+------------+--------------------------
            6190 |   120220 | 0.00967666852
            6205 |    118671 | 0.00961557335
            6225 |   119384 | 0.00965668162
            6320 |   119378 | 0.00959826176
             ...
             ...
             ...
            15144 |   122612 | 0.00973386526
            15285 |   120471 | 0.00912965866
            15349 |  122085 | 0.00944814966
             15417 |   120471 | 0.00942316736
            15483 |   121629 | 0.00972957546
    (293 rows)

    Posted in version imprimable | Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | 3155 lectures

    Posté par djay le 21 Août, 2006 - 12:44.

Accéder aux archives

« Novembre 2024  
Lun Mar Mer Jeu Ven Sam Dim
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Ouverture de session

Qui est en ligne

Il y a actuellement 1 utilisateur et 67 invités en ligne.
Locations of visitors to this page
Drupal Top Sites - Ultimate Drupal Exposure