Gabungkan atribut titik dan garis lapisan berdasarkan lokasi (jarak terdekat) di QGIS

13

Masalah saya adalah sebagai berikut: saya punya garis shp (target layer) dan titik shp (join layer). yang kedua (layer point) memiliki atribut yang ingin saya gabungkan dengan layer garis berdasarkan jarak terdekat dengan garis. Poin dan garis tidak berpotongan

Saya bisa melakukan ini dengan ArcGIS dan join spasial (opsi pertandingan: terdekat), tetapi saya tidak tahu bagaimana saya bisa mencapai ini di QGIS.

Miha Požauko
sumber
3
Ada alat untuk melakukan Bergabung dengan lokasi tetapi tidak memiliki opsi "terdekat". Saya tidak tahu apakah ada solusi. Secara umum tolong evaluasi untuk mendukung pengembangan opsi / alat favorit Anda yang hilang, juga dengan cara ini pengguna dapat membantu perangkat lunak ini tumbuh.
Giovanni Manghi

Jawaban:

8

Saya tidak berpikir ada fungsi QGIS 'inti' untuk ini. Namun, instal plugin MMQGIS, dan gunakan alat 'jarak hub'. Pilih poin Anda sebagai layer "Source Points", dan baris Anda sebagai "Layer Hub Tujuan" dan set "Jenis Bentuk Output" menjadi "Line ke Hub." Ini akan memberi Anda shapefile garis (dengan panjang) yang bergabung dengan fitur terdekat. Mudahnya, ia juga menambahkan ID fitur terdekat ke tabel atribut.

Sunting / Komentar: Pendekatan ini berfungsi dengan baik jika ada lebih sedikit poin daripada garis, atau situasi satu lawan satu. Memiliki lebih banyak poin daripada garis mempersulit. Alat 'Hub Distance' menambahkan ID fitur garis ke tabel atribut titik sebagai 'HubName' bersama dengan jarak antara titik dan pusat garis sebagai 'HubDist'. Jika ada lebih banyak titik daripada garis, pekerjaan tambahan diperlukan untuk menentukan dalam setiap subset titik (beberapa catatan yang ditautkan ke setiap hub garis) yang mana yang paling dekat dengan setiap garis, dan / atau yang merupakan satu dengan rangkaian yang diinginkan atribut untuk bergabung ke garis.

Darren Cope
sumber
ini harus ditandai sebagai jawabannya, tunduk pada pengeditan kecil "baris" v "poin"
Willy
1
"Jarak hub" bukan alat yang tepat jika "jarak terdekat ke garis" adalah kriteria. Kode mmqgis mengungkapkan bahwa jarak hub menggunakan perkiraan geometri "hub". Perhitungan jarak (mmqgis_distance) mengambil dua poin sebagai parameter. Berikut adalah kode yang melakukan perkiraan geometri hub di mmqgis_library.py: "feature.geometry (). BoundingBox (). Center ()". Ini berarti bahwa pusat kotak pembatas geometri digunakan sebagai pengganti geometri nyata. Jadi jika "jarak terdekat ke garis" adalah kriteria, GRASS v.distance atau plugin NNJoin lebih cocok.
Håvard Tveite
5

Fungsi GRASS v.distance dapat digunakan untuk ini. Di QGIS Anda dapat mengakses fungsi melalui plugin GRASS ( versi Pemrosesan saat ini tidak berfungsi). The NNJoin QGIS Plugin mungkin menjadi alternatif yang lebih sederhana.

Håvard Tveite
sumber
3

Plugin NNJoin tidak pernah mengecewakan saya dan bekerja dengan baik dengan kumpulan data besar .

Plugins> Instal: NNJoin> NNJoin> pilih layer input dan gabung layer> Kemudian klik join.

Periksa hasil dari lapisan keluaran baru dengan tabel atribut. Peringatan: pastikan kedua layer Anda menggunakan proyeksi spasial yang sama jika tidak, hasil Anda akan kosong.

Matthew Bayly
sumber
2

Pada 2019 ini dimungkinkan dengan alat QGIS 3 Zanzibar 'Gabung atribut dengan yang terdekat'. Alat ini memungkinkan Anda menemukan fitur terdekat dan bergabung dengan atribut yang dipilih. Anda juga dapat melakukan penggabungan satu-ke-banyak, jika Anda menentukan jarak maks dan tetangga terdekat maks.

mauegraus
sumber