全部產品
Search
文件中心

MaxCompute:ST_MAKEPOLYGON

更新時間:Aug 27, 2026

ST_MAKEPOLYGON函數通過指定外部邊界(shell)和0個或者多個洞(hole)來構造Polygon類型的地理對象。

命令格式

GEOGRAPHY ST_MAKEPOLYGON(GEOGRAPHY <shell>[, ARRAY<GEOGRAPHY> <holes>])

參數說明

  • shell:必填。LineString類型的地理對象。

  • holes:可選。ARRAY類型,ARRAY中的元素是LineString類型的地理對象。

LineString (線段)類型的地理對象,可根據需求使用ST_MAKELINE 函數來構造。注意:

  • Linestring(線段)必須至少包含三個不同的頂點。

  • Linestring(線段)必須閉合:即第一個頂點和最後一個頂點必須相同。如果第一個頂點和最後一個頂點不同,則函數會構建一條從第一個頂點到最後一個頂點的最終邊。

傳回值說明

返回一個Polygon類型的地理對象。返回規則如下:

  • 若輸入的GEOGRAPHY為NULL輸入的ARRAY或ARRAY中的任何元素為NULL,則返回NULL。

  • 若輸入空GEOGRAPHY,則返回報錯。

  • 由於S2地理庫的精度問題的影響,輸入和輸出可能有非常微小的差異。

使用樣本

-- 指定shell,沒有指定hole
SELECT ST_MAKEPOLYGON(ST_GEOGFROMTEXT('LINESTRING(0 0, 1 0, 1 1)'));
-- 返回結果:
+--------------------------------+
| _c0                            |
+--------------------------------+
| POLYGON ((0 0, 1 0, 1 1, 0 0)) |
+--------------------------------+


-- 同時指定shell和hole
SELECT ST_MAKEPOLYGON(ST_GEOGFROMTEXT('LINESTRING(0 0, 10 0, 10 10, 0 10, 0 0)'), ARRAY(ST_GEOGFROMTEXT('LINESTRING(2 2, 2 4, 4 4, 4 2, 2 2)')));
-- 返回結果:
+--------------------------------------------------------------------+
| _c0                                                                |
+--------------------------------------------------------------------+
| POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (4 2, 4 4, 2 4, 2 2, 4 2)) |
+--------------------------------------------------------------------+

相關文檔