ST_Intersection 使用兩個幾何物件並傳回交集作為幾何物件。
語法
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);
緩衝區函數產生一個 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中,圓形代表圍繞危險廢棄物場所的緩衝多邊形。 這些緩衝區多邊形與敏感區多邊形的交集產生三個多邊形。 左上角的醫院相交兩次,右下角的學校只相交一次。
圖 35. 使用 ST_Intersection 判斷危險廢棄物可能影響每一棟建築物的區域大小。
![]() |