|
|
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 |