ST_Crosses verwendet zwei Geometrieobjekte und gibt 1 (TRUE) zurück, wenn deren Schnittmenge in einem Geometrieobjekt resultiert, deren Dimension um eins niedriger ist als die maximale Dimension der Quellenobjekte. Das Schnittobjekt enthält Punkte, die in beiden Quellengeometrieobjekten liegen; es ist jedoch nicht mit einem der Quellenobjekte identisch. Andernfalls wird 0 (FALSE) zurückgegeben.
Syntax
db2gse.ST_Crosses(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Rückgabetyp
Integer
Beispiele
Die Regierung des Landkreises denkt über eine neue Vorschrift nach, die festlegt, daß alle Lagerstätten für gefährliche Abfälle im Landkreis nicht näher als fünf Meilen an Flußläufen oder Bächen liegen dürfen. Der zuständige GIS-Manager verfügt über eine exakte Darstellung der Flüsse und Bäche, die als Mehrlinienfolgen in der Tabelle WATERWAYS gespeichert sind. Für die Lagerstätten von gefährlichen Abfällen hat er jedoch nur einen einzigen Standortpunkt.
CREATE TABLE WATERWAYS (id integer, name varchar(128), water db2gse.ST_MultiLineString); CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
Es soll festgestellt werden, ob die Landkreisregierung über Einrichtungen informiert werden muß, die die vorgeschlagene Vorschrift nicht erfüllen. Der GIS-Manager muß hierzu einen Bereich um die Gefahrenpunkte definieren und feststellen, ob sich Flüsse oder Bäche mit dem Polygon schneiden. ST_Crosses vergleicht die Bereiche aus HAZARDOUS_SITES mit WATERWAYS. Auf diese Weise werden nur die Datensätze zurückgegeben, bei denen ein Wasserlauf über den vorgeschlagenen Radius um den Gefahrenpunkt verläuft.
SELECT ww.name "River or stream", hs.name "Hazardous site" FROM WATERWAYS ww, HAZARDOUS_SITES hs WHERE db2gse.ST_Crosses(db2gse.ST_Buffer(hs.location,(5 * 5280)),ww.water) =1;
In Abbildung 31 schneidet der Fünf-Meilen-Puffer um den Gefahrenpunkt das Wassernetz des Landkreises. Das Netz der Wasserläufe wurde als Mehrlinienfolge definiert. Die Ergebnisgruppe umfaßt somit alle Liniensegmente, die Teil der Segmente sind, die den Radius schneiden.