4.6.2.4. Quelle est la longueur des routes totalement contenues dans chaque municipalités ?

Ceci est un exemple de "jointure spatiale', parce que nous utilisons les données de deux tables (en faisant une jointure) mais en utilisant une condition d'interaction spatiale ("contenue") comme condition de jointure au lieu d'utiliser l'approche relationnelle habituelle de jointure sur une clef commune :

postgis=# SELECT m.name, sum(length(r.the_geom))/1000 as roads_km
         FROM bc_roads AS r,bc_municipality AS m
         WHERE r.the_geom && m.the_geom
               AND contains(m.the_geom,r.the_geom)
         GROUP BY m.name
         ORDER BY roads_km;
           name             |    roads_km
----------------------------+------------------
SURREY                      | 1539.47553551242
VANCOUVER                   | 1450.33093486576
LANGLEY DISTRICT            | 833.793392535662
BURNABY                     | 773.769091404338
PRINCE GEORGE               | 694.37554369147
...

Cette requête dure un moment, parce que chaque route de la table est disponible dans le résultat final (environ 250K routes pour notre table d'exemple). Pour des couvertures plus petites (quelques milliers ou centaines d'enregistrements) la réponse peut être très rapide.

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

Posté par yjacolin le 6 Avril, 2006 - 20:41.

Accéder aux archives

« Septembre 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 22 invités en ligne.
Locations of visitors to this page
Drupal Top Sites - Ultimate Drupal Exposure