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.