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

Rispondere a