ST_Crosses 使用兩個幾何物件並傳回 1 (TRUE) (若這兩個物件的交集產生一個幾何物件,該物件的維度比來源物件的最大維度少一個維度)。 此交集物件含有一些點,這些點是這兩個來源幾何的內部點而且不等於任何來源物件。 否則會傳回 0 (FALSE)。
語法
db2gse.ST_Crosses(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
回覆類型
Integer
範例
縣政府考慮實施一項新法規,規定縣內的危險廢棄物儲存設施距離水路要大於 5 英哩。 縣 GIS 主管有河流的正確示意圖,這些河流以多線串儲存在 WATERWAYS 表格。 但是對於每一個危險廢棄物儲存設施來說,GIS 主管只有單一點位置。
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);
若要判斷是否需要將違反此規定的設施通知縣行政官,那麼 GIS 主管應該緩衝危險場所位置,以瞭解有無河流經過緩衝區多邊形。 ST_Crosses 述詞比較緩衝的 HAZARDOUS_SITES 與 WATERWAYS。 所以只會傳回水路通過縣提議的規定半徑範圍的記錄。
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;
在圖 31中,危險廢棄物場所的 5 英哩緩衝區經過那些流經縣行政區的溪流網路。 溪流網路被定義成多線串。所以結果集包括全部線串區段,這些線串區段是通過此半徑範圍的那些區段的一部份。
圖 31. 使用 ST_Crosses 尋找流經危險廢棄物區域的水路。
![]() |