Recette
#18 |
|
Février 2011 |
Le problème Ceci est une sorte de conclusion visuelle de l'exercice précédent. le problème est le suivant:
|
CREATE TABLE
railway_zones ( |
SELECT
AddGeometryColumn('railway_zones', 'geometry', |
Commençons par créer une nouvelle table:
Comme d'habitude, on définit d'abord la table, sans considérer la colonne géométrique
Puis nous créons la colonne géométrique, en utilisant AddGeometryColumn().
Spécifions le SRID 23032 [ED50 UTM zone 32] pour cette table (la table railway ayant le même SRID)
Spécifions le type géométrique MULTYPOLYGON : nous verrons plus tard les raisons de ce choix
INSERT INTO
railway_zones |
Rien de bien intéressant dans cette clause INSERT
INTO ... SELECT ...
a part ces quelques points:
on utilise ST_Buffer() afin de créer un tampon de type POLYGON correspondant à la zone de classe A ( 1 km ).
note: il n'est pas toujours
évident de deviner le type de géométrie créé par un tampon (
ST_Buffer );
parfois
elle va créer des POLYGON,
et d'autres des MULTYPOLYGON
(ceci
dépend de la forme de la géométrie source, ainsi que du rayon
choisi pour le tampon).
ainsi, c'est afin d'éviter toute incohérence, que nous avons spécifié une géométrie de type MULTIPOLYGON pour cette table.
on force maintenant ce type géométrique via la fonction CastToMultiPolygon()(cette fonction va transformer la géométrie résultante d'un tampon en multipolygon)
INSERT INTO
railway_zones |
INSERT INTO
railway_zones |
INSERT INTO
railway_zones |
INSERT INTO
railway_zones |
Creer les autres zones n'est pas plus compliqué.
won utilise simplement ST_Difference()
afin d'obtenir la représentation désirée:
en d'autres termes,
on doit créer des trous dans chaque zone afin d'exclure les
autres zones déjà créées.
Vous pouvez dès à présent visualiser le résultat avec 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 |