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.
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 --