

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の 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 には、ポリゴンを返す 2 つの変形があります。1 つは単一のジオメトリを取り、もう 1 つは 2 つのジオメトリを取ります。
+ 最初の変形の入力は、出力ポリゴンの外リングを定義するライン文字列です。
+ 2 番目の変形の入力は、ライン文字列とマルチライン文字列です。どちらも空であるか、閉じられています。

  出力ポリゴンの外部リングの境界は入力ライン文字列であり、ポリゴンの内部リングの境界は入力マルチライン文字列のライン文字列です。入力ライン文字列が空の場合、空のポリゴンが返されます。マルチライン文字列内の空のライン文字列は無視されます。結果ジオメトリの空間リファレンス識別子 (SRID) は、2 つの入力ジオメトリの共通 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>

`GEOMETRY`サブタイプ の `POLYGON`。

返されたジオメトリの空間リファレンスシステム識別子 (SRID) は、入力の SRID と等しくなります。

*geom1* または *geom2* が null の場合、null が返されます。

*geom1* が linestring でない場合、エラーが返されます。

*geom2* がマルチライン文字列でない場合、エラーが返されます。

*geom1* がクローズされていない場合、エラーが返されます。

*geom1* が単一のポイントであるか、クローズされていない場合、エラーが返されます。

*geom2* に、単一のポイントを持つ、または閉じられていないライン文字列が少なくとも 1 つ含まれている場合、エラーが返されます。

*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 では、閉じたライン文字列と閉じたマルチライン文字列からポリゴンを作成します。ライン文字列は、ポリゴンの外部リングに使用されます。マルチライン文字列のライン文字列は、ポリゴンの内部リングに使用されます。

```
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))
```