名前

ST_BuildArea — 与えられたジオメトリの構成ラインから面ジオメトリを生成します。

概要

geometry ST_BuildArea(geometry A);

説明

与えられたジオメトリの構成ラインから面ジオメトリを生成します。返り値はポリゴンまたはマルチポリゴンで、どちらになるかは入力に依存します。入力構成ラインがポリゴンを形成しない場合はNULLを返します。入力はLINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, GEOMETRYCOLLECTIONにすることができます。

この関数は全ての内部ジオメトリが穴を表現すると仮定します。

[注記]

この関数が正しく動作するには、入力ラインに正しくノードが作成されている必要があります。

初出: 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;

--this creates the same gaping hole
--but using linestrings instead of polygons
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;

				

関連情報

ST_Node, ST_BdPolyFromText, ST_BdMPolyFromTextwrappers to this function with standard OGC interface