

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# ST\$1MakePolygon
<a name="ST_MakePolygon-function"></a>

ST\$1MakePolygon 具有傳回多邊形的兩個變體。一個採用單一幾何，另一個採用兩個幾何。
+ 第一個變體的輸入是定義輸出多邊形外環的 linestring。
+ 第二個變體的輸入是 linestring 和 multilinestring。這兩個都是空的或封閉的。

  輸出多邊形的外環的邊界是輸入 linestring，而多邊形內環的邊界是輸入 multilinestring 中的 linestring。如果輸入 linestring 為空，則會傳回空多邊形。會忽略 multilinestring 中的空 linestring。產生幾何的空間參考系統識別碼 (SRID) 是兩個輸入幾何的公共 SRID。

傳回幾何的維度與輸入幾何的維度相同。外環和內環必須具有相同的維度。

## 語法
<a name="ST_MakePolygon-function-syntax"></a>

```
ST_MakePolygon(geom1)
```

```
ST_MakePolygon(geom1, geom2)
```

## 引數
<a name="ST_MakePolygon-function-arguments"></a>

 *geom1*   
`GEOMETRY` 資料類型的值，或是評估為 `GEOMETRY` 類型的表達式。子類型必須是 `LINESTRING`。*linestring* 的值必須是封閉或空的。

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

## 傳回類型
<a name="ST_MakePolygon-function-return"></a>

`POLYGON` 子類型的 `GEOMETRY`。

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

如果 *geom1* 或 *geom2* 為 null，則傳回 null。

如果 *geom1* 不是線串，則會傳回錯誤。

如果 *geom2* 不是 multilinestring，則會傳回錯誤。

如果 *geom1* 未封閉，則會傳回錯誤。

如果 *geom1* 是單點或未封閉，則會傳回錯誤。

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

如果 *geom1* 和 *geom2* 具有不同的 SRID 值，則會傳回錯誤。

如果 *geom1* 和 *geom2* 具有不同的維度，則會傳回錯誤。

## 範例
<a name="ST_MakePolygon-function-examples"></a>

以下 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 和封閉 multilinestring 建立多邊形。Linestring 用於多邊形的外環。Multilinestring 中的 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))
```