ST_BuildArea — 与えられたジオメトリの構成ラインから面ジオメトリを生成します。
geometry ST_BuildArea(geometry A);
与えられたジオメトリの構成ラインから面ジオメトリを生成します。返り値はポリゴンまたはマルチポリゴンで、どちらになるかは入力に依存します。入力構成ラインがポリゴンを形成しない場合はNULLを返します。入力としてLINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, GEOMETRYCOLLECTIONを取ることができます。
この関数は全ての内部ジオメトリが穴を表現すると仮定します。
![]() | |
この関数が正しく動作するには、入力ラインに正しくノードが作成されている必要があります。 |
Availability: 1.1.0 - GEOS 2.1.0以上が必要です。
![]() ドーナツを生成します。
SELECT ST_BuildArea(ST_Collect(smallc,bigc))
FROM (SELECT
ST_Buffer(
ST_GeomFromText('POINT(100 90)'), 25) As smallc,
ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As bigc) As foo;
|
![]() 円内にとがったものの先で、裂け目を生成します。
SELECT ST_BuildArea(ST_Collect(line,circle))
FROM (SELECT
ST_Buffer(
ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190)),
5) As line,
ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;
-- 同じ裂け目を生成します
-- ただし、ポリゴンでなくラインストリングを使います
SELECT ST_BuildArea(
ST_Collect(ST_ExteriorRing(line),ST_ExteriorRing(circle))
)
FROM (SELECT ST_Buffer(
ST_MakeLine(ST_MakePoint(10, 10),ST_MakePoint(190, 190))
,5) As line,
ST_Buffer(ST_GeomFromText('POINT(100 90)'), 50) As circle) As foo;
|