Benutzer- und Referenzhandbuch

ST_Disjoint

ST_Disjoint verwendet zwei Geometrieobjekte und gibt 1 (TRUE) zurück, wenn die Schnittmenge der beiden Geometrien eine leere Menge ist; andernfalls wird 0 (FALSE) zurückgegeben.

Syntax

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

Rückgabetyp

Integer

Beispiele

Eine Versicherungsgesellschaft möchte die Höhe der Versicherungssumme für die Krankenhäuser, Pflegeheime und Schulen einer Stadt überprüfen. Im Rahmen dieses Prozesses wird auch die Gefährdung beurteilt, die die Lagerstätten für gefährliche Abfälle für die einzelnen Institutionen darstellen. Die Versicherungsgesellschaft möchte nur die Institutionen berücksichtigen, bei denen kein Risiko der Kontaminierung besteht. Der von der Versicherungsgesellschaft eingestellte GIS-Berater wurde angewiesen, alle Institutionen zu ermitteln, die nicht innerhalb eines Radius von fünf Meilen innerhalb einer Lagerstätte mit gefährlichen Abfällen liegen.

Die Tabelle SENSITIVE_AREAS enthält verschiedene Spalten, die die gefährdeten Institutionen beschreiben, zusätzlich zu der Spalte ZONE, die die Polygongeometrie der Institution beschreibt.

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

In der Tabelle HAZARDOUS_SITES ist die Identität der Standorte in den Spalten SITE_ID und NAME gespeichert; der tatsächliche geographische Standort wird jeweils in der Spalte LOCATION gespeichert.

CREATE TABLE HAZARDOUS_SITES (site_id   integer,
                              name      varchar(128),
                              location  db2gse.ST_Point);

Die folgende Anweisung SELECT listet die Namen aller sensiblen Bereiche auf, die sich nicht innerhalb des Fünf-Meilen-Radius von einer Lagerstätte gefährlicher Abfälle befinden. Die Funktion ST_Intersects könnte die Funktion ST_Disjoint in dieser Abfrage ersetzen, wenn das Ergebnis der Funktion auf 0 statt auf 1 gesetzt wird. ST_Intersects und ST_Disjoint geben genau entgegengesetzte Ergebnisse zurück.

SELECT sa.name
FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs
WHERE db2gse.ST_Disjoint(db2gse.ST_Buffer(hs.location,(5 * 5280)),sa.zone) = 1;

In Abbildung 32 werden sensible Standorte mit dem Fünf-Meilen-Radius um die Lagerstätten gefährlicher Abfälle verglichen. Das Pflegeheim ist der einzige sensible Bereich, für den die Funktion ST_Disjoint da Ergebnis 1 (TRUE) zurückgibt. Die Funktion ST_Disjoint gibt 1 zurück, wenn sich zwei Geometrien in keiner Weise schneiden.

Abbildung 32. Mit ST_Disjoint die Gebäude ermitteln, die nicht innerhalb (in der Schnittmenge) eines Gefahrengebiets liegen

top


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]