Isso é bastante simples de obter usando o QGIS (acho que qualquer versão serve) e uma instrução SQL muito simples no gerenciador de banco de dados. Mas para isso você deve estar em algum tipo de banco de dados espacial (Postgis ou spatialite). Como é mais acessível para a maioria das pessoas, assumirei o uso do spatialite, mas as instruções SQL são as mesmas para o Postgis.
- Crie um novo banco de dados Spatialite;
- Importe suas camadas de ponto e polígonos para o novo banco de dados;
- Abra o plug-in do gerenciador de banco de dados, selecione o banco de dados e execute uma das seguintes instruções SQL:
Distância de todos os pontos a todos os limites dos polígonos
SELECT
f.point_id,
g.polygon_id,
st_distance(g.geom, f.geom) AS distance
FROM
points_table AS f,
polygons_table AS g
Distância de todos os pontos aos limites dos polígonos relacionados (assumindo que existe um campo comum)
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)
Distância de todos os pontos aos centróides de polígonos relacionados :
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)
Observe que você pode adicionar qualquer campo de suas camadas ao resultado:
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 mesmo todos os campos:
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)