Qual é a diferença entre ST_BuildArea e ST_Polygonize?


9

As duas funções ST_BuildAreae ST_Polygonizeambas pegam linhas e produzem polígonos.

Parece que ST_BuildAreaassume que os anéis internos representam buracos e os omite do resultado, enquanto os ST_Polygonizeinclui no resultado. E a mecânica de usar as funções é um pouco diferente: ST_Polygonizeé um agregado, enquanto ST_BuildArearequer que você agrupe as entradas usando ST_Collect.

Além disso, existem diferenças entre as duas funções?


3
Talvez esses slides da apresentação possam ajudar: http://2010.foss4g.org/presentations/3369.pdf
Joseph

Respostas:


1

Esta não é uma resposta completa, mas pode ser um ponto de partida para quem procura mais detalhes.

ST_Polygonize(na forma de polygonize_garray) e ST_BuildAreasão definidos no código-fonte (espelho) em https://github.com/postgis/postgis/blob/svn-trunk/postgis/lwgeom_geos.c .

Os dois eventualmente chamam GEOSPolygonize, que é definido no GEOS , que é uma porta C / C ++ do Java Topology Suite .

E pelos documentos -

ST_Polygonize - Cria uma GeometryCollection contendo possíveis polígonos formados a partir da linha de trabalho constituinte de um conjunto de geometrias. https://postgis.net/docs/ST_Polygonize.html

ST_BuildArea - Cria uma geometria areal formada pelo trabalho de linha constituinte de determinada geometria. O tipo de retorno pode ser um polígono ou multi-polígono, dependendo da entrada. Se as linhas de entrada não formarem polígonos, NULL será retornado. As entradas podem ser LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS e GeometryCollections. Esta função assume que todas as geometrias internas representam furos. http://postgis.net/docs/ST_BuildArea.html

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.