名前

ST_Polygonize — ジオメトリ集合のラインから形成されるポリゴンのコレクションを計算します。

概要

geometry ST_Polygonize(geometry set geomfield);

geometry ST_Polygonize(geometry[] geom_array);

説明

ジオメトリ集合の構成要素であるラインから形成されるポリゴンを含むジオメトリコレクションを計算します。この関数が確実に動作するために、入力ラインは正しいノードを持たなければなりません。

[注記]

入力が完全にノードを持っているようにするには、ポリゴン化の前に入力ジオメトリに対してST_Nodeを使います。

[注記]

ジオメトリコレクションは、サードパーティ製ツールでは、しばしば取り扱いが難しいとされることがあります。ポリゴン化の結果を個々のポリゴンに変換するにはST_Dumpを使います。

GEOSモジュールで実現しています。

Availability: 1.0.0RC1

例: 単一ラインストリングのポリゴン化

SELECT ST_AsEWKT(ST_Polygonize(the_geom_4269)) As geomtextrep
FROM (SELECT the_geom_4269 FROM ma.suffolk_edges ORDER BY tlid LIMIT 45) As foo;

geomtextrep
-------------------------------------
 SRID=4269;GEOMETRYCOLLECTION(POLYGON((-71.040878 42.285678,-71.040943 42.2856,-71.04096 42.285752,-71.040878 42.285678)),
 POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 42.354358,-71.171794 42.354971,-71.170511 42.354855,
 -71.17112 42.354238,-71.17166 42.353675)))
(1 row)

--Use ST_Dump to dump out the polygonize geoms into individual polygons
SELECT ST_AsEWKT((ST_Dump(foofoo.polycoll)).geom) As geomtextrep
FROM (SELECT ST_Polygonize(the_geom_4269) As polycoll
    FROM (SELECT the_geom_4269 FROM ma.suffolk_edges
        ORDER BY tlid LIMIT 45) As foo) As foofoo;

geomtextrep
------------------------
 SRID=4269;POLYGON((-71.040878 42.285678,-71.040943 42.2856,-71.04096 42.285752,
-71.040878 42.285678))
 SRID=4269;POLYGON((-71.17166 42.353675,-71.172026 42.354044,-71.17239 42.354358
,-71.171794 42.354971,-71.170511 42.354855,-71.17112 42.354238,-71.17166 42.353675))
(2 rows)

              

関連情報

ST_Node, ST_Dump