ST_Intersection は 2 つの図形オブジェクトを引き数とし、それらの交差セットを図形オブジェクトとして戻します。
ST_Intersection にはポリゴンおよび折れ線が入力パラメーターとして与えられ、以下の状態が適用されます。
ST_Intersection はテキスト・ストリング POINT EMPTY を戻します。
構文
db2gse.ST_Intersection(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
戻りタイプ
db2gse.ST_Geometry
例
消防本部長は、危険な廃棄物汚染の可能性のある範囲と交差している病院、学校、および養護施設の地域を把握する必要があります。
重要地域は、以下の CREATE TABLE ステートメントを用いて作成される SENSITIVE_AREAS 表に格納されます。 ZONE 列は、それぞれの重要地域の輪郭を格納するポリゴンとして定義されます。
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon);
危険地帯は、以下の CREATE TABLE ステートメントを用いて作成される HAZARDOUS_SITES 表に格納されます。ポイントとして定義された LOCATION 列には、それぞれの危険地帯の地理上の中心の位置が格納されます。
CREATE TABLE HAZARDOUS_SITES (site_id integer, name varchar(128), location db2gse.ST_Point);
buffer 関数は、危険な廃棄物施設の場所を取り囲む 5 マイルの緩衝地帯を生成します。 ST_Intersection 関数は、危険な廃棄物施設の緩衝地帯のポリゴンと重要地域との交差部分からポリゴンを生成します。 ST_Area 関数は、交差ポリゴンの面積を戻します。この面積は、SUM 関数によってそれぞれの危険地帯ごとに合計されます。 GROUP BY 文節により、照会は、交差している部分の面積を危険廃棄物地帯の site_ID ごとに集計します。
SELECT hs.name,SUM(db2gse.ST_Area(db2gse.ST_Intersection (sa.zone, db2gse.ST_buffer hs.location,(5 * 5280)))) FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs GROUP BY hs.site_id;
図 35 で、円は危険廃棄物地帯を取り囲む緩衝地帯のポリゴンを表しています。これらの緩衝地帯ポリゴンと重要地域ポリゴンとの交差によって、別の 3 つのポリゴンが作成されます。左上隅の病院は 2 回交差していますが、右下隅の学校は 1 回だけ交差しています。
図 35. ST_Intersection を用いて、 それぞれの建物の中でどの程度の広さの地域が危険廃棄物の影響を受ける可能性があるかを判別する