Saya memiliki beberapa proyek QGIS yang telah saya gunakan untuk waktu yang lama, menambah dan menghapus lapisan, memperbarui referensi ke file yang dihapus atau dipindahkan dll.
Membuka file qgs dengan editor teks saya melihat bahwa itu berisi banyak referensi untuk file yang berbeda, dan referensi ini tidak ditampilkan di panel Layer tree.
Saya memiliki tiga kasus berbeda: referensi ke file yang ada, referensi ke file yang hilang, referensi ke koneksi database. Saya menyadari hal ini ketika saya membuka proyek saya di komputer lain, dan QGIS melaporkan koneksi database yang hilang ke tabel vektor yang tidak ada dalam tampilan lapisan pohon.
Menghapus referensi dari file qgs secara manual memecahkan masalah, tapi saya mengelola proyek besar dan hampir mustahil untuk secara manual memeriksa konsistensi proyek. Saya sudah mencoba plugin "Hapus lapisan kosong", tetapi yang saya coba hapus bukan lapisan kosong.
Apakah ada cara untuk 'membersihkan' file qgis?
sumber
Setting--> Project Properties-->save paths-->relative
Cheers NJawaban:
Layer-layer yang dimaksud ada di dalam layer registry tetapi tidak ada dalam legenda .
Skrip python berikut menghapus semua lapisan yang dimuat, tetapi tidak ditampilkan dalam legenda.
Menghapus lapisan:
Itu harus dijalankan dari konsol python di dalam QGIS. Setelah menerapkannya, Anda dapat memverifikasi operasi dengan memeriksa bahwa lapisan sudah hilang dari File (Project in 2.0) => Properti Proyek => Lapisan yang dapat diidentifikasi . Perubahan tidak disimpan secara otomatis
Dengan menambahkan baris berikut di akhir, perubahan juga akan disimpan secara otomatis.
Silakan buat salinan cadangan file proyek Anda (.qgs) sebelum menimpa file proyek Anda setelah menerapkan skrip ini.
Untuk QGIS 1.8, baris berikut harus dijalankan terlebih dahulu:
sumber
Selain banyak fungsi bermanfaat lainnya, plugin bernama " Layer Board " (tersedia di dalam installer Plugin) memiliki tombol bawaan untuk "Remove ghost layers" yang menyelesaikan masalah ini.
Selain tombol 1-klik untuk menghapus layer ghost, ini juga memungkinkan Anda untuk melihat dan menghapus layer individual dalam GUI yang bagus yang berisi daftar setiap layer dan propertinya. Anda dapat memilih salah satu dari masing-masing lapisan ini dari tabel dan klik tombol "Hapus Lapisan" untuk menyelesaikan setiap masalah satu per satu, jika Anda memilih.
Dalam kasus saya, kemampuan untuk menghapus referensi lapisan individu sangat penting, karena saya memiliki beberapa "lapisan hantu" yang memiliki nama yang sama tetapi direferensikan 2-3 kali dalam registri. Saya menggunakan papan layer untuk menghapus entri yang benar secara individual dan kembali ke referensi lapisan tunggal yang benar.
sumber