RE: [Portugal] Re: Erro do shp2pgsql no carregamento de shapefile de polígonos

Duarte Carreira DCarreira at edia.pt
Thu Jun 24 04:40:40 EDT 2010


João,

Não sei se alguém já sugeriu isto, mas em QGIS há um plugin bem melhor que o SPIT - PostGIS Manager, que oferece uma interface de importação de shapefiles muito completa (permite adicionar a tabelas existentes, e criar o GiST, e cria o gid), para além de oferecer uma interface de gestão da bd muito competente (incluindo janela de SQL).

Duarte


-----Mensagem original-----
Date: Tue, 22 Jun 2010 20:19:40 +0100
From: Jo?o Paulo Hespanha <jphespanha  gmx.com>
Subject: [Portugal] Re: Erro do shp2pgsql no carregamento de shapefile
        de pol?gonos
To: portugal  lists.osgeo.org
Message-ID: <1277234380.2268.57.camel  JPHUbuntu>
Content-Type: text/plain; charset="utf-8"

Sr.ªs e Sr.s,
Caro Luís de Sousa:

Não posso dizer que tenha uma solução para o shp2pgsql, mas tenho alguns modos de contornar o problema.

Seguindo os conselhos do Luís de Sousa, chamei a shape em erro para o QGIS e de seguida tentei usar o SPIT (Ferramenta de importação de Shape para PostGIS). Esta importação não deu resultado para a SRID 9102160 que estou a usar, mas resultou com o SRID por omissão (-1 !?). Este é mais um problema, desta vez do lado do SPIT.

Reparei entretanto que dos 609 polígonos, o SPIT importou apenas 608 para o PostGIS. Consultando a tabela de atributos, acabei por descobrir esse erro, bem como outros inesperados.

O polígono que causava o crash do shp2pgsql tinha SHAPE_Leng = 0.0 e SHAPE_Area = 0.0, isto é, não constituía um polígono regular.
Infelizmente, o programa não conseguia tratar este erro e acabava por parar. Por outro lado, o SPIT não parava, mas também não emitiu qualquer aviso.

Os erros inesperados não tinham que ver com os programas, mas com os próprios dados em si. Existiam 4 polígonos que não correspondiam a prédios. Eliminei por isso os 5 polígonos em erro e voltei a usar o shp2pgsql, que agora funcionou sem problemas.

Em termos da criação do esquema, prefiro o shp2pgsql ao SPIT (apesar da interface simpática deste último), pois o shp2pgsql cria automaticamente uma chave serial (com sequência) e aceita sem problemas o SRID que acrescentei à tabela do spatial_ref_sys.

Finalmente, junto duas capturas de ecrã: a primeira mostra a configuração do SPIT que não resultou devido ao SRID usado; a segunda mostra como o uDIG reagiu à selecção do polígono em erro (reparem na descrição das Layers e na escala).

Irei colocar um post na lista do PostGIS sobre esta questão com o shp2pgsql. Voltarei a colocar aqui quaisquer resultados, mas no entretanto já ficamos a saber uma das causas para erros deste programa.

Cordiais Saudações,
João Paulo Hespanha


More information about the Portugal mailing list