Problema GeometryCollection

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Problema GeometryCollection

Massimiliano Moraca
Salve a tutti!
Ho fatto una verifica topologica di un vettore poligonale che mi ha
restituito una geometria non valida.
Così sono passato in PostGIS ed ho provato ad usare lo script che segue per
correggerlo:

UPDATE perimetrazione
SET geometry = ST_MakeValid(geometry);

Il risultato però è stato il seguente:

ERROR:  ERRORE:  Geometry type (GeometryCollection) does not match column
type (MultiPolygon)


SQL state: 22023

Come faccio ad effettuare questa conversione di tipologia di colonna
geometrica?
In origine il vettore era in formato GeoPackage e chi ha editato il vettore
lo ha fatto in quel formato e con QGIS 3. Il vettore l'ho creato io e
gliel'ho passato(vuoto) con QGIS 2.18, la persona che sta eseguendo
l'editing aveva la 2.14 e la prima volta che ho incontrato l'errore di sopra
credevo dipendesse da una problematica della versione 2.14 perciò gli ho
fatto installare la 3.

-----
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
Ingegnere, consulente GIS e ciclista urbano
Reply | Threaded
Open this post in threaded view
|

Re: Problema GeometryCollection

Andrea Peri
Il fatto ch emerga una collezione a fronte di una elaborazione, non è un
difetto , ma una logica conseguenza matematica causata dalle geometrie
coinvolte causata anche dal fatto che si opera in un ambiente a precisione
finita.

La.makevalid devi nidificarla con quella che forza unancollection e poi il
tutto modificarlo in quella che estrae la componente poligonale dalla
collezione.

Se serve posso inviarti la sequenza SQL.

A.


Il Sab 12 Mag 2018, 13:52 Massimiliano Moraca <[hidden email]>
ha scritto:

> Salve a tutti!
> Ho fatto una verifica topologica di un vettore poligonale che mi ha
> restituito una geometria non valida.
> Così sono passato in PostGIS ed ho provato ad usare lo script che segue per
> correggerlo:
>
> UPDATE perimetrazione
> SET geometry = ST_MakeValid(geometry);
>
> Il risultato però è stato il seguente:
>
> ERROR:  ERRORE:  Geometry type (GeometryCollection) does not match column
> type (MultiPolygon)
>
>
> SQL state: 22023
>
> Come faccio ad effettuare questa conversione di tipologia di colonna
> geometrica?
> In origine il vettore era in formato GeoPackage e chi ha editato il vettore
> lo ha fatto in quel formato e con QGIS 3. Il vettore l'ho creato io e
> gliel'ho passato(vuoto) con QGIS 2.18, la persona che sta eseguendo
> l'editing aveva la 2.14 e la prima volta che ho incontrato l'errore di
> sopra
> credevo dipendesse da una problematica della versione 2.14 perciò gli ho
> fatto installare la 3.
>
> -----
> 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
Reply | Threaded
Open this post in threaded view
|

Re: Problema GeometryCollection

Massimiliano Moraca
Andrea grazie per la risposta, si se puoi mi invieresti un esempio?

Il giorno 12 maggio 2018 14:04, Andrea Peri <[hidden email]> ha
scritto:

> Il fatto ch emerga una collezione a fronte di una elaborazione, non è un
> difetto , ma una logica conseguenza matematica causata dalle geometrie
> coinvolte causata anche dal fatto che si opera in un ambiente a precisione
> finita.
>
> La.makevalid devi nidificarla con quella che forza unancollection e poi il
> tutto modificarlo in quella che estrae la componente poligonale dalla
> collezione.
>
> Se serve posso inviarti la sequenza SQL.
>
> A.
>
>
> Il Sab 12 Mag 2018, 13:52 Massimiliano Moraca <
> [hidden email]> ha scritto:
>
>> Salve a tutti!
>> Ho fatto una verifica topologica di un vettore poligonale che mi ha
>> restituito una geometria non valida.
>> Così sono passato in PostGIS ed ho provato ad usare lo script che segue
>> per
>> correggerlo:
>>
>> UPDATE perimetrazione
>> SET geometry = ST_MakeValid(geometry);
>>
>> Il risultato però è stato il seguente:
>>
>> ERROR:  ERRORE:  Geometry type (GeometryCollection) does not match column
>> type (MultiPolygon)
>>
>>
>> SQL state: 22023
>>
>> Come faccio ad effettuare questa conversione di tipologia di colonna
>> geometrica?
>> In origine il vettore era in formato GeoPackage e chi ha editato il
>> vettore
>> lo ha fatto in quel formato e con QGIS 3. Il vettore l'ho creato io e
>> gliel'ho passato(vuoto) con QGIS 2.18, la persona che sta eseguendo
>> l'editing aveva la 2.14 e la prima volta che ho incontrato l'errore di
>> sopra
>> credevo dipendesse da una problematica della versione 2.14 perciò gli ho
>> fatto installare la 3.
>>
>> -----
>> 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
Ingegnere, consulente GIS e ciclista urbano
Reply | Threaded
Open this post in threaded view
|

Re: Problema GeometryCollection

Massimiliano Moraca
In reply to this post by Massimiliano Moraca
Noto tra l'altro che se attivo l'editing non funziona l'impostazione
topologica di evita intersezioni se creo nuovi poligoni a partire da quelli
confinanti con la geometria non valida.

Questo problema lo riscontro sia in QGIS 2.18 che in 3 e sia che uso il
geopackage che lo shapefile.

-----
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
Ingegnere, consulente GIS e ciclista urbano
Reply | Threaded
Open this post in threaded view
|

Re: Problema GeometryCollection

Andrea Peri
In reply to this post by Massimiliano Moraca
Ecco.
Questa la ho adattata da quella che uso su spatialite.

update tabella set geometry =
ST_Multi(ST_CollectionExtract(ST_ForceCollection(ST_MakeValid(geometry)),3))
where ST_IsValid(geometry)=false;

Se la geometria nel campo "geometry" e' polygon e non multipolygon, devi
levare il comando ST_Multi(..) esterno.

A.



Il giorno 12 maggio 2018 14:12, Massimiliano Moraca <
[hidden email]> ha scritto:

> Andrea grazie per la risposta, si se puoi mi invieresti un esempio?
>
> Il giorno 12 maggio 2018 14:04, Andrea Peri <[hidden email]> ha
> scritto:
>
>> Il fatto ch emerga una collezione a fronte di una elaborazione, non è un
>> difetto , ma una logica conseguenza matematica causata dalle geometrie
>> coinvolte causata anche dal fatto che si opera in un ambiente a precisione
>> finita.
>>
>> La.makevalid devi nidificarla con quella che forza unancollection e poi
>> il tutto modificarlo in quella che estrae la componente poligonale dalla
>> collezione.
>>
>> Se serve posso inviarti la sequenza SQL.
>>
>> A.
>>
>>
>> Il Sab 12 Mag 2018, 13:52 Massimiliano Moraca <
>> [hidden email]> ha scritto:
>>
>>> Salve a tutti!
>>> Ho fatto una verifica topologica di un vettore poligonale che mi ha
>>> restituito una geometria non valida.
>>> Così sono passato in PostGIS ed ho provato ad usare lo script che segue
>>> per
>>> correggerlo:
>>>
>>> UPDATE perimetrazione
>>> SET geometry = ST_MakeValid(geometry);
>>>
>>> Il risultato però è stato il seguente:
>>>
>>> ERROR:  ERRORE:  Geometry type (GeometryCollection) does not match column
>>> type (MultiPolygon)
>>>
>>>
>>> SQL state: 22023
>>>
>>> Come faccio ad effettuare questa conversione di tipologia di colonna
>>> geometrica?
>>> In origine il vettore era in formato GeoPackage e chi ha editato il
>>> vettore
>>> lo ha fatto in quel formato e con QGIS 3. Il vettore l'ho creato io e
>>> gliel'ho passato(vuoto) con QGIS 2.18, la persona che sta eseguendo
>>> l'editing aveva la 2.14 e la prima volta che ho incontrato l'errore di
>>> sopra
>>> credevo dipendesse da una problematica della versione 2.14 perciò gli ho
>>> fatto installare la 3.
>>>
>>> -----
>>> Ingegnere, consulente GIS e ciclista urbano
>>> --
>>> Sent from: http://gfoss-geographic-free-and-open-source-software-italia
>>> n-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
>>
>>
>


--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------
_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: Problema GeometryCollection

Massimiliano Moraca
Grazie mille funziona e naturalmente si è risolto anche il problema in
editing.

Buona serata :)

Il giorno 12 maggio 2018 22:33, Andrea Peri <[hidden email]> ha
scritto:

> Ecco.
> Questa la ho adattata da quella che uso su spatialite.
>
> update tabella set geometry = ST_Multi(ST_CollectionExtract(
> ST_ForceCollection(ST_MakeValid(geometry)),3)) where
> ST_IsValid(geometry)=false;
>
> Se la geometria nel campo "geometry" e' polygon e non multipolygon, devi
> levare il comando ST_Multi(..) esterno.
>
> A.
>
>
>
> Il giorno 12 maggio 2018 14:12, Massimiliano Moraca <
> [hidden email]> ha scritto:
>
>> Andrea grazie per la risposta, si se puoi mi invieresti un esempio?
>>
>> Il giorno 12 maggio 2018 14:04, Andrea Peri <[hidden email]> ha
>> scritto:
>>
>>> Il fatto ch emerga una collezione a fronte di una elaborazione, non è un
>>> difetto , ma una logica conseguenza matematica causata dalle geometrie
>>> coinvolte causata anche dal fatto che si opera in un ambiente a precisione
>>> finita.
>>>
>>> La.makevalid devi nidificarla con quella che forza unancollection e poi
>>> il tutto modificarlo in quella che estrae la componente poligonale dalla
>>> collezione.
>>>
>>> Se serve posso inviarti la sequenza SQL.
>>>
>>> A.
>>>
>>>
>>> Il Sab 12 Mag 2018, 13:52 Massimiliano Moraca <
>>> [hidden email]> ha scritto:
>>>
>>>> Salve a tutti!
>>>> Ho fatto una verifica topologica di un vettore poligonale che mi ha
>>>> restituito una geometria non valida.
>>>> Così sono passato in PostGIS ed ho provato ad usare lo script che segue
>>>> per
>>>> correggerlo:
>>>>
>>>> UPDATE perimetrazione
>>>> SET geometry = ST_MakeValid(geometry);
>>>>
>>>> Il risultato però è stato il seguente:
>>>>
>>>> ERROR:  ERRORE:  Geometry type (GeometryCollection) does not match
>>>> column
>>>> type (MultiPolygon)
>>>>
>>>>
>>>> SQL state: 22023
>>>>
>>>> Come faccio ad effettuare questa conversione di tipologia di colonna
>>>> geometrica?
>>>> In origine il vettore era in formato GeoPackage e chi ha editato il
>>>> vettore
>>>> lo ha fatto in quel formato e con QGIS 3. Il vettore l'ho creato io e
>>>> gliel'ho passato(vuoto) con QGIS 2.18, la persona che sta eseguendo
>>>> l'editing aveva la 2.14 e la prima volta che ho incontrato l'errore di
>>>> sopra
>>>> credevo dipendesse da una problematica della versione 2.14 perciò gli ho
>>>> fatto installare la 3.
>>>>
>>>> -----
>>>> Ingegnere, consulente GIS e ciclista urbano
>>>> --
>>>> Sent from: http://gfoss-geographic-free-and-open-source-software-italia
>>>> n-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
>>>
>>>
>>
>
>
> --
> -----------------
> Andrea Peri
> . . . . . . . . .
> qwerty àèìòù
> -----------------
>
_______________________________________________
[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
Ingegnere, consulente GIS e ciclista urbano