recette
#19 |
|
Février 2011 |
Le problème Local
Councils, Counties et Regions suivent un ordre
hierarchique
bien précis. |
Commençons par créer une nouvelle BDD; sous spatialite_gui
importons le shapefile com2010_s.
puis le jeu de donnée prov2010_s
: c'est aussi un shapefile.
Dans notre cas, ignorons
simplement la géométrie des Counties.
(on les recréera nous
même).
On va donc se contenter d'importer uniquement le
fichier .DBF , contenant uniquement les données
attributaires.
Faisons la même chose avec le fichier .DBF
de reg2010_s.
CREATE
VIEW local_councils AS SELECT * FROM local_councils; |
cod_reg |
cod_pro |
cod_com |
nome_com |
nome_pro |
sigla |
nome_reg |
geometry |
1 |
1 |
1 |
Agliè |
Torino |
TO |
PIEMONTE |
BLOB sz=1117 GEOMETRY |
1 |
1 |
2 |
Airasca |
Torino |
TO |
PIEMONTE |
BLOB sz=1149 GEOMETRY |
1 |
1 |
3 |
Ala di Stura |
Torino |
TO |
PIEMONTE |
BLOB sz=1933 GEOMETRY |
... |
... |
... |
... |
... |
... |
... |
... |
Ceci va créer une VIEW (VUE) local_councils; cette VIEW représente une jolie table incluant toutes les données dont nous auront besoin pour réaliser l'analyse spatiale. Pratique les vues, n'est-ce pas ?
CREATE
TABLE counties AS SELECT
RecoverGeometryColumn('counties', 'geometry', |
Créons maintenant la table countries:
la fonction ST_Union() est utilisée pour fusionner/assembler les objets Géométriques.
la clause GROUP BY cod_pro suite à ST_Union() va permettre de construire les géométries individuelles de chaque Countie
note: la fonction RecoverGeometryColumn() est indispensable pour authentifier la colonne counties.geometry et la transformer en colonne géométrique 100% légitime
SELECT * FROM counties; |
cod_pro |
nome_pro |
sigla |
cod_reg |
nome_reg |
geometry |
1 |
Torino |
TO |
1 |
PIEMONTE |
BLOB sz=36337 GEOMETRY |
2 |
Vercelli |
VC |
1 |
PIEMONTE |
BLOB sz=27357 GEOMETRY |
3 |
Novara |
NO |
1 |
PIEMONTE |
BLOB sz=15341 GEOMETRY |
... |
... |
... |
... |
... |
... |
Petite vérification ...
Visualisez la couche counties
via QGIS.
CREATE
TABLE regions ( SELECT
AddGeometryColumn('regions', 'geometry', INSERT INTO regions
(cod_reg, nome_reg, geometry) |
On va maintenant créer la table regions:
comme précédemment, nous allons utiliser ST_Union() et GROUP BY pour obtenir la géométrie des regions.
note:dans cet exemple, nous avons explicitement
créé la table regions
, puis utilisé AddGeometryColumn()
afin de créer la colonne regions.geometry
.
Enfin, nous avons exécuté le code INSERT
INTO ... (...) SELECT ... pour peupler la table.
La
procédure est différente, mais le résultat final est le même
qu'avec la procédure précédente.
SELECT * FROM regions; |
cod_reg |
nome_reg |
geometry |
1 |
PIEMONTE |
BLOB sz=75349 GEOMETRY |
2 |
VALLE D'AOSTA/VALLÉE D'AOSTE |
BLOB sz=18909 GEOMETRY |
3 |
LOMBARDIA |
BLOB sz=83084 GEOMETRY |
... |
... |
... |
Petite vérification ...
Vous pouvez visualiser la couche regions
via QGIS.
CREATE
TABLE italy AS SELECT
RecoverGeometryColumn('italy', 'geometry', |
Pour terminer, nous allons créer une
table italy
représentant la géométrie globale du pays.
Vous pouvez visualiser la couche italy
via QGIS … et c'est tout.
|
Author: Alessandro Furieri a.furieri@lqt.it |
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 |