Menghitung jarak minimum antara titik dan poligon di QGIS?

9

Saya memiliki dua lapisan vektor: satu titik dan satu poligon dan saya ingin menghitung jarak minimum setiap titik dari poligon (yaitu jarak dari titik terdekat dari poligon terdekat).

Apakah ada plugin yang tersedia di QGIS untuk melakukan ini?

Sylvia
sumber
1
maksud Anda simpul poligon, centroid atau sesuatu yang lain?
lynxlynxlynx
Tugas ini akan lebih baik ditangani oleh postgis.
Pablo
Maksud saya jarak dari batas poligon (sebenarnya jarak burung laut yang diamati di laut dari garis pantai yang ingin saya hitung)
Sylvia
Pablo, sayangnya saya tidak tahu cara menggunakan PostGIS dan saya tidak bisa menulis kode ...
Sylvia

Jawaban:

9

Mengubah poligon Anda menjadi poin adalah ide yang buruk. Anda tidak akan menghitung jarak ke poligon Anda, Anda akan menghitung jarak ke simpul terdekat dari poligon Anda (bukan tepi yang mungkin lebih dekat). Anda dapat menggunakan Plugin NNJoin untuk mendapatkan pengukuran yang akurat untuk poligon Anda. Pastikan layer Anda berada dalam proyeksi yang sama sebelum melakukan analisis.

gistutor
sumber
1
Plugin QGIS NNJoin akan menangani transformasi sistem koordinat. Tetapi Anda harus memastikan bahwa Anda menggunakan sistem koordinat yang diproyeksikan untuk dataset gabungan (dataset input akan ditransformasikan ke sistem koordinat dataset gabungan jika sistem koordinatnya berbeda).
Håvard Tveite
6

Jika Anda ingin menggunakan QGIS, fungsi GRASS v.distance di plugin GRASS harus melakukan pekerjaan itu. The NNJoin Plugin harus bekerja untuk dataset kecil, dan kurang praktis untuk digunakan.

The NNJoin Plugin menggunakan QgsGeometry.distance () fungsi (yang menggunakan GEOSdistance) untuk menghitung jarak.

Håvard Tveite
sumber
3

Konversikan poligon menjadi poin:

Vektor -> Alat Geometri -> Ekstrak Node

Tambahkan layer baru ini, lalu hitung matriks jarak antara layer titik Anda dan layer poin poligon baru yang baru saja Anda buat

Vektor -> Alat Analisis -> Distance Matrix

Pastikan untuk memilih "Gunakan hanya titik target terdekat (k)" sebagai 1

Brendan Nee
sumber
Ini adalah jawaban yang bagus untuk pertanyaan awal, tetapi sejak itu pertanyaan tersebut telah dimodifikasi dalam komentar. Ekstrak node dan Distance Matrix mungkin tidak menemukan tempat terdekat pada batas (tempat terdekat mungkin antara titik-titik polyline batas). GRASS v.distance atau plugin NNJoin akan melakukannya.
Håvard Tveite
2

Coba Jarak Hub di plugin MMQGIS.

http://michaelminn.com/linux/mmqgis/


Referensi:

Willy
sumber
2
Jarak hub berhasil, tetapi sebagai catatan, saya pertama-tama mengubah poligon menjadi lapisan titik dan menghitung jarak titik-ke-titik minimum. Dengan poligon itu menghitung jarak minimum dari centroid atau tengah batas pantai
Sylvia