GIS 사용 시 두 포인트 사이의 가장 가까운 거리를 계산하는 일은 매우 흔합니다. QGIS도 이 도구를 내장하고 있지만, 기본 설정에서는 보이지 않습니다. 이번 간단한 강의에서, 어떻게 해야 이 도구를 사용할 수 있는지 배워보겠습니다.
이 강의의 목표: Road Graph 플러그인을 활성화, 설정, 사용하기.
QGIS의 기본 기능 외에 추가적인 플러그인이 많습니다. 이 플러그인들 대부분은 활용도가 높아서, QGIS 설치 시 기본적으로 내장되어 있습니다. 그러나 기본 설정에서는 보이지 않습니다. 따라서 이 플러그인들을 사용하려면 먼저 활성화시켜줘야 합니다.
Road Graph 플러그인을 활성화하려면,
먼저 QGIS 메인 창 메뉴에서 Plugins ‣ Manage and Install Plugins... 항목을 클릭, Plugin Manager 를 실행합니다. 대화 창이 나타날 것입니다.
다음과 같이 플러그인을 선택하십시오.
Plugin Manager 대화 창의 Close 버튼을 클릭합니다.
주석
사용자 인터페이스에 플러그인이 보이지 않을 경우, View ‣ Panels 메뉴에서 Shortest path 가 체크되어 있는지 확인하십시오.
인터페이스에 다음과 같은 패널이 나타날 것입니다.
계산을 실행할 레이어를 설정하려면 먼저 현재 맵을 저장하십시오. 그 다음 roads_34S 레이어를 오른쪽 클릭하고 Save as... 를 선택해서 레이어를 shapefile로 저장합니다. 그리고 새 맵을 생성해서 해당 레이어를 로드하십시오.
네트워크 분석 작업 시 아주 많은 유형의 설정이 가능하기 때문에, 여러분이 설정하기 전까지 플러그인은 아무 것도 가정하지 않습니다. 즉 여러분이 먼저 설정하지 않으면 플러그인은 어떤 작업도 하지 않는다는 의미입니다.
메뉴에서 Vector ‣ Road graph ‣ settings 항목을 클릭하십시오. 대화 창이 나타날 것입니다.
다음과 같이 설정하도록 합니다. (다른 설명이 없으면 기본값을 사용합니다.)
여러분의 지도에 있는 도로 상의 두 포인트를 선택하십시오. 포인트에 어떤 의미가 있어야 할 필요는 없지만, 이 두 포인트는 도로로 연결되어 있고 일정 거리 이상 떨어져 있어야 합니다.
플러그인 패널에서 Start 항목 옆에 있는 Capture Point 버튼을 클릭하십시오.
여러분이 선택한 시작 포인트를 클릭하십시오.
Stop 항목 옆에 있는 Capture Point 버튼을 이용해서 여러분이 선택한 종료 포인트를 캡처하십시오.
Calculate 버튼을 클릭하면 다음과 같은 계산 결과를 볼 수 있습니다.
주석
이 부분은 Linfiniti와 S. Motala(남아프리카공화국 케이프 페닌슐라 기술대학교)가 작성했습니다.
사용자의 restaurants_34S 레이어를 (필요하다면 여러분의 analyis 맵에서 추출한 다음) 맵에 추가합니다.
roads_34S 레이어의 속성 테이블을 열고 편집 모드로 들어가십시오.
SPEED 라는 명칭의 열을 새로 추가한 다음, 3 길이의 Whole number (integer) 형식을 부여하십시오.
메인 창에서 다음과 같이 Select Features by Rectangle 도구를 활성화합니다.
주거 지역이 아닌 도심 지역에 있는 주 도로 가운데 아무 도로나 선택하십시오.
(하나 이상의 도로를 선택하려면, ctrl 버튼을 누른 채 포함하고자 하는 도로 위에 사각형을 드래그합니다.)
속성 테이블에서 Show selected features 를 선택하십시오.
선택한 모든 도로의 SPEED 값을 60 으로 설정합니다.
문맥 상 해당 도로의 제한 속도를 60 km/h 로 설정한 것입니다.
도심 지역 바깥에 있는 고속 도로나 주요 도로 가운데 아무 도로나 선택하십시오.
선택한 모든 도로의 SPEED 값을 120 으로 설정합니다.
속성 테이블을 닫고, 편집 내용을 저장한 다음 편집 모드를 종료합니다.
Vector ‣ Road graph ‣ Road graph settings 메뉴에서 Speed 값을 여러분이 방금 생성한 SPEED 항목으로 설정한 다음, 다른 설정들은 이전과 동일한지 확인하십시오.
Shortest path 패널에 있는 Start point 버튼을 클릭합니다.
다음과 같이 Swellendam 의 한 쪽에 있는 주요 도로 상에 시작 포인트를, 도시의 다른 한 쪽에 있는 주요 도로 상에 종료 포인트를 설정합니다.
Shortest path 패널에 있는 Criterion 드롭다운 목록에서 Length 를 선택합니다.
Calculate 를 클릭하십시오. 다음과 같이 최단 거리의 경로를 계산합니다.
Shortest path 에 있는 Length 와 Time 의 값을 살펴보십시오.
Criterion 을 Time 으로 설정합니다.
Calculate 를 다시 클릭해보십시오. 다음과 같이 최단 시간의 경로를 계산할 것입니다.
이 기준들을 차례로 선택하면서 매번 재계산 작업을 할 수 있습니다. Length 와 Time 의 값이 어떻게 변화하는지 살펴보십시오. 해당 경로의 최단 시간 계산은 과속 등을 염두에 두지 않고, 항상 제한 속도로 달린다는 가정 하에 이루어진다는 점을 기억하십시오. 실제 상황에서는 제한 속도보다는 도로를 좀 더 작은 구역으로 나누고, 각 구역에서의 평균 또는 기대 속도를 염두에 두어야 합니다.
Calculate 를 클릭했을 때 경로를 찾을 수 없다는 오류가 발생하는 경우, 여러분이 디지타이즈한 도로가 서로 연결되어 있는지 확인하십시오. 도로들이 서로 맞닿아 있지 않다면 피처를 수정하든지, 아니면 플러그인 설정에서 Topology tolerance 를 설정해서 문제를 해결해야 합니다. 두 도로가 서로 지나가지만 교차하지는 않을 경우, 다음 Split features 도구를 이용해서 교차점에서 도로를 “분리”해야 합니다.
하지만 Split features 도구는 선택한 피처가 편집 모드일 경우에만 실행된다는 점을 기억해야 합니다!
그런데 최단 거리 경로와 최단 시간 경로가 동일한 경우에 이 오류가 발생할 수도 있습니다.
이제 최단 경로 문제를 해결하려면 어떻게 Road Graph 플러그인을 사용해야 하는지 배웠습니다.
다음 강의에서는 벡터 데이터셋 상에서 공간 통계 알고리듬을 실행하는 방법을 배워보겠습니다.