이것은 QGIS (모든 버전이 할 것이라고 생각합니다)와 DB 관리자의 매우 간단한 SQL 문을 사용하여 달성하는 것은 매우 간단합니다. 그러나 당신의 것이 일종의 공간 데이터베이스 (Postgis 또는 공간 공간)에 있어야합니다. 대부분의 사람들이 더 접근하기 쉽기 때문에 공간 공간을 사용한다고 가정하지만 SQL 문은 Postgis와 동일합니다.
- 새로운 Spatialite 데이터베이스를 작성하십시오.
- 점 및 다각형 레이어를 새 데이터베이스로 가져옵니다.
- 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)