Esto es bastante sencillo de conseguir usando QGIS (creo que cualquier versión servirá) y una sentencia SQL muy sencilla en el gestor de BD. Pero para eso su debe estar en algún tipo de base de datos espacial (Postgis o spatialite). Como es más accesible para la mayoría de la gente, supondré que se utiliza spatialite, pero las sentencias SQL son las mismas para Postgis.
- Crear una nueva base de datos Spatialite;
- Importe sus capas de puntos y polígonos a la nueva base de datos;
- Abra el plugin DB manager, seleccione la base de datos y ejecute una de las siguientes sentencias SQL:
Distancia de todos los puntos a todos los límites de los 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
Distancia de todos los puntos a los límites de los polígonos relacionados (suponiendo que exista un campo común)
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)
Distancia de todos los puntos a los centroides de los 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 puede añadir cualquier campo de sus capas al 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)
O incluso todos los 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)
0 votos
Esto puede hacerse con un análisis cercano en ArcGIS, pero hacerlo para cada punto requerirá un poco de automatización. ¿Está usted familiarizado con las secuencias de comandos de Python?
0 votos
Emil - No, no estoy familiarizado con Python, pero quizás debería aprender.