Quelle est la différence entre ST_BuildArea et ST_Polygonize?

9

Les deux fonctions ST_BuildAreaet les ST_Polygonizedeux prennent des lignes et produisent des polygones.

Il semble que cela ST_BuildAreasuppose que les anneaux intérieurs représentent des trous et les omet du résultat, tout en les ST_Polygonizeincluant dans le résultat. Et la mécanique d'utilisation des fonctions est un peu différente: ST_Polygonizeest un agrégat, tout en ST_BuildAreanécessitant que vous regroupiez les entrées vous-même en utilisant ST_Collect.

Au-delà de cela, y a-t-il des différences entre les deux fonctions?

dbaston
la source
3
Peut-être que ces diapositives de présentation pourraient aider: http://2010.foss4g.org/presentations/3369.pdf
Joseph

Réponses:

1

Ce n'est pas une réponse complète, mais pourrait être un point de départ pour quelqu'un qui cherche plus de détails.

ST_Polygonize(sous la forme de polygonize_garray) et ST_BuildAreasont définis dans le code source (miroir) à https://github.com/postgis/postgis/blob/svn-trunk/postgis/lwgeom_geos.c .

Tous deux finissent par appeler GEOSPolygonize, qui est défini dans GEOS , qui est un port C / C ++ de Java Topology Suite .

Et à partir des documents -

ST_Polygonize - Crée une GeometryCollection contenant des polygones possibles formés à partir du dessin au trait constitutif d'un ensemble de géométries. https://postgis.net/docs/ST_Polygonize.html

ST_BuildArea - Crée une géométrie surfacique formée par le dessin au trait constitutif d'une géométrie donnée. Le type de retour peut être un Polygone ou MultiPolygon, selon l'entrée. Si les dessins au trait d'entrée ne forment pas de polygones, NULL est renvoyé. Les entrées peuvent être LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS et GeometryCollections. Cette fonction suppose que toutes les géométries internes représentent des trous. http://postgis.net/docs/ST_BuildArea.html

Brian Burns
la source