¿Cuál es la diferencia entre ST_BuildArea y ST_Polygonize?

9

Las dos funciones ST_BuildAreay ST_Polygonizeambas toman líneas y producen polígonos.

Parece que ST_BuildAreasupone que los anillos internos representan agujeros y los omite del resultado, mientras que los ST_Polygonizeincluye en el resultado. Y la mecánica de usar las funciones es un poco diferente: ST_Polygonizees un agregado, mientras ST_BuildAreaque requiere que agrupe las entradas usted mismo usando ST_Collect.

Más allá de esto, ¿hay alguna diferencia entre las dos funciones?

dbaston
fuente
3
Quizás estas diapositivas de presentación podrían ayudar: http://2010.foss4g.org/presentations/3369.pdf
Joseph

Respuestas:

1

Esta no es una respuesta completa, pero podría ser un punto de partida para alguien que busca más detalles.

ST_Polygonize(en forma de polygonize_garray) y ST_BuildArease definen en el código fuente (espejo) en https://github.com/postgis/postgis/blob/svn-trunk/postgis/lwgeom_geos.c .

Ambos finalmente llaman GEOSPolygonize, que se define en GEOS , que es un puerto C / C ++ de Java Topology Suite .

Y de los documentos ...

ST_Polygonize: crea una GeometryCollection que contiene posibles polígonos formados a partir de la línea constitutiva de un conjunto de geometrías. https://postgis.net/docs/ST_Polygonize.html

ST_BuildArea: crea una geometría de área formada por la línea constitutiva de una geometría dada. El tipo de retorno puede ser un Polígono o MultiPolygon, dependiendo de la entrada. Si las líneas de entrada no forman polígonos, se devuelve NULL. Las entradas pueden ser LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS y GeometryCollections. Esta función asumirá que todas las geometrías internas representan agujeros. http://postgis.net/docs/ST_BuildArea.html

Brian Burns
fuente