Questo è abbastanza semplice da ottenere utilizzando QGIS (penso che qualsiasi versione lo farà) e un'istruzione SQL molto semplice in DB Manager. Ma per quello il tuo deve essere in una specie di database spaziale (Postgis o spatialite). Dal momento che è più accessibile alla maggior parte delle persone, assumerò l'uso di spatialite, ma le istruzioni SQL sono le stesse per Postgis.
- Creare un nuovo database Spatialite;
- Importa i livelli di punti e poligoni nel nuovo database;
- Aprire il plug-in DB Manager, selezionare il database ed eseguire una delle seguenti istruzioni SQL:
Distanza da tutti i punti a tutti i confini dei poligoni
SELECT
f.point_id,
g.polygon_id,
st_distance(g.geom, f.geom) AS distance
FROM
points_table AS f,
polygons_table AS g
Distanza da tutti i punti ai limiti dei poligoni correlati (supponendo che esista un campo comune)
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)
Distanza da tutti i punti ai relativi centroidi poligoni :
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)
Nota che puoi aggiungere qualsiasi campo dai tuoi livelli al risultato:
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)
O anche tutti i campi:
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)