ST_Overlaps は 2 つの図形オブジェクトを引き数とします。それらのオブジェクトの交差によって同じ次元の図形オブジェクトが形成され、かつどちらのソース・オブジェクトとも等しくない場合に、1 (TRUE) を戻します。そうでない場合、0 (FALSE) を戻します。
構文
db2gse.ST_Overlaps(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
戻りタイプ
整数
例
自治体の行政責任者が、半径 5 マイルが重要地域と重なっている危険な廃棄物地帯のリストを必要としています。
以下の CREATE TABLE ステートメントによって SENSITIVE_AREAS 表が作成されます。 SENSITIVE_AREAS 表には、汚染の恐れがある公共施設について記述する複数の列と、それらの公共施設のポリゴン図形を格納する ZONE 列が含まれています。
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
HAZARDOUS_SITES 表には、地点を識別する SITE_ID 列と NAME 列が格納されています。それぞれの地点の実際の地理上の位置は、LOCATION ポイント列に格納されています。
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
以下の SELECT ステートメントで、 SENSITIVE_AREAS 表と HAZARDOUS_SITES 表は、ST_Overlaps 関数によって結合されます。この関数は、SENSITIVE_AREAS 表の行のうち、 zone ポリゴンが HAZARDOUS_SITES location ポイントから半径 5 マイルの緩衝地帯と重なっているすべての行について 1 (TRUE) を戻します。
SELECT hs.name FROM HAZARDOUS_SITES hs, SENSITIVE_AREAS sa WHERE db2gse.ST_Overlaps (buffer(hs.location,(5 * 5280)),sa.zone) = 1;
図 37 では、病院と学校が、自治体内の 2 つの危険廃棄物施設から 5 マイルの範囲と重なっています。養護施設は重なっていません。
図 37. ST_Overlaps を用いて、危険廃棄物施設の地域に少なくとも一部が入っている建物を判別する