Recette #16
Railways vs Local Councils

Février 2011


Précédent

Table des matières

Suivant


Le problème

Cette fois ci, nous allons utiliser le jeux de donnée railways.
Rappelez vous: il s'agit d'un tout petit jeu de donnée composé de deux lignes de train( 23032 SRID [ED50 UTM zone 32]).
le problème est le suivant:

  • Identifier chaque Local Council traversé par un rail.


Important: Avant de commencer, veuillez télécharger le jeux de donnée.
 railways.zip (un simple shapefile dérivé de OpenStreetMap).
Puis importé ces données dans une table nommé railways.


Railway

LocalCouncil

County

Region

...

...

...

...

Ferrovia Adriatica

SILVI

TERAMO

ABRUZZO

Ferrovia Adriatica

TORTORETO

TERAMO

ABRUZZO

Ferrovia Roma-Napoli

AVERSA

CASERTA

CAMPANIA

Ferrovia Roma-Napoli

CANCELLO ED ARNONE

CASERTA

CAMPANIA

...

...

...

...



SELECT rw.name AS Railway,
  lc.lc_name AS LocalCouncil,
  c.county_name AS County,
  r.region_name AS Region
FROM railways AS rw
JOIN local_councils AS lc ON (
  ST_Intersects(rw.geometry, lc.geometry)
    AND lc.ROWID IN (
      SELECT pkid
      FROM idx_local_councils_geometry
      WHERE pkid MATCH RTreeIntersects(
        MbrMinX(rw.geometry),
        MbrMinY(rw.geometry),
        MbrMaxX(rw.geometry),
        MbrMaxY(rw.geometry))))
JOIN counties AS c
  ON (c.county_id = lc.county_id)
JOIN regions AS r
  ON (r.region_id = c.region_id)
ORDER BY r.region_name,
  c.county_name,
  lc.lc_name;

On examinera que les points importants:

Cet exemple se rapproche beaucoup du précédent.
Cependant, il confirme le fait qu'il est possible d'utiliser n'importe quel type de relations spatiales de manière assez simple, et qu'il est possible de les utiliser pour résoudre de nombreux problèmes de la vie courante. 


Précédent

Table des matières

Suivant


Author: Alessandro Furieri a.furieri@lqt.it
Traduced From English by RIVIERE Romain

This work is licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license.


Permission is granted to copy, distribute and/or modify this document under the terms of the
GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.