Buongiorno a tutti!
Devo generare con PostGIS i centroidi di alcuni poligoni, una parte di essi sono estremamente concavi per cui il centroide ricade all'esterno del poligono "padre". Con QGIS risolvo la questione con il plugin realcentroids ma volendo fare questo in PostGIS la sola funzione ST_Centroid non basta. Mi sapete dire se è possibile forzarla a generare il punto all'interno del poligono padre? Se ci sono altre alternative proponete pure :) ----- Ingegnere, consulente GIS e ciclista urbano -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] 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
Consulente GIS, Formatore, Blogger e Ciclista Urbano
email: info@massimilianomoraca.it
cell: 333 5949583 (lun-ven, 9.00-18.00)
website: massimilianomoraca.it
|
Massimiliano Moraca wrote
> Buongiorno a tutti! > > Devo generare con PostGIS i centroidi di alcuni poligoni, una parte di > essi > sono estremamente concavi per cui il centroide ricade all'esterno del > poligono "padre". Con QGIS risolvo la questione con il plugin > realcentroids > ma volendo fare questo in PostGIS la sola funzione ST_Centroid non basta. > > Mi sapete dire se è possibile forzarla a generare il punto all'interno del > poligono padre? > Se ci sono altre alternative proponete pure :) Ciao, PostGIS: ST_PointOnSurface ---> https://postgis.net/docs/ST_PointOnSurface.html SpatiaLite: ST_PointOnSurface ----> http://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.0.html QGIS: point_on_surface(geom) ----> https://goo.gl/71cRD8 SALUTI ----- https://pigrecoinfinito.wordpress.com/ -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] 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 |
In reply to this post by Massimiliano Moraca
Prova con calcolatore di campi usando la funzione:
point_on_surface( $geometry ) Il giorno ven 2 nov 2018 alle ore 08:55 Massimiliano Moraca < [hidden email]> ha scritto: > Buongiorno a tutti! > > Devo generare con PostGIS i centroidi di alcuni poligoni, una parte di essi > sono estremamente concavi per cui il centroide ricade all'esterno del > poligono "padre". Con QGIS risolvo la questione con il plugin realcentroids > ma volendo fare questo in PostGIS la sola funzione ST_Centroid non basta. > > Mi sapete dire se è possibile forzarla a generare il punto all'interno del > poligono padre? > Se ci sono altre alternative proponete pure :) > > ----- > Ingegnere, consulente GIS e ciclista urbano > -- > Sent from: > http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ > _______________________________________________ > [hidden email] > 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 [hidden email] 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 |
Come così?
point_on_surface( ST_Centroid( $geometry ) ) Non torno al pc prima di qualche ora e non posso quindi verificare... Il giorno ven 2 nov 2018 alle ore 09:18 Marco Spaziani < [hidden email]> ha scritto: > Prova con calcolatore di campi usando la funzione: > point_on_surface( $geometry ) > > Il giorno ven 2 nov 2018 alle ore 08:55 Massimiliano Moraca < > [hidden email]> ha scritto: > >> Buongiorno a tutti! >> >> Devo generare con PostGIS i centroidi di alcuni poligoni, una parte di >> essi >> sono estremamente concavi per cui il centroide ricade all'esterno del >> poligono "padre". Con QGIS risolvo la questione con il plugin >> realcentroids >> ma volendo fare questo in PostGIS la sola funzione ST_Centroid non basta. >> >> Mi sapete dire se è possibile forzarla a generare il punto all'interno del >> poligono padre? >> Se ci sono altre alternative proponete pure :) >> >> ----- >> Ingegnere, consulente GIS e ciclista urbano >> -- >> Sent from: >> http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ >> _______________________________________________ >> [hidden email] >> 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 > > [hidden email] 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
Consulente GIS, Formatore, Blogger e Ciclista Urbano
email: info@massimilianomoraca.it
cell: 333 5949583 (lun-ven, 9.00-18.00)
website: massimilianomoraca.it
|
In reply to this post by Massimiliano Moraca
Ciao,
geometricamente il risultato è corretto, ma puoi usare: st_closestpoint(geom, st_centroid(geom)) Queso ti permette di garantirti che il punto restituito (condizione di prossimità al centroide effettivo), possa trovarsi all'interno o almeno sul bordo del poligono. Puoi anche provare ad utilizzare : ST_Within(St_PointOnSurface(surface), surface) per verificare se il risultato è True/False dipendententemente da quali sono i tuoi obiettivi. Saluti. *_______________________________________________________________* * dott. Ivano GIULIANO* GIS & Data Science - Environmental and Urban Planner *The information contained in this e-mail message is confidential and intended only for the use of the individual or entity named above. If you are not the intended recipient, please notify us immediately by telephone or e-mail and destroy this communication. Due to the way of the transmission, we do not undertake any liability with respect to the secrecy and confidentiality of the information contained in this e-mail message.* Il giorno ven 2 nov 2018 alle ore 08:55 Massimiliano Moraca < [hidden email]> ha scritto: > Buongiorno a tutti! > > Devo generare con PostGIS i centroidi di alcuni poligoni, una parte di essi > sono estremamente concavi per cui il centroide ricade all'esterno del > poligono "padre". Con QGIS risolvo la questione con il plugin realcentroids > ma volendo fare questo in PostGIS la sola funzione ST_Centroid non basta. > > Mi sapete dire se è possibile forzarla a generare il punto all'interno del > poligono padre? > Se ci sono altre alternative proponete pure :) > > ----- > Ingegnere, consulente GIS e ciclista urbano > -- > Sent from: > http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ > _______________________________________________ > [hidden email] > 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 [hidden email] 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 |
In reply to this post by Massimiliano Moraca
https://gis.stackexchange.com/questions/193027/postgis-get-a-point-inside-a-line-or-polygon
Il giorno ven 2 nov 2018 alle ore 09:20 Massimiliano Moraca < [hidden email]> ha scritto: > Come così? > > point_on_surface( ST_Centroid( $geometry ) ) > > Non torno al pc prima di qualche ora e non posso quindi verificare... > > Il giorno ven 2 nov 2018 alle ore 09:18 Marco Spaziani < > [hidden email]> ha scritto: > >> Prova con calcolatore di campi usando la funzione: >> point_on_surface( $geometry ) >> >> Il giorno ven 2 nov 2018 alle ore 08:55 Massimiliano Moraca < >> [hidden email]> ha scritto: >> >>> Buongiorno a tutti! >>> >>> Devo generare con PostGIS i centroidi di alcuni poligoni, una parte di >>> essi >>> sono estremamente concavi per cui il centroide ricade all'esterno del >>> poligono "padre". Con QGIS risolvo la questione con il plugin >>> realcentroids >>> ma volendo fare questo in PostGIS la sola funzione ST_Centroid non basta. >>> >>> Mi sapete dire se è possibile forzarla a generare il punto all'interno >>> del >>> poligono padre? >>> Se ci sono altre alternative proponete pure :) >>> >>> ----- >>> Ingegnere, consulente GIS e ciclista urbano >>> -- >>> Sent from: >>> http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ >>> _______________________________________________ >>> [hidden email] >>> 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 >> >> [hidden email] 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 |
In reply to this post by Massimiliano Moraca
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 _______________________________________________ [hidden email] 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 |
Grazie mille a tutti, alla fine ho usato ST_PointOnSurface ed ho notato che
vengono ricentrati anche i centroidi che cadono dentro il poligono e generati da ST_Centroid. Nell'immagine che vedete i punti verdi sono quelli posizionati da ST_PointOnSurface mentre i blu sono quelli di ST_Centroid. <http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/file/t395848/export.png> ----- Ingegnere, consulente GIS e ciclista urbano -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] 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
Consulente GIS, Formatore, Blogger e Ciclista Urbano
email: info@massimilianomoraca.it
cell: 333 5949583 (lun-ven, 9.00-18.00)
website: massimilianomoraca.it
|
Ciao,
non è una ricentratura, ST_PointOnSurface()e ST_Centroid() sono di genere punti diversi, anche su poligoni convessi. Ivano -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] 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 |
Grazie per la precisazione :)
Il giorno ven 2 nov 2018 alle ore 13:38 Ivano <[hidden email]> ha scritto: > Ciao, > non è una ricentratura, > > ST_PointOnSurface()e ST_Centroid() sono di genere punti diversi, anche su > poligoni convessi. > > Ivano > > -- > Sent from: > http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ > _______________________________________________ > [hidden email] > 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 [hidden email] 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
Consulente GIS, Formatore, Blogger e Ciclista Urbano
email: info@massimilianomoraca.it
cell: 333 5949583 (lun-ven, 9.00-18.00)
website: massimilianomoraca.it
|
Ragazzi ecco lo scopo della mia richiesta di stamattina[0]. Dovevo fare uno
spatial join preciso e nel mio caso il solo ST_Centroid non andava bene. Ne ho approfittato e anche grazie alle vostre indicazioni ho fatto un piccolo video al volo. Spero sia gradito ed utile. PS: siete nei credits :) [0] https://youtu.be/7g4kMoEySH8 ----- Ingegnere, consulente GIS e ciclista urbano -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] 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
Consulente GIS, Formatore, Blogger e Ciclista Urbano
email: info@massimilianomoraca.it
cell: 333 5949583 (lun-ven, 9.00-18.00)
website: massimilianomoraca.it
|
Free forum by Nabble | Edit this page |