C'est assez simple à réaliser en utilisant QGIS (je pense que n'importe quelle version fera l'affaire) et une instruction SQL très simple dans le gestionnaire de bases de données. Mais pour cela, cela doit être dans une sorte de base de données spatiale (Postgis ou spatialite). Puisqu'il est plus accessible à la plupart des gens, je supposerai d'utiliser spatialite, mais les instructions SQL sont les mêmes pour Postgis.
- Créez une nouvelle base de données Spatialite;
- Importez vos couches de points et de polygones dans la nouvelle base de données;
- Ouvrez le plug-in du gestionnaire de base de données, sélectionnez la base de données et exécutez l'une des instructions SQL suivantes:
Distance de tous les points à toutes les limites des polygones
SELECT
f.point_id,
g.polygon_id,
st_distance(g.geom, f.geom) AS distance
FROM
points_table AS f,
polygons_table AS g
Distance de tous les points aux limites des polygones associés (en supposant qu'il existe un champ commun)
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)
Distance à tous les points des polygones centroïdes associés :
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)
Notez que vous pouvez ajouter n'importe quel champ de vos calques au résultat:
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)
Ou même tous les domaines:
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)