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