ST_COVERS函數用於判斷value1對應的地理對象是否覆蓋value2對應的地理對象。即判斷value2對應的地理對象的所有點是否都位於value1對應的地理對象的邊界或內部。
命令格式
BOOLEAN ST_COVERS(GEOGRAPHY <value1>, GEOGRAPHY <value2>)參數說明
value1、value2:必填。GEOGRAPHY資料類型的地理對象。可根據需求使用ST_GEOGPOINT、ST_GEOGFROMWKB、ST_GEOGFROMTEXT、ST_MAKELINE和ST_MAKEPOLYGON函數來構造GEOGRAPHY類型對象。
傳回值說明
返回BOOLEAN類型。返回規則如下:
若value2所對應的地理對象的每一個點都位於value1所對應的地理對象的邊界或內部,則返回TRUE;否則返回FALSE。
若value1或value2為空白的地理對象,則返回FALSE。
一個地理對象是覆蓋它的邊界節點的。
使用樣本
樣本1:判斷多邊形POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))是否分別覆蓋位於多邊形外部、邊界和內部的三個點 (5, 5)、(0, 0) 和 (0.5, 0.5)。
-- 返回TRUE,因為point(0 0)在polygon的邊界節點上 SELECT ST_COVERS(ST_GEOGFROMTEXT('POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))'), ST_GEOGPOINT(0, 0)); -- 返回TRUE,因為point(0.5 0.5)在polygon的內部 SELECT ST_COVERS(ST_GEOGFROMTEXT('POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))'), ST_GEOGPOINT(0.5, 0.5)); -- 返回FALSE,因為point(5 5)在polygon的外部 SELECT ST_COVERS(ST_GEOGFROMTEXT('POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))'), ST_GEOGPOINT(5, 5));樣本2:若value1或value2為空白的地理對象,則返回FALSE。
-- 返回FALSE SELECT ST_COVERS(ST_GEOGFROMTEXT('POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))'),ST_GEOGFROMTEXT('point empty'));