Name

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

Synopsis

geometry ST_BuildArea(geometry A);

説明

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

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

[Note]

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

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;

                                

関連情報

ST_Node, ST_MakePolygon, ST_BdPolyFromText, ST_BdMPolyFromText (この関数を標準OGCインタフェースにするためのラッパ)