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 <[email protected]>
Subject: [Portugal] Re: Erro do shp2pgsql no carregamento de shapefile
        de pol?gonos
To: [email protected]
Message-ID: <1277234380.2268.57.ca...@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
_______________________________________________
Portugal mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/portugal

Responder a