Postgis'e çoklu şekil dosyalarını toplu olarak yükleme


11

shp2pgsqlYardıma göre , bırakma , ekleme , oluşturma ve hazırlama seçenekleri birbirini dışlar. Dolayısıyla, bir şekilden bir tablo oluşturmak ve daha sonra birden fazla şekil dosyası eklemek istersem, aşağıdaki gibi bir şey yaparım ve oluşturma veya ekleme modunda olup olmadığımızı belirtmek için bir sayaç tutarım.

cnt=0
for shp in $(ls *.shp); do

if [ $cnt -eq  0 ]  ; then

   shp2pgsql -s 27700 -c $shp schema.table_name | psql -h localhost db 

else

   shp2pgsql -s 27700 -a $shp schema.table_name | psql -h localhost db 

fi
((cnt++))
done

Bu beklendiği gibi çalışıyor, ancak daha basit bir yol olup olmadığını sık sık merak ettim?

Yanıtlar:


4

Eğer ogr2ogr komutunu kullanabiliyorsanız, ekleme yaparken oluşturma seçeneklerini yoksayarken ekleme seçeneklerini görmezden gelir.

for shp in $(ls *.shp);
do
  ogr2ogr -f "PostgreSQL" PG:dbname=databasename -append -a_srs 27700 -nln schema.table_name $shp
done

Veya komut satırındaki pencerelerde:

for /R %f in (*.shp) do ogr2ogr -f "PostgreSQL" PG:dbname=databasename -append -nln schema.table_name "%f"

1
Tabii, ogr2ogr çalışıyor. Basit bir çözüm olacağını düşündüm. Teşekkürler
John Powell
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.