On Fri, 2 Nov 2018 09:20:08 +0100, Massimiliano Moraca wrote:
Come così?
point_on_surface( ST_Centroid( $geometry ) )
no, non cosi' ma cosa':
SELECT ST_PointOnSurface(geometry);
che tu usi PostGIS o SpatiaLite o QGIS ha ben poca importanza,
visto che in tutti i casi il lavoro vero e proprio viene
comunque delegato alla libreria GEOS.
la GEOS da parte sua supporta due diverse API che vengono
poi incapsulate all'interno delle corrispondenti funzioni SQL:
1. GEOSCentroid()
questa ritorna sempre il centroide geometricamente
corretto, che nel caso di poligoni concavi puo'
facilmente cadere all'esterno della figura
2. GEOSPointOnSurface()
invece questa per prima cosa prova a chiamare la
precedente, e poi verifica se il punto ottenuto
cade o meno all'interno della figura.
se il vincolo non e' verificato, allora prova a
generare ciclicamente altri punti fino a quando
non riesce a trovarne uno che effettivamente
cada all'interno della figura.
ovviamente questa seconda funzionalita' e' piu'
lenta della precedente, perche' puo' richiedere
elaborazioni piu' lunghe e complesse, ma in genere
si tratta di differenze abbastanza marginali.
ciao Sandro
_______________________________________________
[email protected]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017