Perlu Menambahkan Beberapa Lapisan Dengan Cepat Dari Beberapa Folder ke Proyek QGIS

12

Saya telah mengunduh beberapa file Zip citra (masing-masing isinya jp2, jpg, jpw, xml, htm, dan .dbf, .prj, .sbn, .sbx, .shp, .shx) dan ingin dengan cepat menambahkan citra ini ke proyek kerja saya di QGIS 2.6.1. Saya berusaha menghindari keharusan menavigasi ke dan menambahkan setiap file secara terpisah. Karena setiap file berada di folder yang berbeda, saya belum dapat menemukan cara untuk menambahkan beberapa file sekaligus.

reevesii
sumber
Jadi Anda memiliki file zip di folder Anda atau Anda sudah mengekstrak konten file zip? Saya menguraikan jawaban untuk kasus terakhir. Saya khawatir kasus sebelumnya akan membutuhkan sedikit skrip (Python).
Germán Carrillo
Saya sudah mengekstraksi konten.
reevesii

Jawaban:

23

Yang Anda butuhkan adalah plugin QGIS Load Them All . Selain memuat file dari beberapa direktori sekaligus, Anda dapat:

  • Refleksikan struktur direktori dalam Daftar Isi QGIS (dengan cara grup lapisan bersarang).
  • Terapkan filter alfanumerik sehingga Anda hanya memuat layer yang cocok dengan filter Anda (pikirkan persamaan reguler).
  • Muat hanya tipe geometri atau raster tertentu (mis., Hanya vektor poligon atau raster Multiband).
  • Muat hanya ekstensi file tertentu (mis., Hanya file .shp).
  • Muat hanya lapisan yang terletak di dalam atau yang memotong kotak pembatas yang diberikan.

dan lainnya. Lihat https://github.com/gacarrillor/loadthemall untuk detail lebih lanjut.

masukkan deskripsi gambar di sini

Germán Carrillo
sumber
@ Germán Carrillo Sepertinya ini adalah plugin yang sempurna untuk kebutuhan saya, namun ketika saya mencoba memuat file, saya mendapatkan kesalahan: "Tidak ada file KML untuk di-load dari basis direktori dengan filter ini. Ubah parameter tersebut dan coba lagi". Saya menggunakan QGIS 2.14.2, semua filter dimatikan dan peta yang saya pilih berisi dua peta dengan masing-masing file kml (hanya untuk menguji, saya memiliki dataset yang lebih besar untuk diimpor).
Hannes Ledegen
@HannesLedegen Apakah Anda mencoba dengan filter 'Interesects' alih-alih 'Contains'? Jika itu tidak berhasil, silakan buka masalah baru di halaman GitHub dari proyek, menjelaskan semuanya secara rinci.
Germán Carrillo
2

Sebagai alternatif untuk menggunakan plugin, Anda dapat memberikan perintah Add Layer daftar file yang dipisahkan koma. Anda dapat membuat daftar seperti itu dengan cara berikut:

cd /d <Path_to_the_directory_where_your_files_are>
dir *.shp /s /b >All.txt

Ini memberi Anda nama file All.txt, yang berisi path ke semua file dengan ekstensi tertentu (Anda dapat menggunakan topeng yang berbeda tergantung pada file yang Anda miliki), di mana setiap file berada di baris baru.

D:\Data\01\data01_1.shp
D:\Data\01\data01_2.shp
D:\Data\02\data02_1.shp
D:\Data\02\data02_2.shp

Kemudian cukup ganti semua baris baru dengan ;menggunakan editor teks (seperti Notepad ++ ) dan rekatkan hasilnya dalam Add Vector Layer...dialog.

Untuk Notepad ++ Anda perlu mengubah mode ganti ke Diperpanjang dan ganti \r\ndengan ;. Anda akan mendapatkan file yang terlihat seperti ini:

D:\Data\01\data01_1.shp;D:\Data\01\data01_2.shp;D:\Data\02\data02_1.shp;D:\Data\02\data02_2.shp
Alex
sumber
0

Di Linux, Anda dapat mengekstrak daftar .shpfile dan memasukkannya langsung ke dialog "Impor Vektor":

#on the command line
ls /home/yourpath/*/*shp|tr "\n" '@'|sed 's/@/" "/g'|sed 's/^/"/g'

masukkan deskripsi gambar di sini

Saya menemukan ini berguna di bawah QGIS Docker , karena beberapa alasan plugin "Load Them All" tidak menampilkan dialognya.

RafDouglas
sumber