ST_Intersects verwendet zwei Geometrieobjekte und gibt 1 (TRUE) zurück, wenn die Schnittmenge der beiden Geometrien keine leere Menge ergibt. Andernfalls wird 0 (FALSE) zurückgegeben.
Syntax
db2gse.ST_Intersects(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Rückgabetyp
Integer
Beispiele
Der Chef der Feuerwehr benötigt eine Liste aller sensiblen Bereiche innerhalb eines Radius von 5 Meilen um die Lagerstätten für gefährlichen Abfall.
Die sensiblen Bereiche sind in der Tabelle SENSITIVE_AREAS gespeichert, die mit der folgenden Anweisung CREATE TABLE erstellt wird. Die Spalte ZONE ist als Polygon definiert, in dem der Umriß der jeweiligen sensiblen Bereiche gespeichert ist.
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
Die Gefahrenstandorte sind in der Tabelle HAZARDOUS_SITES gespeichert, die mit der folgenden Anweisung CREATE TABLE erstellt wird. Die als Punkt definierte Spalte LOCATION speichert einen Standort, der das geographische Zentrum jedes Gefahrenstandorts darstellt.
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
Die Abfrage gibt eine Liste der sensiblen Bereiche und der Namen der Gefahrenstandorte zurück, sie sich mit dem Fünf-Meilen-Puffer um die Gefahrenstandorte schneiden.
SELECT sa.name, hs.name FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs WHERE db2gse.ST_Intersects(db2gse.ST_Buffer(hs.location,(5 * 5280)),sa.zone) =1;