使用與參考手冊

ST_Disjoint

ST_Disjoint 使用兩個幾何並傳回 1 (TRUE) (若這兩個幾何交點產生空集); 否則會傳回 0 (FALSE)。

語法

db2gse.ST_Disjoint(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)

回覆類型

Integer

範例

保險公司需要評估鎮的醫院、療養院和學校的承保範圍。 包括判斷危險廢棄物場所對各個機構造成的威脅,也是本處理的一部份。 保險公司想要只考慮無污染風險的機構。 保險公司委託聘雇的 GIS 顧問尋找在危險廢棄物場所的 5 英哩半徑範圍以外的所有機構。

除了儲存機構的多邊形幾何的 ZONE 直欄以外,SENSITIVE_AREAS 表格還包含數個直欄,說明受威脅的機構。

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 陳述式列示在危險廢棄物場所的 5 英哩半徑範圍以外的全部敏感區域名稱。 ST_Intersects 函數可取代本查詢中的 ST_Disjoint 函數 (若此函數的結果集等於 0 而不是 1)。 這是因為 ST_Intersects 和 ST_Disjoint 傳回相反的結果。

SELECT sa.name
FROM SENSITIVE_AREAS sa, HAZARDOUS_SITES hs
WHERE db2gse.ST_Disjoint(db2gse.ST_Buffer(hs.location,(5 * 5280)),sa.zone) = 1;

圖 32中,敏感場所與危險廢棄物場所的 5 英哩半徑範圍做比較。 療養院是 ST_Disjoint 函數會傳回 1 (TRUE) 的唯一敏感區域。 每次有兩個幾何無法相交時,ST_Disjoint 函數就會傳回 1。

圖 32. 使用 ST_Disjoint 尋找不在 (相交) 危險廢棄物場所的建築物。


top


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]