Guide d'utilisation et de référence

ST_SymmetricDiff

ST_SymmetricDiff utilise deux objets de type géométrie en entrée et renvoie un objet de même type représentant la différence symétrique des deux objets source.

La fonction ST_SymmetricDiff renvoie la différence symétrique (le OU EXCLUSIF [XOR] de l'espace) de deux géométries qui forment une intersection entre elles et sont de même dimension. Si les géométries sont égales, ST_SymmetricDiff renvoie une géométrie vide. Sinon, une partie de l'une d'elles ou des deux sera située en dehors de l'intersection. ST_SymmetricDiff renvoie les parties d'une collection qui sont situées en dehors de l'intersection ; par exemple, sous forme de multipolygone.

Si les géométries fournies en entrée à ST_SymmetricDiff ne sont pas de même dimension, la fonction renvoie une valeur nulle.

Syntaxe

db2gse.ST_SymmetricDiff(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)

Type de retour

db2gse.ST_Geometry

Exemples

L'administrateur du comté doit déterminer la surface des zones sensibles et du rayon de 8 km entourant les sites à risque qui ne forment pas d'intersection.

L'instruction CREATE TABLE ci-après crée la table SENSITIVE_AREAS, qui comporte plusieurs colonnes décrivant les établissements menacés. Cette table contient également la colonne ZONE qui stocke la géométrie de type polygone des établissements.

CREATE TABLE SENSITIVE_AREAS (id        integer,
                              name      varchar(128),
                              size      float,
                              type      varchar(10),
                              zone      db2gse.ST_Polygon); 

L'instruction CREATE TABLE ci-après crée la table HAZARDOUS_SITES qui stocke l'identificateur des sites dans les colonnes SITE_ID et NAME. Quant à l'emplacement géographique réel de chaque site, il est enregistré dans la colonne de type point LOCATION.

CREATE TABLE HAZARDOUS_SITES (site_id   integer,
                              name      varchar(128),
                              location  point); 

La fonction ST_Buffer génère une zone tampon de 8 km autour de l'emplacement des sites de déchets dangereux. La fonction ST_SymmetricDiff génère des polygones à partir de l'intersection des polygones des zones tampons des sites à risque avec les zones sensibles. La fonction ST_Area renvoie la surface du polygone d'intersection pour chaque site à risque.

SELECT sa.name, hs.name,
       db2gse.ST_Area(db2gse.ST_SymmetricDiff (db2gse.ST_Buffer(hs.location,(5
* 5280)),sa.zone))
FROM HAZARDOUS_SITES hs, SENSITIVE_AREAS sa 

Figure 38. Détermination à l'aide de la fonction ST_SymmetricDiff des zones de déchets dangereux ne contenant pas de zones sensibles (bâtiments habités)

top

Sur la Figure 38, la différence symétrique des sites de déchets dangereux et des zones sensibles est obtenue en soustrayant les zones d'intersection de la surface totale.


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]