Vos premières requêtes spatiales

Février 2011


Précédent

Table des matières

Suivant


SpatiaLite est un SGBD Spatial, et il est temps de réaliser quelques requètes spatiales avec SQL.
Il n'y a rien de bien sorcier avec le SQL spatial: la base est identique au SQL, mais il supporte les données Geometriques.
En général, vous ne pouvez pas directement interroger une donnée géométrique (comme nous l'Avon vu, ce sont des données de type BLOB):
vous devrez passer par des fonctions spatiales , ce qui s'avère beaucoup plus convivial.



SELECT COD_REG, REGIONE, ST_Area(Geometry)
FROM reg2001_s;

La fonction ST_Area() est une de ces fonctions; de façon générale, vous pouvez facilement reconnaître les fonctions spatiales grâce au préfixe ST_.
Il n'y a pas de règle absolue cependant: SpatiaLite est capable de comprendre l'alias  Area() pour identifier la même fonction.
Comme son nom l'indique, cette fonction permet de calculer la surface de la géométrie correspondante.

SELECT COD_REG AS code,
  REGIONE AS name,
  ST_Area(Geometry) / 1000000.0 AS "Surface (sq.Km)"
FROM reg2001_s
ORDER BY 3 DESC;

Comme vous l'avez remarqué, la première requête retourne de très grandes valeures: c'est parceque le jeu de donné utilise le mètre comme unité de longueur, la surface est ainsi exprimée en .
Mais il est très simple d'obtenir la valeur en km².
Deux nouvelles notions apparaissent pour la première fois dans la requête suivante:

SELECT COD_REG AS code,
  REGIONE AS name,
  ST_Area(Geometry) / 1000000.0 AS "Surface (sq.Km)",
  POP2001 / (ST_Area(Geometry) / 1000000.0)
    AS "Density: Peoples / sq.Km"
FROM reg2001_s
ORDER BY 4 DESC;

Vous pouvez également effectuer des calculs encore plus complexes avec SQL.
Cette requête va calculer la densité de population  ( personnes / km²).

Bien, vous avez maintenant acquis les bases en SQL / SQL spatial.
Vous êtes maintenant prêts à affronter des requêtes plus complexes: cela nécessitera de construire une DBB plus robuste.
Rappelez vous, jusqu'à présent, nous avons simplement utilisé des  Shapefiles virtuels c.-à-d. une pâle imitation d'une vrai table spatiale(stockage interne).
Ainsi, dans la prochaine étape, nous allons d'abord créer et peupler une DBB valide avant d'en apprendre plus sur le SQL.

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.