すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ST_MakePolygon

最終更新日:Mar 29, 2026

1 つ以上の閉じた LineString ジオメトリからポリゴンを構築します。

構文

geometry ST_MakePolygon(geometry linestring);
geometry ST_MakePolygon(geometry outerlinestring, geometry[] interiorlinestrings);

パラメーター

パラメーター説明
linestringポリゴンの外殻(アウターシェル)を定義する閉じた LineString です。
outerlinestring外殻(アウターシェル)を定義する閉じた LineString です。
interiorlinestrings内殻(ホール)をそれぞれ定義する、閉じた LineString の配列です。配列は ARRAY[] を使用して作成します。

注意事項

バリアント 1 では、単一のシェル LineString を受け取り、穴のない単純なポリゴンを返します。

バリアント 2 では、外殻と内殻の配列を受け取り、1 つ以上の穴を持つポリゴンを返します。

いずれのバリアントも、閉じた LineString を必要とします。つまり、始点と終点の座標が一致している必要があります。開いた LineString を指定するとエラーが発生します。

バリアント 1:単一シェル

閉じた LineString から単純なポリゴンを構築します。

SELECT ST_AsText(ST_MakePolygon(ST_GeomFromText('LINESTRING(1 2,3 4,5 6,1 2)')));

出力結果:

         st_astext
----------------------------
 POLYGON((1 2,3 4,5 6,1 2))
(1 行)

バリアント 2: 内部に穴のある外側シェル

外殻と 1 つの内殻を含む配列を引数として渡すことで、1 つのホールを持つポリゴンを構築します。

SELECT ST_AsText(
  ST_MakePolygon(
    ST_GeomFromText('LINESTRING(0 0,0 1,1 1,0 0)'),
    ARRAY[ST_GeomFromText('LINESTRING(-1 -1,-1 2,2 2,-1 -1)')]
  )
);

出力結果:

                     st_astext
---------------------------------------------------
 POLYGON((0 0,0 1,1 1,0 0),(-1 -1,-1 2,2 2,-1 -1))
(1 行)