全部產品
Search
文件中心

MaxCompute:ST_COVERS

更新時間:Aug 27, 2026

ST_COVERS函數用於判斷value1對應的地理對象是否覆蓋value2對應的地理對象。即判斷value2對應的地理對象的所有點是否都位於value1對應的地理對象的邊界或內部。

命令格式

BOOLEAN ST_COVERS(GEOGRAPHY <value1>, GEOGRAPHY <value2>)

參數說明

value1、value2:必填。GEOGRAPHY資料類型的地理對象。可根據需求使用ST_GEOGPOINTST_GEOGFROMWKBST_GEOGFROMTEXTST_MAKELINEST_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'));

相關文檔