Qual è la differenza tra ST_BuildArea e ST_Polygonize?


9

Le due funzioni ST_BuildAreaed ST_Polygonizeentrambe prendono le linee e producono poligoni.

Sembra che ST_BuildAreasupponga che gli anelli interni rappresentino dei buchi e li ometta dal risultato, mentre ST_Polygonizeli include nel risultato. E i meccanismi di utilizzo delle funzioni sono un po 'diversi: ST_Polygonizeè un aggregato, mentre ST_BuildArearichiede di raggruppare gli input da soli ST_Collect.

Oltre a ciò, ci sono differenze tra le due funzioni?


3
Forse queste diapositive di presentazione potrebbero aiutare: http://2010.foss4g.org/presentations/3369.pdf
Joseph

Risposte:


1

Questa non è una risposta completa, ma potrebbe essere un punto di partenza per chi cerca maggiori dettagli.

ST_Polygonize(sotto forma di polygonize_garray) e ST_BuildAreasono definiti nel codice sorgente (mirror) all'indirizzo https://github.com/postgis/postgis/blob/svn-trunk/postgis/lwgeom_geos.c .

Entrambi alla fine chiamano GEOSPolygonize, che è definito in GEOS , che è una porta C / C ++ di Java Topology Suite .

E dai documenti -

ST_Polygonize - Crea una GeometryCollection contenente possibili poligoni formati dalla linea di base costituente di un insieme di geometrie. https://postgis.net/docs/ST_Polygonize.html

ST_BuildArea - Crea una geometria areale formata dal disegno al tratto di una determinata geometria. Il tipo restituito può essere un poligono o un multipoligono, a seconda dell'input. Se le linee di input non formano poligoni, viene restituito NULL. Gli input possono essere LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS e GeometryCollections. Questa funzione presuppone che tutte le geometrie interne rappresentino buchi. http://postgis.net/docs/ST_BuildArea.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.