ST_MakePolygon - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

ST_MakePolygon

ST_MAKE 多邊形具有兩個返回多邊形的變體。一個採用單個幾何,另一個採用兩個幾何。

  • 第一個變量的輸入是定義輸出多邊形外圈的線串。

  • 第二個變量的輸入是線串和一個多線串。這兩個都是空的或關閉的。

    輸出面的外環的邊界為輸入線串,多邊形內環的邊界是輸入多線串中的線串。如果輸入線串為空,則返回空多邊形。忽略多線串中的空線串。所生成幾何的空間參考系統識別符 (SRID) 是兩個輸入幾何的 SRID。

傳回幾何的尺寸與輸入幾何的尺寸相同。外環和內圈必須具有相同的尺寸。

Syntax (語法)

ST_MakePolygon(geom1)
ST_MakePolygon(geom1, geom2)

引數

geom1

GEOMETRY 資料類型的值,或是評估為 GEOMETRY 類型的表達式。子類型必須是 LINESTRING。所以此linestring值必須是關閉或為 Null。

geom2

GEOMETRY 資料類型的值,或是評估為 GEOMETRY 類型的表達式。子類型必須是 MULTILINESTRING

傳回類型

POLYGON 子類型的 GEOMETRY

傳回幾何的空間參考系統識別符 (SRID) 與輸入的 SRID 相等。

如果geom1, 或geom2為 Null,則會傳回 Null。

如果geom1不是 linestring,則會傳回錯誤。

如果geom2不是多行串,則會傳回錯誤。

如果geom1並非封閉,則會傳回錯誤。

如果geom1是單個點或不是封閉的,則會傳回錯誤。

如果geom2至少包含一個具有單點或未封閉的 linestring,則會傳回錯誤。

如果 geom1geom2 具有不同的 SRID 值,則會傳回錯誤。

如果geom1geom2具有不同的維度,則會傳回錯誤。

範例

以下 SQL 會從輸入 linestring 傳回多邊形。

SELECT ST_AsText(ST_MakePolygon(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)')));
st_astext --------------- POLYGON((77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07))

以下 SQL 根據閉合線串和閉合多線串創建一個面。linestring 會用於多邊形的外部環。多線串中的線串用於多邊形的內部環。

SELECT ST_AsEWKT(ST_MakePolygon(ST_GeomFromText('LINESTRING(0 0,10 0,10 10,0 10,0 0)'), ST_GeomFromText('MULTILINESTRING((1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))')));
st_astext ---------------------------------- POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))