QGIS. 하나의 폴리곤 중심점에서 다른 여러 폴리곤들의 중심점까지 최단선 그리고 거리 구하기

1. 폴리곤 준비

사용한 QGIS 버전: 3.36.1-Maidenhead

  • 기준이 되는 하나의 폴리곤: the_polygon.shp
  • 거리를 구할 대상이 되는 폴리곤들: polygons.shp (5개 폴리곤 id = 1, 2, 3, 4, 5)

좌표계는 투영 좌표계(PCS/TM)입니다. (경위도 좌표계 아님)

qgis polygon centroid distance materials


2. 폴리곤 중심점 구하기

기준이 되는 폴리곤 파일과 대상이 되는 폴리곤 파일에 대한 중심점을 모두 구한다.

메뉴 > 벡터 > 도형 도구 > 중심점

  • 입력 레이어: the_polygon.shp
  • 파일로 저장: the_polygon_centroid.shp
  • 입력 레이어: polygons.shp
  • 파일로 저장: polygons_centroids.shp
qgis polygon centroid distance menu

qgis polygon centroid distance centroid window

qgis polygon centroid distance centroids
각각의 폴리곤에 중심점이 만들어짐


3. 거리 계산하기

(1) 첫 번째 방법

① 선 그리기: 벡터 도형 > 표현식 기반 도형

  • 입력 레이어: polygons_centroids
  • 산출 도형 유형: 라인(Line)
  • 도형 표현식: shortest_line($geometry,aggregate('the_polygon_centroid','collect',$geometry))
  • 변경된 도형(파일로 저장): shortest_line.shp
qgis polygon centroid distance make line

qgis polygon centroid distance shortest line
중심점들 간의 최단거리 선이 그려짐


② 거리 계산: 필드 계산기

  • polygons_centroids 레이어를 선택한 후 필드 계산기 열기
  • 새로운 필드 생성 : 체크(V)
  • 산출 필드 이름 : distance_1 (아래 기술할 두 번째 방법의 결과물과 이름이 겹치지 않도록 1을 붙임)
  • 산출 필드 유형 : 십진수 (실수)
  • 표현식 : length(shortest_line($geometry,aggregate('the_polygon_centroid','collect',$geometry)))

계산된 거리 정보는 polygons_centroids 레이어의 속성 테이블에서 확인할 수 있다. 참고로 거리 단위는 기본적으로 미터(m).

qgis polygon centroid distance filed calculator

qgis polygon centroid distance attribute table
속성 테이블에 거리가 계산되어 저장됨


(2) 두 번째 방법

① 최단 지점 위치 및 거리 계산 : 벡터 일반 > 최근접 거리를 이용하여 속성을 결합

  • 입력 레이어 : polygons_centroids
  • 입력 레이어 2 : the_polygon_centroid
  • 새로 생성되는 레이어의 이름을 지정하지 않고 자동으로 만들어지는 임시 레이어로 작업해도 되고(결합한 레이어), 지금은 polygons_centroids_distances.shp라는 이름으로 저장함

새로 생성된 레이어(결합한 레이어 또는 polygons_centroids_distances.shp)의 속성 테이블을 확인하면 거리(distance), polygons_centroids 좌표(feature_x, feature_y), the_polygon_centroid 좌표(nearest_x, nearest_y)가 계산되어 저장되어 있음.

qgis polygon centroid distance nearest

qgis polygon centroid distance nearest attributes


② 선 그리기 : 벡터 도형 > 표현식 기반 도형

앞에서 만든 polygons_centroids의 좌표(feature_x, feature_y)와 the_polygon_centroid 좌표(nearest_x, nearest_y)를 선으로 이어주면 된다.

  • 입력 레이어 : polygons_centroids_distances.shp (또는 결합한 레이어)
  • 산출 도형 유형 : 라인(Line)
  • 도형 표현식 : MAKE_LINE($geometry, MAKE_POINT("nearest_x", "nearest_y"))
  • 산출물 이름 지정을 하지 않고 작업하면 변경된 도형이라는 임시 레이어가 만들어지고, 지금은 shortest_line_2.shp라는 이름으로 저장함
qgis polygon centroid distance make line2

qgis polygon centroid distance attribute table2

카테고리의 다른 글

  1. QField 앱에 shp 파일 넣고 열어 보기 (아이폰)
  2. QGIS CSV 파일 저장시 한글이 깨질 때
  3. QGIS shp파일 속성 테이블 엑셀로 저장하기
  4. QGIS 등고선에 Z값 설정하기
  5. QGIS 라인을 따라 일정 간격(거리)으로 포인트 찍기

댓글 남기기