Saya mencoba membuat join / relate di QGIS di mana saya memiliki shapefile bangunan dan saya ingin bergabung dengan tabel non-spasial (.csv) yang berisi orang-orang yang bekerja di setiap bangunan. Jadi saya memiliki beberapa catatan di meja saya yang saya ingin dapat bergabung dengan fitur tunggal saya di shapefile saya. Saya hanya bisa menjalankan gabungan di QGIS di mana catatan pertama bergabung dengan fitur shapefile (yaitu bangunan) tetapi catatan selanjutnya bisa dihapus.
Bisakah seseorang memberi tahu saya cara menyelesaikan ini bergabung / berhubungan di QGIS?
qgis
attribute-joins
Mick
sumber
sumber
Jawaban:
Saya memecahkan masalah ini menggunakan QGIS 1.7.0 dengan pertama-tama menyimpan layer vektor sebagai tabel comma separated values (CSV) dengan bidang geometri dikonversi menjadi teks yang terkenal. Untuk melakukan ini, bidang layer dari dialog "Simpan layer vektor sebagai ..." harus membaca GEOMETRI = AS_WKT untuk membuat bidang teks geometri yang terkenal dengan kolom bernama WKT.
File geometri CSV kemudian bergabung ke tabel atribut non geometri dalam gabungan satu-ke-banyak di bawah properti yang bergabung dengan tab pada tabel atribut non geometri.
Gabung yang dihasilkan disimpan sebagai file CSV geometri lain.
Ketika tabel ini dibuka di QGIS, setiap catatan atribut diwakili oleh geometri vektor yang sesuai.
Dalam melakukan semua ini saya menemukan bahwa The Delimited Text Plugin tidak diperlukan untuk membuka file geometri CSV jika pembatasnya adalah koma dan bidang geometri WKT bernama WKT.
Untuk detail tentang bagaimana hal ini dilakukan silakan lihat tutorial saya di http://georgiawildlife.com/node/2849 .
sumber
ogr2ogr
untuk membuat file CSV dari Shapefile. Kemudian skrip R sederhana untuk menggabungkan file pada bidang umum yang saya inginkan dan menulis kembali ke CSV. Kemudianogr2ogr
lagi untuk membuat shapefile gabungan.Gabungan yang dibuat di lapisan lapisan hanya menambah kolom ke fitur yang ada. Jika layer vektor hanya memiliki 160 fitur, gabungan tidak dapat menambah jumlah fitur!
Gunakan fitur lapisan virtual sebagai gantinya. Menawarkan SQL / database-like nyata. Sebagai contoh, lihat posting terakhir saya: Multiples kecil untuk peta aliran OD menggunakan lapisan virtual
sumber
Di QGIS 1.7 ada mesin baru untuk Bergabung (Anda menemukannya di properti vektor).
Tabel tanpa geometri sekarang dapat ditambahkan ke proyek seperti layer (vektor) lainnya.
sumber
Mulai dari versi 2.2 QGIS mendukung hubungan satu ke banyak. Tentukan mereka dalam Properti Proyek, bukan Properti Layer Vector. Dan kemudian catatan terkait akan muncul di Tabel Atribut lapisan atau Identifikasi Hasil melalui formulir.
Lihat jawaban dan tautan ke panduan yang bagus di sini .
sumber
Apakah bergabung di LibreOffice Base.
Anda tidak dapat mengatasi kenyataan bahwa Anda mencoba mengelola hubungan 1 dengan banyak orang.
Untuk non-spasial ke non-spasial, ada baiknya upaya untuk belajar. Saya menemukan trik terbesar adalah memastikan bidang atribut bergabung memiliki istilah yang persis sama.
Buka data yang terletak spasial sebagai layer dalam QGIS, lalu Anda pilih semua catatan dalam tabel atribut di QGIS (hapus pilihan, invert seleksi) dan salin ini ke lembar baru di LibreOffice Calc. Anda akan menemukan bidang pertama adalah WKT, yang merupakan deskripsi fitur yang dapat digunakan secara universal di GIS. Calc akan memberi Anda dialog untuk mengimpor tabel yang disisipkan, pilih tab yang dibatasi, pastikan koma tidak dicentang karena akan mengunyah bidang WKT menjadi bit. Kemudian sorot tabel ini di Calc, beralih ke Basis, sorot ikon Tabel di sebelah kiri dan tempel. Basis akan melalui dialog untuk mengimpor tabel. Bidang WKT dapat dipertahankan melalui gabungan dan ketika file diimpor kembali ke QGIS sebagai .csv ini digunakan untuk memindahkan fitur. Ingat saja proyeksi.
Dengan cara itu Anda akan memiliki kontrol penuh dari gabung dan dapat melakukannya secara "terbalik". Untuk melakukan penggabungan di Base memastikan bidang data unik (1) adalah kunci utama dan kemudian Anda arahkan ke "banyak" jika Anda terbiasa dengan konsep 1 ke banyak atau 1 ke n. Bergabung diatur dengan membuat hubungan | ALAT |. Seperti yang saya sebutkan, Anda mungkin ingin menendang seseorang ketika Anda menemukan bidang bergabung memiliki informasi yang sama tetapi telah menggunakan teks atau sintaks yang berbeda untuk mewakilinya.
hth
sumber
Saya tidak berpikir ini mungkin untuk menghubungkan tabel dengan hubungan 1 ke banyak di QGIS. Sebagai alternatif, Anda mungkin ingin mencoba gvSIG. Di sini Anda dapat membuat 1 hingga banyak tautan. Setelah membuat tautan, memilih fitur di peta akan menyoroti semua catatan terkait dalam tabel yang ditautkan.
sumber