ST_Crosses は 2 つの図形オブジェクトを引き数とし、それらの交差部分が、ソース・オブジェクトの最大次元よりも 1 つ小さい次元の図形オブジェクトとなる場合に、 1 (TRUE) を戻します。交差オブジェクトには、両方のソース図形の中にあり、なおかつどちらのソース・オブジェクトとも等しくないポイントが含まれます。そうでない場合、0 (FALSE) を戻します。
構文
db2gse.ST_Crosses(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
戻りタイプ
整数
例
地方自治体は、自治体内のあらゆる水路から 5 マイル以内に危険な廃棄物貯蔵施設を建設することを禁じた、新しい条例の制定を検討しています。自治体の GIS 担当者は、河川および支流の正確な表現を所有しています。この表示は、WATERWAYS 表に複数折れ線として格納されています。ただし、それぞれの危険な廃棄物処理施設について、単一のポイント location を所有しているだけです。
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 を用いて、危険な廃棄物区域を通過する水系を見つける