ST_SymmetricDiff verwendet zwei Geometrieobjekte und gibt ein Geometrieobjekt zurück, das die symmetrische Differenz der Eingabeobjekte darstellt.
Syntax
db2gse.ST_SymmetricDiff(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Rückgabetyp
db2gse.ST_Geometry
Beispiele
Der zuständige Planer muß den Bereich der sensiblen Bereiche und des Fünf-Meilen-Radius ohne Schnittmenge ermitteln.
Die folgende Anweisung CREATE TABLE erstellt die Tabelle SENSITIVE_AREAS, die verschiedene Spalten zur Beschreibung der gefährdeten Institutionen enthält. Die Tabelle SENSITIVE_AREAS enthält auch die Spalte ZONE, in der die Polygongeometrie der Institution gespeichert ist.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
Die folgende Anweisung CREATE TABLE erstellt die Tabelle HAZARDOUS_SITES, in der die Identität der Standorte in den Spalten SITE_ID und NAME gespeichert wird; der tatsächliche geographische Standort jeder Site wird in der Punktspalte LOCATION gespeichert.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location point);
Die Funktion ST_Buffer generiert einen Fünf-Meilen-Puffer um die Standorte der Lagerstätten für gefährlichen Abfall. Die Funktion ST_SymmetricDiff generierte Polygone aus der Schnittmenge der gepufferten Polygone um die Abfallstandorte und der sensiblen Bereiche. Die Funktion ST_Area gibt die Polygonfläche der Schnittmenge für jeden Gefahrenstandort zurück.
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
In Abbildung 38 führt die symmetrische Differenz aus Gefahrengebieten und den sensiblen Bereichen zur Subtraktion der Schnittbereiche.