* 본 글은 공간정보교육포털 '스페이스인'의 [ QGIS 실습 ] 강의를 듣고 정리한 글입니다.
비교적 과거의 강의이기 때문에 현재의 기술과는 차이가 있을 수 있습니다.
공간정보교육포털
공지사항서버 재기동(23.04.06)에 따른 공간정보 교육포털 이용 안내 2023-03-24
www.spacein.kr
2. 투영법 정의 및 지오메트리 계산
투영법 정의
1. 레이어 좌표계
- 해당 레이어가 어떤 좌표계로 정의되는지를 설정할 수 있음
- Layers Panel > 특정 레이어에 마우스 우클릭 > 레이어 좌표계 > 레이어 좌표계 설정 클릭 > 좌표계 선택
2. 프로젝트 좌표계
- 사용 중인 다수의 레이어가 각각 다른 좌표계로 되어있을 때 해당 프로젝트 좌표계로 일괄 변경됨
- 방법 1: 프로젝트 > 속성 > 좌표계 > 좌표계 변경
- 방법 2: 프로젝트 좌표계 변경 바로가기
- 우측 하단의 좌표계 표시 부분을 클릭하면 바로 프로젝트 좌표계 변경 화면으로 이동됨
- 프로젝트 좌표계의 핵심 기능: ‘실시간’ 좌표계 변환 활성화
- 예시
- 1) 레이어 좌표계 EPSG:5186(Korea 2000 / Central Belt 2010) > EPSG:4326(WGS 84)로 변경
- 2) 모든 레이어의 좌표가 일괄로 변경되면서 형태가 달라짐
- 예시
3. 좌표계가 없는 레이어를 추가했을 때
- 1) 상단 메뉴의 설정 > 옵션 > 좌표계와 변환 > CRS Handling
- CRS(Coordinate Reference System: 좌표참조체계)
- 2) 레이어 기본 좌표계를 자주 사용하는 좌표계로 설정 > ‘기본 레이어 좌표계 사용’ 선택
- 결과
- 좌표계가 설정되어 있지 않은 레이어들이, 자동으로 기본 설정된 좌표계로 일괄 처리됨
4. 투영법 재정의(레이어 재투영)
- 좌표계 설정 vs 좌표계 변환
- 좌표계 설정: 레이어 좌표 해석 방법을 변경
- 좌표계 변환: 좌표값 자체를 특정 좌표계에 맞게 변경
- 레이어 좌표계 변환
- 벡터 > 데이터 관리 도구 > 레이어 재투영
- 공간처리 > 툴박스 > 벡터 일반 > 레이어 재투영 - 이 방법도 같은 기능
- 레이어 > 다른 이름으로 저장 > 특정 좌표계로 변경 > 저장이 가능
- 투영법을 추가해놓으면 다른 작업자와 데이터를 교환할 때, 데이터를 받는 작업자도 해당 데이터의 좌표계가 무엇인지 확인할 수 있음 > 협업에 필수적
- 1) 대상 좌표계 설정
- 방법: 벡터 > 데이터 관리 도구 > 레이어 재투영 > 대상 좌표계 설정 > 재투영된 산출물에서 저장공간, 산출물명을 지정해 실행
- 2) 기존 레이어의 좌표계 가져오기 (이식)
- 좌표계가 정의된 레이어가 있는 경우 그 좌표계를 가져와 현재 레이어로 이식할 수 있음
- 현재는 지원하지 않는 기능인 것 같음 (QGIS 메뉴에 없음)
오픈레이어 활용하기 (OpenLayers, QuickMapServices, TMS for Korea)
1. OpenLayers 플러그인 설치
- OpenLayers 플러그인: 구글맵 등 글로벌 지도를 배경지도로 이용하는 기능
- 방법: 플러그인 > 플러그인 관리 및 설치 > ‘OpenLayers Plugin’ 검색
- OpenLayers 플러그인을 사용하려면 플러그인 > 플러그인 관리 및 설치 > 설정 > ‘Show also Experimental Plugins’ 체크
- OpenLayers 플러그인은 사실상 deprecated 상태이기 때문에 위와 같이 처리해줘야 함
- 실험적 플러그인 설치 클릭해서 설치 완료
1-1. OpenLayers 플러그인 레이어 추가
- 웹 > OpenLayers plugin > Google Maps > Google Streets
- 위와 같이 설치했더니 파이썬에서 NotImplementedError가 발생
- OpenLayers Plugin : Printing and rotating of Javascript API based layers is currently not supported!
- 여러 키워드로 검색해봤지만 OpenLayers 플러그인이 이미 deprecated된 상태라 해결할 방법이 없음 (강의를 따라가려면 낮은 버전의 QGIS를 재설치해야 하지만, 과거에 머물러있을 수 없으니 OpenLayers 플러그인을 대체할 수 있는 플러그인인 QuickMapServices를 설치하기로 함)
- 레이어에서 Google Street를 제거하면 아래의 오류 메시지는 사라짐
2. QuickMapServices 플러그인 설치
- QuickMapServices 플러그인: Bing Map, ESRI, Google Map, USGS, Openstreetmap 등의 글로벌 지도를 배경지도로 활용할 수 있게 도와주는 기능
- 설치: 플러그인 > 플러그인 관리 및 설치 > ‘QuickMapServices’ 검색 > 플러그인 설치 버튼 클릭
2-1. QuickMapServices 플러그인으로 각종 배경지도 사용하기
- 웹 > QuickMapServices > Settings > More Services > Get contributed pack > Last version of contrib pack was downloaded!”
- 웹 > QuickMapServices를 누르면 각종 배경지도 서비스가 활성화된 걸 볼 수 있음
2-2. QuickMapServices 플러그인 레이어 추가
- 웹 > QuickMapServices > Google > Google Road
- Google 지도 위에 다른 레이어 올리기
- 해당 레이어 우클릭 > 레이어로 확대/축소
2-3. QuickMapServices 플러그인 좌표계 설정
- 웹 지도 레이어 좌표계(예: Google Road)와 프로젝트 좌표계가 일치해야 함
- 현재 사용하는 데이터가 타일맵(이미 특정 좌표계로 정의된 상태)에서 이미지 형태로 제작된 데이터를 사용하고 있기 때문에 웹 지도를 사용할 경우에는 반드시 레이어 좌표계를 프로젝트 좌표계에 맞춰야 함
- 현재 타일맵(이미 특정 좌표계로 정의되어 이미지 형태로 제작된 데이터)을 사용하고 있기 때문에 웹 지도를 사용할 경우에는 반드시 레이어 좌표계가 프로젝트 좌표계와 일치되어야 함
- 웹지도 레이어를 추가하면 자동으로 웹지도 레이어의 좌표계로 맞춰짐
3. TMS for Korea 플러그인 설치
- TMS for Korea란
- OSGeo 한국어지부 이민파 개발
- 대한민국 웹지도(카카오, 네이버, VWorld)를 배경지도로 이용하는 기능
- 설치: 플러그인 > 플러그인 관리 및 설치 > ‘TMS for Korea’ 검색 > 플러그인 설치 버튼 클릭
3-1. TMS for Korea 플러그인 레이어 추가
- 웹 > TMS for Korea > Kakao Maps > Kakao Hybrid
지오메트리 컬럼 내보내기
- 지오메트리 컬럼 내보내기: 각 도형정보가 가지고 있는 길이, 넓이와 같은 정보를 컬럼으로 내보내는 기능
- 건물 레이어: 면 데이터 > 면적과 둘레 계산 가능
- 담장 레이어: 선 데이터 > 길이 계산 가능
1. 속성 테이블을 이용해 계산한 값을 새 필드에 추가하기: 직접 계산
- 속성 테이블에서 담장 레이어의 길이 값을 담을 필드 LENGTH를 만들고, 해당 필드에 길이를 필드값으로 삽입할 것
- 1) 필드 추가
- 담장 레이어의 길이를 넣을 LENGTH 필드 생성
- 방법: 레이어 > 속성 테이블 열기 > 편집 모드 전환(속성 테이블 좌측 상단의 연필 모양 클릭 or Ctrl + E) > New field > LENGH 필드 추가
- 2) 필드 계산하기
- 담장 레이어의 길이를 계산해 LENGTH 필드값으로 삽입
-
- 방법
- 1) 레이어 > 속성 테이블 열기 > 필드 계산기 열기(Ctrl+I(아이))
- 2) 기존의 필드를 갱신 > 표현식 ‘$length’로 검색 후 해당 글자 더블클릭 > 출력 미리보기로 값 확인 > ‘확인’ 버튼 > ‘펀집 모드 전환’ 버튼을 눌러 저장
- 산출 필드 길이, 정밀도를 설정해 값을 더 명확하게 받기 > 필드를 추가할 때 설정하면 됨
- 산출 필드 길이: 해당 필드 값의 총 길이를 결정
- 정밀도: 해당 필드 값의 소수점 자릿수를 결정
- 방법
- 유형을 ‘십진수(실수)’로 설정해야 길이와 정밀도를 모두 조절할 수 있음
- 길이: 10, 정밀도: 2로 설정할 예정
- 같은 필드 이름을 중복해서 사용할 순 없으므로 기존에 생성된 LENGTH 필드를 제거한 후, 길이와 정밀도를 설정한 LENGTH 추가한 후에 필드 계산기로 만든 값을 넣어주면 됨
- 방법
2. ‘벡터 도형 속성 추가’로 컬럼 만들기: 자동 계산
- 지오메트리 도구: 속성 테이블에서 직접 명령어를 입력하는 등의 번거로운 작업이 없는, QGIS에서 제공하는 간편한 기능
- 1) 벡터 > 도형 도구 > 도형 속성 추가 > 입력 레이어 선택 > 실행
- 공간 처리 > 툴박스 > ‘도형 속성 추가’ 검색으로도 가능
- 결과
- AREA(면적), PERIMETER(둘레) 필드와 필드 값이 자동으로 생성됨
3. 필드 재작성 (Refactor fields)
- 필드 값을 지정한 상태에서 필드 인자(길이, 정밀도) 재조정
- 레이어의 길이, 정밀도 확인하기
- 특정 레이어 우클릭 > 속성 > 필드
- 레이어의 길이, 정밀도 변경하기
- 공간 처리 > 툴박스 > 필드 재작성(Refactor fields) 검색
- 필드 재작성에서 소스 표현식(계산식 - 예: $length), 필드명, 유형, 길이 ,정밀도 등을 변경할 수 있음
- LENGTH 필드의 정밀도를 2 > 3로 변경한 결과
- 의문점
- 도형 속성 추가나 필드 재작성 할 때 산출물이 자꾸 새로운 레이어로 생성됨 > 이를 어떻게 해결해야 할지 방법을 찾는 중
QGIS 속성 테이블 한글 깨짐 문제 해결
- 원인: 인코딩 방식이 UTF-8이 아님
- 해결
- 레이어 > 데이터 원본 관리자 > 벡터 > 인코딩: ms949로 설정
- 결과
'🌐 공간정보' 카테고리의 다른 글
[스페이스인] QGIS 실습 | 4. 좌표정보 가공 및 공간통계 시각화 (0) | 2023.06.07 |
---|---|
[스페이스인] QGIS 실습 | 3. 레이어 편집 및 생성 (0) | 2023.06.05 |
[스페이스인] QGIS 실습 | 1. QGIS 설치, 오픈데이터 다운로드, QGIS에서 수치지도 데이터 열어보기 (0) | 2023.06.05 |
[스페이스인] 오픈소스와 공간정보의 만남 | 오픈소스 기반 공간정보기술 활용사례 2: 오픈소스 GIS 기반 공간분석 및 지도디자인 사례 (2) | 2023.06.03 |
[스페이스인] 오픈소스와 공간정보의 만남 | 오픈소스 기반 공간정보기술 활용사례 1: 국립공원관리공단 Park GIS의 QGIS 도입 및 활용 (0) | 2023.06.03 |