[QGIS-pt] QGIS não lê tabela PostGIS

Oi!!

Parece que anda por aí uma onda de mistérios com o QGIS e PostGIS. LOL

Tenho uma tabela do PostGIS, que através do PgAdmin acede-se e encontra-se
tudo bem, que está publicada no geoserver e cuja previsualização aparece
bem.
Acontece que quando adicionada no QGIS não é desenhado no mapa nenhum
elemento, a tabela de atributos aparecem sem uma única linha de registos,
mas se usarmos a ferramenta identificar aparece o limite vermelho e o
atributo (ver imagem).
<http://osgeo-org.1560.x6.nabble.com/file/n5186784/ordenamento.jpg&gt;
Se adicionar o WMS ou o WMF já está tudo ok!

Depois de ver o problema do Duarte fui verificar e no postgis o tipo de
geometria está registado como GEOMETRY. No entanto o QGIS consegue
determinar o tipo de geometria pois na janela de propriedades da camada, os
metadados indicam geometria do tipo poligono.

Vale a pena alterar a tabela de modo a registar o tipo específico de
geometria no PostGIS? Como posso fazer isso? Faz-me confusão ser esse o
problema (é que tenho todas a tabelas geográficas assim) pois tal acontece
adicionando a coluna da geometria usando o ADDGEOMETRYCOLUMN.

Um aspecto importante, tal aconteceu após editar poligonos que tinham alguns
erros de delimitação.
Através da função ST_IsValid sei que existe um poligono inválido. Tentei
corrigir usando a função ST_Buffer, com um offset 0, mas obtive:
NOTICE: IllegalArgumentException: Invalid number of points in LinearRing
found 3 - must be 0 or >= 4
NOTICE: IllegalArgumentException: Invalid number of points in LinearRing
found 3 - must be 0 or >= 4

Alguém me consegue dar umas luzes sobre o que posso fazer para resolver este
problema?

Obrigada
Sandra

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/QGIS-nao-le-tabela-PostGIS-tp5186784.html
Sent from the QGIS-pt mailing list archive at Nabble.com.

Olá Sandra,

é provável existir geometrias inválidas na sua tabela e cada software tem a sua “capacidade de digerir” isto…
Pode verificar no postgis com:
(ver http://postgis.net/docs/ST_IsValid.html)

Select count(*) from tabela where st_isvalid(geom) is false;

É possível ter mais pormenores sobre geometrias invalidas:

select st_IsValidReason(geom) from tabela where st_isvalid(geom) is false;

(ver http://postgis.net/docs/ST_IsValidReason.html)

Se tiver erros, poderá tentar corrigir de forma automática com:
(ver http://postgis.net/docs/manual-2.0/ST_MakeValid.html)

Update tabela set geom = st_makevalid(geom) where st_isvalid(geom) is false;

Fred

···

2015-02-11 12:33 GMT+00:00 Sandra Lopes <sandramnlopes@gmail.com>:

Oi!!

Parece que anda por aí uma onda de mistérios com o QGIS e PostGIS. LOL

Tenho uma tabela do PostGIS, que através do PgAdmin acede-se e encontra-se
tudo bem, que está publicada no geoserver e cuja previsualização aparece
bem.
Acontece que quando adicionada no QGIS não é desenhado no mapa nenhum
elemento, a tabela de atributos aparecem sem uma única linha de registos,
mas se usarmos a ferramenta identificar aparece o limite vermelho e o
atributo (ver imagem).
<http://osgeo-org.1560.x6.nabble.com/file/n5186784/ordenamento.jpg>
Se adicionar o WMS ou o WMF já está tudo ok!

Depois de ver o problema do Duarte fui verificar e no postgis o tipo de
geometria está registado como GEOMETRY. No entanto o QGIS consegue
determinar o tipo de geometria pois na janela de propriedades da camada, os
metadados indicam geometria do tipo poligono.

Vale a pena alterar a tabela de modo a registar o tipo específico de
geometria no PostGIS? Como posso fazer isso? Faz-me confusão ser esse o
problema (é que tenho todas a tabelas geográficas assim) pois tal acontece
adicionando a coluna da geometria usando o ADDGEOMETRYCOLUMN.

Um aspecto importante, tal aconteceu após editar poligonos que tinham alguns
erros de delimitação.
Através da função ST_IsValid sei que existe um poligono inválido. Tentei
corrigir usando a função ST_Buffer, com um offset 0, mas obtive:
NOTICE: IllegalArgumentException: Invalid number of points in LinearRing
found 3 - must be 0 or >= 4
NOTICE: IllegalArgumentException: Invalid number of points in LinearRing
found 3 - must be 0 or >= 4

Alguém me consegue dar umas luzes sobre o que posso fazer para resolver este
problema?

Obrigada
Sandra


View this message in context: http://osgeo-org.1560.x6.nabble.com/QGIS-nao-le-tabela-PostGIS-tp5186784.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

2015-02-11 13:02 GMT+00:00 Fred Lehodey <lehodey@gmail.com>:

Olá Sandra,

é provável existir geometrias inválidas na sua tabela e cada software tem a
sua "capacidade de digerir" isto...

parece-me de qualquer forma estranho que o QGIS não mostre nada.

Sandra, acontece numa versão anterior do QGIS? Podes disponibilizar o
Dump da tabela (só da tabela, mais nada)?

(ver http://postgis.net/docs/manual-2.0/ST_MakeValid.html)

exacto, já náo é necessario recorrer ai truque do buffer=0,
st_makevalid é muito melhor.

-- G --