ST_Overlaps verwendet zwei Geometrieobjekte und gibt 1 (TRUE) zurück, wenn die Schnittmenge der beiden Objekte ein Geometrieobjekt derselben Dimension ergibt, das jedoch mit keinem der Quellenobjekte identisch ist; andernfalls wird 0 (FALSE) zurückgegeben.
Syntax
db2gse.ST_Overlaps(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Rückgabetyp
Integer
Beispiele
Der zuständige Planer benötigt eine Liste der Abfall-Gefahrenstandorte, in deren Umkreis von fünf Meilen sensible Bereiche wie Schulen, Krankenhäuser und Pflegeheime liegen.
Die folgende Anweisung CREATE TABLE erstellt die Tabelle SENSITIVE_AREAS. 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 Punktspalte LOCATION gespeichert.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
In der folgenden Anweisung SELECT werden die Tabellen SENSITIVE_AREAS and HAZARDOUS_SITES über die Funktion ST_Overlaps verknüpft. Die Funktion gibt 1 (TRUE) zurück für alle Zeilen in der Tabelle SENSITIVE_AREAS, deren Zonenpolygone den gepufferten Fünf-Meilen-Radius um den HAZARDOUS_SITES-Standort überlappen.
SELECT hs.name FROM HAZARDOUS_SITES hs, SENSITIVE_AREAS sa WHERE db2gse.ST_Overlaps (buffer(hs.location,(5 * 5280)),sa.zone) = 1;
In Abbildung 37 überlappen das Krankenhaus und die Schule den Fünf-Meilen-Radius der beiden Abfallstandorte des Landkreises; das Pflegeheim liegt außerhalb dieses Radius.