Saya memiliki lebih dari seratus lapisan data dalam format shapefile yang ingin saya unggah ke dalam database PostGIS. Mereka semua dalam proyeksi yang sama, tetapi mewakili lapisan data yang berbeda sehingga mereka tidak memiliki skema yang sama.
Apa cara paling efektif waktu untuk mengonversi semua file ini secara massal ke dalam database PostGIS saya (di windows 7 OS)?
UPDATE: Mengimpor secara massal di pgAdmin3 "Pengunggah shapefile PostGIS" (sebagaimana disebutkan di bawah) sekarang tersedia secara default dengan PostGIS 2.0 .
Jawaban:
Jika ingin tetap menggunakan GUI maka pgAdmin versi terbaru memiliki Shapefile Loader yang dapat digunakan sebagai beban massal
sumber
Jika Anda memiliki komputer Windows, Anda dapat menggunakan yang baik
CMD.EXE
dengan beberapa for-loop esoterik. Pastikan Anda melakukan ini di direktori "berisi" dengan hanya file shp / sql yang perlu Anda muat.Langkah pertama, buat file SQL loader (Saya juga berasumsi Anda memiliki data Lat / Long WGS84 dengan 4326 .. perbarui ini ke SRS Anda):
Kemudian periksa file SQL Anda untuk memastikan mereka terlihat baik, kemudian lakukan perulangan serupa:
The
bash
setara untuk POSIX rakyat (Linux, Mac OS X, dll) adalah sesuatu seperti:kemudian
atau kedua bagian disalurkan ke satu loop tunggal, jika Anda tidak perlu menyimpan
.sql
file sementara :sumber
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
>
redirect, karena ini akan merusak bagian|
pipa), selama Anda yakin SQL yang diteruskan ke psql sudah benar. Saya berpendapat bahwa ini tidak lebih baik, karena tidak ada catatan data dalam format SQL.Anda juga dapat menggunakan perintah tunggal ini yang membantu dalam perulangan jauh lebih mudah dan juga tidak perlu membuat .sql secara terpisah,
sumber
Anda mungkin juga ingin melihat SPIT , yang merupakan plugin loader PostGIS untuk QGIS
sumber