Eu tenho mais de cem camadas de dados no formato shapefile que quero carregar em um banco de dados PostGIS. Eles estão todos na mesma projeção, mas representam diferentes camadas de dados para que não tenham o mesmo esquema.
Qual é a maneira mais econômica de converter todos esses arquivos em massa no meu banco de dados PostGIS (no sistema operacional Windows 7)?
ATUALIZAÇÃO: A importação em massa no pgAdmin3 "PostGIS shapefile uploader" (conforme observado abaixo) agora está disponível por padrão no PostGIS 2.0 .
Respostas:
Se você deseja manter uma GUI, a versão mais recente do pgAdmin possui o Shapefile Loader que pode ser usado como carregamento em massa
fonte
Se você possui um computador Windows, pode usar um bom visual
CMD.EXE
com alguns loops esotéricos. Certifique-se de fazer isso em um diretório "contido" apenas com os arquivos shp / sql que você precisa carregar.Primeira etapa, crie os arquivos do carregador SQL (eu também presumi que você tenha dados WGS84 Lat / Long com 4326 .. atualize isso para o seu SRS):
Em seguida, verifique seus arquivos SQL para garantir que eles tenham uma boa aparência e faça um loop semelhante:
O
bash
equivalente para o pessoal do POSIX (Linux, Mac OS X, etc) é algo como:então
ou ambas as partes conectadas em um único loop, se você não precisar manter os
.sql
arquivos provisórios :fonte
for f in *.shp do shp2pgsql -s 4326 %f public.'basename $f .shp' > 'basename $f .shp'.sql | psql -h myserver -d mydb -U myuser done
>
parte de redirecionamento, pois isso quebra a|
parte do pipe), desde que você tenha certeza de que o SQL passado para o psql está correto. Eu diria que isso não é melhor, já que não há registro dos dados no formato SQL.Você também pode usar este comando único, que ajuda o loop muito mais fácil e também não precisa criar .sql separadamente,
fonte
Você também pode querer dar uma olhada no SPIT , que é um plug-in do carregador PostGIS para o QGIS
fonte