Saya memiliki dua lapisan: lapisan titik yang mendefinisikan properti (95 objek), dan lapisan poligon yang mendefinisikan bidang tanah yang terkait dengan sifat-sifat tersebut (211 objek). Setiap titik berhubungan dengan satu atau lebih poligon. Apa yang ingin saya hasilkan adalah tabel jarak setiap titik ke SEMUA poligon yang terkait dengan titik itu (tepi terdekat atau centroid dari poligon - yang akan dilakukan). Menghitung jarak terdekat relatif mudah di QGIS dan ArcGIS, tetapi perhitungan itu menghilangkan semua poligon yang jauh, setidaknya dengan metode yang saya pakai. Idealnya saya ingin keluaran
Point_ID | distance to polygon 1 | distance to polygon 2 | distance to polygon 3 | etc.
Pointer apa pun di ArcGIS 10 atau QGIS 2.2+ akan sangat membantu.
Jawaban:
Anda dapat menggunakan Distance Matrix di QGIS untuk mencapai ini. Pertama-tama Anda perlu mengubah poligon Anda menjadi titik sentroid dengan Vector > Geometry Tools > Polygon centroids atau melalui versi SAGA dari poligon centroid. Alasan untuk ini adalah fungsi Distance Matrix hanya dapat menganalisis antara 2 titik layer. Juga, hasilnya akan seperti ini:
Outputnya akan berupa file .csv sehingga Anda dapat mengedit tata letak secara manual menggunakan perangkat lunak lain seperti Microsoft Excel.
sumber
Ini cukup sederhana untuk dicapai menggunakan QGIS (saya pikir versi apa pun akan melakukannya) dan pernyataan SQL yang sangat sederhana di DB manager. Tetapi untuk itu Anda harus menggunakan semacam basis data spasial (Postgis atau spatialite). Karena lebih mudah diakses oleh kebanyakan orang, saya akan menganggap menggunakan spatialite, tetapi pernyataan SQL adalah sama untuk Postgis.
Jarak dari semua titik ke semua batas poligon
Jarak ke semua titik ke batas poligon terkait (dengan asumsi bahwa bidang umum ada)
Jarak ke semua titik ke centroid poligon terkait :
Perhatikan bahwa Anda dapat menambahkan bidang apa saja dari lapisan Anda ke hasilnya:
Atau bahkan semua bidang:
sumber
Alat Hasilkan Dekat Tabel di ArcGIS akan melakukan apa yang Anda inginkan, tetapi memerlukan lisensi Tingkat Lanjut dan akan melakukannya untuk semua poin / poligon - bukan hanya yang terkait satu sama lain. Ini berarti untuk masing-masing dari 95 objek Anda, Anda akan mendapatkan jarak peringkat untuk semua 211 properti, jadi 20.045 baris dalam tabel. Anda harus memfilter tabel yang dihasilkan atau seperti yang disarankan Emil mengotomatiskan tugas untuk membuat pilihan berdasarkan asosiasi dan hanya menjalankannya di grup tersebut.
Sejauh pemfilteran, ya, gabungan (diikuti oleh kueri definisi atau seleksi) adalah yang Anda butuhkan. Hasil alat memberi Anda IN_FID dan NEAR_FID. Bergantung pada bagaimana Anda menjalankan alat (properti di dekat titik, atau titik di dekat properti) menentukan FID mana. Anda kemudian akan bergabung dengan tabel titik dan properti Anda (keduanya) ke hasil alat berdasarkan FID yang sesuai.
Ini mengasumsikan masing-masing 211 catatan properti Anda memiliki atribut yang mengatakan yang mana dari 95 poin yang dimiliki, karena langkah selanjutnya adalah memilih (atau permintaan definisi) semua catatan dalam tabel yang digabungkan di mana dua bidang dari satu catatan harus match-point name field = bidang nama poin terkait properti. Kasus di mana mereka tidak cocok adalah poligon yang tidak terkait dengan titik itu, jadi Anda tidak peduli jarak mereka dari titik itu.
sumber