यह QGIS (मुझे लगता है कि कोई भी संस्करण करेगा) और DB प्रबंधक में एक बहुत ही सरल SQL कथन का उपयोग करके प्राप्त करना काफी सरल है। लेकिन इसके लिए आपका वह स्थान किसी प्रकार के स्थानिक डेटाबेस (Postgis या स्थानिक) में होना चाहिए। चूंकि यह अधिकांश लोगों के लिए अधिक सुलभ है, इसलिए मैं स्थानिक का उपयोग कर ग्रहण करूंगा, लेकिन SQL कथन पोस्टगिस के लिए समान हैं।
- एक नया स्थानिक डेटाबेस बनाएँ;
- अपने बिंदु और बहुभुज परतों को नए डेटाबेस में आयात करें;
- DB प्रबंधक प्लगइन खोलें, डेटाबेस का चयन करें और निम्न SQL कथनों में से एक को चलाएं:
सभी बिंदुओं से सभी बहुभुज सीमाओं से दूरी
SELECT
f.point_id,
g.polygon_id,
st_distance(g.geom, f.geom) AS distance
FROM
points_table AS f,
polygons_table AS g
संबंधित बहुभुज सीमाओं के सभी बिंदुओं की दूरी (यह मानते हुए कि एक सामान्य क्षेत्र मौजूद है)
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)
संबंधित बहुभुज केन्द्रक के लिए सभी बिंदुओं की दूरी :
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)
ध्यान दें कि आप अपनी परतों से परिणाम में कोई भी फ़ील्ड जोड़ सकते हैं:
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)
या यहां तक कि सभी क्षेत्र:
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)