[QGIS-pt] PostGIs - actualizar geometria para multipoligono

Viva,

Tenho uma tabela em que a coluna da geometria é do tipo "geometry"
(parece-me ser um tipo genérico de geometria)
geom.PNG <http://osgeo-org.1560.x6.nabble.com/file/n5221180/geom.PNG&gt;

pretendia colocá-la como multipoligono e para isso estou a fazer isto
ALTER TABLE processos
ALTER COLUMN "geom" type geometry(multipolygon)
USING(St_Multi(geom));

obtenho este erro:
ERROR: Geometry type (GeometryCollection) does not match column type
(MultiPolygon)

Alguém sabe de que forma posso a alterar a geometria para multipoligono (ou
mesmo poligono)?

obrigado,
Pedro

P.S. Por curiosidade, quando carrego esta tabela no QGIS tenho isto nos
Metadados:
*Fonte para esta camada*
dbname='spo' host=*** port=*** user='***' sslmode=disable key='tid'
srid=4326 type=MULTIPOLYGON table="public"."processos" (geom) sql=
*Tipo de geometria dos elementos nesta camada*
Polygon

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/PostGIs-actualizar-geometria-para-multipoligono-tp5221180.html
Sent from the QGIS-pt mailing list archive at Nabble.com.

Olá,

o Pedro já tem objectos de tipo “collection” na tabela “processos”.

select count(*),st_geometrytype(geom) from processos group by st_geometrytype(geom)

Abr

···

2015-08-26 13:30 GMT+01:00 Pedro <pedro.ferro@gmail.com>:

Viva,

Tenho uma tabela em que a coluna da geometria é do tipo “geometry”
(parece-me ser um tipo genérico de geometria)
geom.PNG <http://osgeo-org.1560.x6.nabble.com/file/n5221180/geom.PNG>

pretendia colocá-la como multipoligono e para isso estou a fazer isto
ALTER TABLE processos
ALTER COLUMN “geom” type geometry(multipolygon)
USING(St_Multi(geom));

obtenho este erro:
ERROR: Geometry type (GeometryCollection) does not match column type
(MultiPolygon)

Alguém sabe de que forma posso a alterar a geometria para multipoligono (ou
mesmo poligono)?

obrigado,
Pedro

P.S. Por curiosidade, quando carrego esta tabela no QGIS tenho isto nos
Metadados:
Fonte para esta camada
dbname=‘spo’ host=*** port=*** user=‘***’ sslmode=disable key=‘tid’
srid=4326 type=MULTIPOLYGON table=“public”.“processos” (geom) sql=
Tipo de geometria dos elementos nesta camada
Polygon


View this message in context: http://osgeo-org.1560.x6.nabble.com/PostGIs-actualizar-geometria-para-multipoligono-tp5221180.html
Sent from the QGIS-pt mailing list archive at Nabble.com.


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

Obrigado pela ajuda Fred.

não sei bem como mas realmente tenho 8 geometrias na tabela que são
"collection"

há forma de eu transformar estas geometrias tipo "collection" em
multipolygon?

obrigado
Pedro

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/PostGIs-actualizar-geometria-para-multipoligono-tp5221180p5221224.html
Sent from the QGIS-pt mailing list archive at Nabble.com.

Pode usar o comando st_dump (http://postgis.net/docs/ST_Dump.html) para ver e filtrar o conjunto de geometrias.
O st_geometryN pode ajudar para extrair uma geometry de uma colecção.

Mas devia tentar ver a geometry destes registo no qgis (o wkt) porque ele possivelmente filtra ao abrir sendo que ele reconhe a tabela como multiplygon. Poderá simplificar a limpeza…

Fred

···

2015-08-26 15:40 GMT+01:00 Pedro <pedro.ferro@gmail.com>:

Obrigado pela ajuda Fred.

não sei bem como mas realmente tenho 8 geometrias na tabela que são
“collection”

há forma de eu transformar estas geometrias tipo “collection” em
multipolygon?

obrigado
Pedro


View this message in context: http://osgeo-org.1560.x6.nabble.com/PostGIs-actualizar-geometria-para-multipoligono-tp5221180p5221224.html

Sent from the QGIS-pt mailing list archive at Nabble.com.


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

Ok Fred vou tentar fazer o que disse.

Aproveito a disponibilidade para por mais uma dúvida:

Eu tenho a tabela com as 2 colunas (nome, geom)
<http://osgeo-org.1560.x6.nabble.com/file/n5221266/geom.png&gt;

Tenho registos na coluna 'nome' que se repetem a que correspondem geometrias
diferentes.
Pretendia que concatenar as diversas geometrias que correspondem ao mesmo
'nome', de forma a que a um 'nome' pudesse ter as várias geometrias.

Há alguma forma mais ou menos expedita de fazer isto?

Agradeço a paciencia de aturar alguém que é bastante básico :slight_smile:

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/PostGIs-actualizar-geometria-para-multipoligono-tp5221180p5221266.html
Sent from the QGIS-pt mailing list archive at Nabble.com.

Agregar:

select nome,st_collect(geom) from tabela group by nome

(user st_union caso querer dissolver e recriar as geometrias)

http://postgis.net/docs/manual-1.4/ST_Collect.html

···

2015-08-26 17:33 GMT+01:00 Pedro <pedro.ferro@gmail.com>:

Ok Fred vou tentar fazer o que disse.

Aproveito a disponibilidade para por mais uma dúvida:

Eu tenho a tabela com as 2 colunas (nome, geom)
<http://osgeo-org.1560.x6.nabble.com/file/n5221266/geom.png>

Tenho registos na coluna ‘nome’ que se repetem a que correspondem geometrias
diferentes.
Pretendia que concatenar as diversas geometrias que correspondem ao mesmo
‘nome’, de forma a que a um ‘nome’ pudesse ter as várias geometrias.

Há alguma forma mais ou menos expedita de fazer isto?

Agradeço a paciencia de aturar alguém que é bastante básico :slight_smile:


View this message in context: http://osgeo-org.1560.x6.nabble.com/PostGIs-actualizar-geometria-para-multipoligono-tp5221180p5221266.html

Sent from the QGIS-pt mailing list archive at Nabble.com.


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

Parece-me que é isso mesmo que procuro !
Esse select parece-me retornar aquilo que pretendo

Tentei transformar esse select num update à tabela (processos) mas não
consegui....
Fiz assim

UPDATE processos
SET geom =
(select nome,st_collect(geom) from processos group by nome)

tem ideia onde tenho o erro?
Fred Lehodey wrote

Agregar:

select nome,st_collect(geom) from tabela group by nome

(user st_union caso querer dissolver e recriar as geometrias)

http://postgis.net/docs/manual-1.4/ST_Collect.html

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/PostGIs-actualizar-geometria-para-multipoligono-tp5221180p5221281.html
Sent from the QGIS-pt mailing list archive at Nabble.com.

mais simples é criar uma nova tabela:
create table processos_agg as (select…)

···

2015-08-26 18:17 GMT+01:00 Pedro <pedro.ferro@gmail.com>:

Parece-me que é isso mesmo que procuro !
Esse select parece-me retornar aquilo que pretendo

Tentei transformar esse select num update à tabela (processos) mas não
consegui…
Fiz assim

UPDATE processos
SET geom =
(select nome,st_collect(geom) from processos group by nome)

tem ideia onde tenho o erro?
Fred Lehodey wrote

Agregar:

select nome,st_collect(geom) from tabela group by nome

(user st_union caso querer dissolver e recriar as geometrias)

http://postgis.net/docs/manual-1.4/ST_Collect.html


View this message in context: http://osgeo-org.1560.x6.nabble.com/PostGIs-actualizar-geometria-para-multipoligono-tp5221180p5221281.html

Sent from the QGIS-pt mailing list archive at Nabble.com.


QGIS-pt mailing list
QGIS-pt@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt