二つの機能ST_BuildAreaとST_Polygonizeの両方のテイクラインと生産ポリゴン。
ST_BuildArea内輪は穴を表し、結果からそれらを省略し、結果にST_Polygonizeはそれらを含めていると想定しているようです。そして、関数を使用するメカニズムは少し異なります:ST_Polygonizeは集約ですが、をST_BuildArea使用して入力を自分でバンドルする必要がありますST_Collect。
これ以外に、2つの機能に違いはありますか?
二つの機能ST_BuildAreaとST_Polygonizeの両方のテイクラインと生産ポリゴン。
ST_BuildArea内輪は穴を表し、結果からそれらを省略し、結果にST_Polygonizeはそれらを含めていると想定しているようです。そして、関数を使用するメカニズムは少し異なります:ST_Polygonizeは集約ですが、をST_BuildArea使用して入力を自分でバンドルする必要がありますST_Collect。
これ以外に、2つの機能に違いはありますか?
回答:
これは完全な答えではありませんが、詳細を探している人にとっては出発点になる可能性があります。
ST_Polygonize(の形式polygonize_garray)およびhttps://github.com/postgis/postgis/blob/svn-trunk/postgis/lwgeom_geos.cのST_BuildAreaソースコード(ミラー)で定義されています。
どちらも最終的にを呼び出しますGEOSPolygonize。これは、Java Topology Suiteの C / C ++ポートであるGEOSで定義されています。
そして、ドキュメントから-
ST_Polygonize-ジオメトリのセットを構成する線図から形成される可能性のあるポリゴンを含むGeometryCollectionを作成します。https://postgis.net/docs/ST_Polygonize.html
ST_BuildArea-指定されたジオメトリの構成要素である線図によって形成された面ジオメトリを作成します。戻り値の型は、入力に応じて、PolygonまたはMultiPolygonになります。入力ラインワークがポリゴンを形成しない場合、NULLが返されます。入力には、LINESTRINGS、MULTILINESTRINGS、POLYGONS、MULTIPOLYGONS、およびGeometryCollectionsを使用できます。この関数は、すべての内部形状が穴を表すと想定します。http://postgis.net/docs/ST_BuildArea.html