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.
- Buat database Spatialite baru;
- Impor layer titik dan poligon Anda ke dalam basis data baru;
- Buka plugin DB manager, pilih database dan jalankan salah satu pernyataan SQL berikut:
Jarak dari semua titik ke semua batas poligon
SELECT
f.point_id,
g.polygon_id,
st_distance(g.geom, f.geom) AS distance
FROM
points_table AS f,
polygons_table AS g
Jarak ke semua titik ke batas poligon terkait (dengan asumsi bahwa bidang umum ada)
SELECT
f.point_id,
g.polygon_id,
st_distance(g.geom, f.geom) AS distance
FROM
points_table AS f JOIN
polygons_table AS g ON (g.common_field = f.common_field)
Jarak ke semua titik ke centroid poligon terkait :
SELECT
f.point_id,
g.polygon_id,
st_distance(f.geom, st_centroid(g.geom)) AS distance
FROM
points_table AS f JOIN
polygons_table AS g ON (g.common_field = f.common_field)
Perhatikan bahwa Anda dapat menambahkan bidang apa saja dari lapisan Anda ke hasilnya:
SELECT
f.point_id,
f.point_number,
g.polygon_id,
g.parcel_name,
st_distance(f.geom, st_centroid(g.geom)) AS distance
FROM
points_table AS f JOIN
polygons_table AS g ON (g.common_field = f.common_field)
Atau bahkan semua bidang:
SELECT
f.*,
g.*,
st_distance(f.geom, st_centroid(g.geom)) AS distance
FROM
points_table AS f JOIN
polygons_table AS g ON (g.common_field = f.common_field)