중요
번역은 여러분이 참여할 수 있는 커뮤니티 활동입니다. 이 페이지는 현재 100.00% 번역되었습니다.
16.1. 벡터 속성 대화창
벡터 레이어의 Layer Properties 대화창은 맵에서 레이어의 피처가 어떻게 보이는지(심볼, 라벨, 도표) 및 마우스와의 상호 작용(액션, 맵 도움말, 양식 디자인)을 관리하는 일반 설정을 제공합니다. 또 레이어에 대한 정보를 제공하기도 합니다.
Layer Properties 대화창을 열려면:
Layers 패널에서 레이어를 더블 클릭하거나, 오른쪽 클릭한 다음 컨텍스트 메뉴에서 Properties… 를 선택하십시오.
레이어를 선택한 다음
메뉴를 클릭하십시오.
벡터 Layer Properties 대화창은 다음 탭들로 이루어져 있습니다:
심볼[1] |
||
라벨[1] |
마스크[1] |
3D 뷰[1] |
외부 플러그인[2] 탭 |
[1] 레이어 스타일 작업 패널 에서도 사용할 수 있습니다.
[2] 사용자가 설치한 외부 플러그인 이 이 대화창에 탭을 추가할 수도 있습니다. 이 문서에서는 이에 대해 설명하지 않습니다. 외부 플러그인 문서를 참조하십시오.
팁
레이어 스타일의 전체 또는 일부 속성 공유
대화창 하단에 있는 사용자 지정 스타일 관리하기 를 참조하세요.
메뉴를 통해 여러 대상(파일, 클립보드, 데이터베이스 등)에서/으로 이런 전체 또는 일부 속성들을 가져오거나 내보낼 수 있습니다.참고
원본 프로젝트 파일에서 삽입 레이어(외부 프로젝트로부터 레이어를 내포시키기 참조)의 속성들(심볼, 라벨, 액션, 기본값, 양식 등등)을 읽어오기 때문에, 이 습성을 방해할 수도 있는 변경 사항이 적용되는 일을 피하기 위해 삽입 레이어에 대해 레이어 속성 대화창을 사용할 수 없게 돼 있습니다.
16.1.1. 정보 속성
Information 탭은 읽기 전용으로, 현재 레이어에 대한 요약 정보 및 메타데이터를 한 눈에 볼 수 있는 흥미로운 장소입니다. 다음과 같은 정보를 제공합니다:
프로젝트 이름, 소스 경로, 보조 파일 목록, 최신 저장 시간 및 용량, 사용하는 제공자 등의 일반 정보
레이어 제공자 기반 정보: 저장소 포맷, 도형 유형, 데이터소스 인코딩, 범위, 피처 개수 등등
좌표계: 이름, 단위, 메소드, 정확도, 참조(예: 정적인지 동적인지 여부)
채워진 메타데이터 로부터 선택: 접근, 범위, 링크, 연락처, 이력, …
레이어의 도형 관련 정보(공간 범위, 좌표계 등등) 또는 속성(필드 개수, 각 속성의 특성 등등)
16.1.2. 소스 속성
Source 탭에서 벡터 레이어에 대한 일반 설정을 정의할 수 있습니다.
16.1.2.1. 설정
Layer name: (Layers Panel 에서 표현식 등을 이용해서, 또는 인쇄 조판 범례에서, 또는…) 프로젝트 내의 레이어를 식별하기 위해 쓰일, 레이어 파일명과는 다른 레이어 이름을 설정할 수 있습니다.
Data source encoding: QGIS가 정확하게 탐지하지 못 한 경우, 데이터 포맷에 따라 데이터소스 인코딩을 선택하십시오.
16.1.2.2. 좌표계와 도형
레이어의 할당 좌표계 를 표시합니다. 드롭다운 목록에서 최근 사용한 좌표계를 선택하거나 Select CRS 버튼을 (좌표계 선택기 참조) 클릭해서 레이어 좌표계를 변경할 수 있습니다. 레이어에 적용된 좌표계가 틀렸거나 또는 적용된 좌표계가 없는 경우에만 변경하십시오. 사용자 데이터를 다른 좌표계로 재투영하고 싶은 경우, 공간 처리 재투영 알고리즘을 이용하거나 새 레이어로 저장 하는 편이 좋습니다.
Create spatial index: 공간 인덱스를 생성합니다. (OGR 지원 유형 전용입니다.)
Update extents: 레이어의 범위 정보를 업데이트합니다.
16.1.2.3. 쿼리 작성기
레이어 속성 대화창의 Source 탭의 Provider Feature Filter 부분 하단에 있는 Query Builder 버튼을 누르면 쿼리 작성기 대화창을 열 수 있습니다.
쿼리 작성자는 SQL 호환 WHERE 절을 이용해서 레이어에 있는 피처의 하위 집합을 정의하고 그 결과를 메인 창에 표시할 수 있는 인터페이스를 제공합니다. 쿼리를 비활성화하지 않는 한, 프로젝트에서 쿼리 결과에 상응하는 피처만 사용할 수 있습니다.
Query Builder
에서 필터를 정의하는 데 하나 이상의 레이어 속성을 사용할 수 있습니다. 그림 16.2 에서 하나 이상의 속성을 사용하는 방법을 볼 수 있습니다. 이 예시에서, 필터는 AND, OR 및 NOT 연산자와 괄호를 이용해서 다음
toa
(DateTime
필드:cast("toa" as character) > '2017-05-17'
그리고cast("toa" as character) < '2019-12-24T18:00:00'
)name
(String
필드:"name" > 'S'
)FID
(Integer
필드:FID > 10
)
속성들을 결합합니다. 이 문법은 (toa
필드 용 날짜&시간 유형을 포함해서) GeoPackage 데이터셋용입니다.
데이터 제공자(GDAL, PostgreSQL, MS SQL 서버 등등) 수준에서 필터를 생성하기 때문에, 문법은 데이터 제공자를 따릅니다. (예를 들어 ESRI 셰이프파일 포맷은 날짜&시간 유형을 지원하지 않습니다.) 완전한 표현식은 다음과 같습니다:
cast("toa" as character) > '2017-05-17' AND
cast("toa" as character) < '2019-12-24T18:00:00' AND
NOT ("name" > 'S' OR FID > 10)
Filter… 옵션을 이용해서도 Query Builder 대화창을 열 수 있습니다. 대화창의 Fields, Values 및 Operators 부분에서 Provider specific filter expression 상자에 노출되는 SQL 호환 쿼리를 작성할 수 있습니다.
메뉴 또는 레이어의 컨텍스트 메뉴에서필드 목록은 레이어의 모든 필드를 담고 있습니다. SQL WHERE 절 란에 속성 열을 추가하려면, 필드 목록에 있는 이름을 더블 클릭하거나 SQL 란에 직접 입력하십시오.
값 프레임은 현재 선택한 필드의 값들을 목록화합니다. 필드의 모든 유일 값들을 표시하려면, All 버튼을 클릭하십시오. 열의 처음 유일한 값 25개만 표시하려면, Sample 버튼을 클릭하십시오. SQL WHERE 절 란에 값을 추가하려면, 값 목록에 있는 이름을 더블 클릭하십시오. 값 프레임 상단에 있는 검색란을 사용하면 목록에 있는 속성 값을 쉽게 탐색하고 찾을 수 있습니다.
연산자 부분은 사용할 수 있는 모든 연산자를 담고 있습니다. SQL WHERE 절 란에 연산자를 추가하려면, 적절한 버튼을 클릭하십시오. 관계 연산자(=
, >
등등), 문자열 비교 연산자(LIKE
), 그리고 논리 연산자(AND
, OR
등등)를 사용할 수 있습니다.
Test 버튼은 사용자의 쿼리를 점검하고 현재 쿼리를 만족하는 피처의 개수를 보여주는 메시지 창을 엽니다. Clear 버튼을 누르면 SQL 쿼리를 모두 삭제하고 레이어를 원래 상태로 (예를 들면 모든 피처를 다시 불러와) 되돌립니다. 쿼리를 .QQF
파일로 저장 Save… 할 수도 있고, 파일에서 쿼리를 대화창으로 불러올 Load… 수도 있습니다.
필터를 적용하면, QGIS는 쿼리로 선택된 하위 집합이 마치 완전한 레이어인 것처럼 취급합니다. 예를 들면, 사용자가 앞의 그림처럼 ‘Borough’ 에 대해 필터를 적용한 경우 ("TYPE_2" = 'Borough'
) Anchorage
를 표시하거나 쿼리하거나 저장하거나 편집할 수 없습니다. Anchorage
는 ‘Municipality’ 이기 때문에 하위 집합에 속하지 않기 때문입니다.
16.1.3. 심볼 속성
Symbology 탭은 사용자 벡터 데이터를 렌더링하고 심볼 작업을 하기 위한 종합 도구를 제공합니다. 모든 벡터 데이터에 공통적으로 쓰이는 도구는 물론 서로 다른 벡터 데이터 유형에 맞춰 특화된 심볼 작업 도구도 이용할 수 있습니다. 하지만 모든 데이터 유형이 다음과 같은 대화창 구조를 공유합니다: 상단에는 범주화 및 피처에 적용할 심볼을 준비하는 데 쓰이는 위젯이, 하단에는 레이어 렌더링 위젯이 있습니다.
팁
서로 다른 레이어 스타일로 재빨리 바꾸기
Layer Properties 대화창 하단에 있는 메뉴를 이용하면, 스타일을 원하는 대로 얼마든지 저장할 수 있습니다. 스타일이란 레이어의 모든 (심볼, 라벨, 도표, 필드 양식, 액션 등등) 속성을 사용자가 원하는대로 조합한 것입니다. 그리고 나서, Layers Panel 에 있는 레이어의 컨텍스트 메뉴에서 스타일을 바꾸기만 하면, 사용자 데이터의 모습이 자동적으로 변경될 겁니다.
팁
벡터 심볼 내보내기
QGIS 벡터 심볼을 구글 *.kml
, *.dxf
및 MapInfo *.tab
파일로 내보낼 수 있는 옵션이 존재합니다. 레이어를 오른쪽 클릭해서 컨텍스트 메뉴를 열어, 를 선택하고 산출물 파일명 및 포맷을 지정하면 됩니다. 대화창에서는 메뉴의 또는 메뉴 옵션을 통해 심볼을 저장하십시오. 심볼 레이어를 사용해본 경험이 있다면, 두 번째 방법을 이용하는 편이 좋습니다.
16.1.3.1. 피처 렌더링
렌더링 작업자(renderer)는 정확한 심볼과 함께 피처를 그리는 일을 책임집니다. 레이어 도형 유형에 상관없이, 렌더링 작업자에는 단일 심볼, 범주, 등급, 규칙 기반이라는 공통 유형이 4개 있습니다. 포인트 레이어의 경우, 포인트 변위(displacement), 포인트 군집 및 열지도 렌더링 작업자를 이용할 수 있는 반면 폴리곤 레이어의 경우 그 외에도 병합된 피처, 역(inverted) 폴리곤 및 2.5차원 렌더링 작업자를 통해 렌더링할 수도 있습니다.
연속 색상 렌더링 작업자라는 건 없습니다. 연속 색상 렌더링 작업자란 사실 등급 렌더링 작업자의 특수한 경우일 뿐이기 때문입니다. 심볼 및 색상표를 지정하면 심볼 색상을 적절하게 설정하는 범주 및 등급 렌더링 작업자를 생성할 수 있습니다. 각 데이터 유형(포인트, 라인 및 폴리곤) 별로, 해당 벡터 심볼 레이어 유형이 존재합니다. 어떤 렌더링 작업자를 선택하느냐에 따라, 대화창에 서로 다른 부분들이 추가될 것입니다.
참고
벡터 레이어의 스타일을 설정할 때 렌더링 작업자 유형을 변경해도, 심볼에 대한 사용자 설정은 유지될 것입니다. 다만 단 한 번 변경하는 경우에만 유지된다는 점을 기억해주십시오. 렌더링 작업자 유형을 계속 변경하다보면 심볼 설정이 사라지게 됩니다.
단일 심볼 렌더링 작업자
Single Symbol 렌더링 작업자는 레이어의 모든 피처를 사용자가 정의한 단일 심볼을 이용해서 렌더링합니다. 심볼 표현에 대한 자세한 정보는 심볼 선택기 를 참조하세요.
무(無) 심볼 렌더링 작업자
No Symbols 렌더링 작업자는 모든 피처를 동일하게 렌더링하는 단일 심볼 렌더링 작업자의 특수한 용례입니다. 이 렌더링 작업자를 이용하면, 피처에 적용된 어떤 심볼도 렌더링하지 않지만 라벨, 도표 및 기타 심볼이 아닌 부분들은 렌더링될 것입니다.
이 렌더링 작업자를 이용하더라도 맵 캔버스에서 레이어에 있는 피처를 선택할 수 있는데, 선택한 피처를 기본 심볼로 렌더링할 것입니다. 편집 중인 피처도 표시할 것입니다.
이 렌더링 작업자는 오직 라벨 또는 도표만 보이길 원하는 레이어를 표시하기 위한 간편한 편법입니다. 다른 방법을 쓴다면 완전히 투명한 면/경계선을 보유한 심볼을 이용해서 렌더링해야만 하겠지요.
범주 렌더링 작업자
Categorized 렌더링 작업자는 필드 또는 표현식의 개별 값을 속성에 반영하는 사용자 지정 심볼을 이용해서 레이어의 피처를 렌더링합니다.
레이어에 대해 범주 심볼을 사용하려면:
범주화의 Value 를 선택하십시오: 이 값은 기존 필드일 수도 있고, 사용자가 입력란에 입력하거나 또는 관련 버튼으로 작성할 수 있는 표현식 일 수도 있습니다. (예를 들어 사용자의 범주화 기준이 하나 이상의 속성으로부터 파생되는 경우) 범주화 작업에 표현식을 이용하면 심볼 범주화만을 위한 필드를 생성하지 않아도 됩니다.
피처 범주화를 위해 사용되는 표현식은 어떤 종류든 가능합니다. 예를 들어:
비교 표현식이 될 수 있습니다. 이 경우, QGIS는
1
(True)이나0
(False)을 반환합니다. 다음은 그 예시입니다:myfield >= 100 $id = @atlas_featureid myfield % 2 = 0 within( $geometry, @atlas_geometry )
서로 다른 필드를 결합할 수 있습니다:
concat( field_1, ' ', field_2 )
필드들의 값을 계산할 수 있습니다:
myfield % 2 year( myfield ) field_1 + field_2 substr( field_1, -3 )
선형(linear) 값들을 개별 범주들로 변환시킬 수 있습니다:
CASE WHEN x > 1000 THEN 'Big' ELSE 'Small' END
여러 개별 값들을 단일 범주로 결합할 수 있습니다:
CASE WHEN building IN ('residence', 'mobile home') THEN 'residential' WHEN building IN ('commercial', 'industrial') THEN 'Commercial and Industrial' END
팁
객체를 범주화하는 데 모든 종류의 표현식을 사용할 수 있지만, 일부 복잡 표현식의 경우 규칙 기반 렌더링 작업자 를 사용하는 편이 더 간단할 수도 있습니다.
모든 범주용 기본 심볼로 쓰이게 될 심볼 을 환경 설정하십시오.
각 심볼에 적용되는 색상을 선택할 색상 범위 같은 색상표 를 지정하십시오.
색상표 위젯 의 공통 옵션 외에, 범주에 Random Color Ramp 임의의 색상표를 적용할 수 있습니다. 사용자가 만족하지 못 하는 경우 Shuffle Random Colors 를 클릭하면 새로운 임의의 색상 집합을 재생성할 수 있습니다.
그리고 Classify 버튼을 클릭해서 주어진 필드나 표현식의 개별 값으로부터 범주들을 생성하십시오.
실시간 업데이트 를 사용하는 중이 아니며 맵 캔버스 상의 각 피처를 각 피처의 범주 심볼로 렌더링할 예정인 경우 Apply 를 눌러 변경 사항을 적용하십시오.
QGIS는 기본적으로 목록에 all other values 범주를 추가합니다. 처음 시작 시에는 비어 있지만, 이 범주는 다른 범주에 들어가지 않는 모든 피처를 위한 기본 범주입니다. (예를 들어 범주화 필드/표현식을 위한 새 값을 가진 피처를 생성하는 경우처럼 말이죠.)
기본 범주를 심도 있게 미세 조정할 수 있습니다:
Add 새 범주를 추가할 수도 있고, Remove 선택한 범주를 제거할 수도 있으며, 또는 Delete All 모든 범주를 삭제할 수도 있습니다.
범주명 왼쪽에 있는 체크박스를 해제하면 각 범주를 비활성화시킬 수 있습니다. 대응하는 피처는 맵 상에서 숨겨집니다.
드래그&드롭으로 범주의 순서를 조정할 수 있습니다.
범주의 심볼, 값 또는 범례를 변경하려면, 해당 범주를 더블 클릭하면 됩니다.
선택한 항목(들)을 오른쪽 클릭하면 나오는 컨텍스트 메뉴에는:
Copy Symbol 및 Paste Symbol: 항목의 모습을 다른 항목에 적용할 수 있는 편리한 방법입니다.
Change Color…: 선택한 심볼(들)의 색상을 변경합니다.
Change Opacity…: 선택한 심볼(들)의 투명도를 변경합니다.
Change Output Unit…: 선택한 심볼(들)의 산출물 단위를 변경합니다.
Change Width…: 선택한 라인 심볼(들)의 폭을 변경합니다.
Change Size…: 선택한 폴리곤 심볼(들)의 크기를 변경합니다.
Change Angle…: 선택한 폴리곤 심볼(들)의 기울기를 변경합니다.
Merge Categories: 선택한 여러 범주들을 단일 그룹으로 병합합니다. 이렇게 하면 수많은 범주들을 가진 레이어들의 스타일 작업을 좀 더 단순하게 할 수 있습니다. 수많은 개별 범주들을 더 적고 더 관리하기 쉬운 범주 집합으로 그룹화해서 여러 값들에 적용시키는 것도 가능할 것입니다.
팁
목록에서 선택한 범주 가운데 가장 위에 있는 심볼이 병합된 범주들 용으로 쓰일 심볼이기 때문에, 병합 전에 사용자가 재사용하고자 하는 심볼을 가진 범주를 제일 위로 이동시키는 편이 좋습니다.
Unmerge Categories: 이전에 병합한 범주들을 다시 개별 범주들로 분리합니다.
생성된 범주들은 Layers 패널에 있는 트리 위계에도 나타납니다. 레이어 패널에서 항목을 하나 더블클릭하면 할당된 심볼을 편집할 수 있습니다. 항목을 오른쪽 클릭하면 더 많은 옵션 에 접근할 수 있습니다.
등급 렌더링 작업자
Graduated 렌더링 작업자는 선택한 피처의 속성이 어떤 범주에 할당되는지를 반영하는 사용자 지정 심볼의 색상 또는 크기를 이용해서 레이어의 모든 피처를 렌더링합니다.
범주 렌더링 작업자처럼, 등급 렌더링 작업자는 지정한 열로부터 심볼의 기울기 및 크기 척도를 설정할 수 있습니다.
또한 범주 렌더링 작업자처럼, 다음 옵션들을 설정할 수 있습니다:
범주화의 Value: 이 값은 기존 필드일 수도 있고, 사용자가 입력란에 입력하거나 또는 관련 버튼으로 작성할 수 있는 표현식 일 수도 있습니다. (예를 들어 사용자의 범주화 기준이 하나 이상의 속성으로부터 파생되는 경우) 범주화 작업에 표현식을 이용하면 심볼 범주화만을 위한 필드를 생성하지 않아도 됩니다.
심볼 (심볼 선택기 대화창을 이용합니다.)
범례 양식 및 정밀도
심볼 변경 방법: 색상 또는 크기
색상 방법을 선택했을 경우 색상 (색상표 목록 상자를 이용합니다.)
크기 (크기 범위 및 해당 단위를 이용합니다.)
그 다음 할당된 필드 또는 표현식에서 나온 값의 대화형 히스토그램을 표시하는 히스토그램 탭을 이용할 수 있습니다. 히스토그램 위젯을 통해 범주 단계(class break)를 이동하거나 추가할 수 있습니다.
참고
통계 요약 패널을 통해 사용자 벡터 레이어에 관한 정보를 더 많이 얻을 수 있습니다. 통계 요약 패널 을 참조하세요.
범주 탭으로 돌아가면, 범주의 개수는 물론 각 범주에 있는 범주화 기능 모드도 (모드 목록을 이용해서) 설정할 수 있습니다. 다음 모드들을 선택할 수 있습니다:
동일 개수(Equal Count; Quantile): 각 범주가 동일한 개수의 요소를 가지게 됩니다. (상자 수염 그림 개념입니다.)
동일 간격(Equal Interval): 각 범주가 동일한 크기를 가지게 됩니다. (예를 들어 1에서 16까지의 값을 범주 4개로 설정하면, 각 범주의 크기는 4가 됩니다.)
고정 간격(Fixed Interval): 각 범주가 고정된 값의 범위를 가지게 됩니다. (예를 들어 1에서 16까지의 값을 간격 크기 4로 설정하면, 범주들이 1-4, 5-8, 9-12 그리고 13-16이 됩니다.)
대수 척도(Logarithmic Scale): 값이 광범위한 데이터에 적합합니다. 적은 값에는 촘촘한 범주를, 큰 값에는 넓은 범주를 할당합니다. (예를 들어 [0..100] 범위의 십진수를 범주 2개로 설정하면, 처음 범주는 0에서 10까지, 다음 범주는 10에서 100까지가 될 것입니다.)
Natural Breaks (Jenks): 각 범주 내부의 분산량은 최소화되는 반면 범주 간의 분산량은 최대화되는 모드입니다.
Pretty Breaks: x값의 범위를 커버하면서 동일한 간격으로 보기 좋게 분포된 n+1개의 일련의 값들을 계산합니다. 10의 거듭제곱을 1, 2 또는 5로 곱한 수를 값으로 선택합니다. (R 통계 환경의 pretty 에 기반한 모드입니다.)
표준 편차: 값들의 표준 편차에 따라 범주를 생성합니다.
Symbology 탭의 가운데에 있는 목록 상자는 범주가 렌더링될 범위, 라벨, 심볼을 포함하는 범주 목록을 담고 있습니다.
Classify 버튼을 클릭해서 선택한 모드를 통해 범주를 생성하십시오. 범주명 왼쪽에 있는 체크박스를 해제하면 각 범주를 비활성화시킬 수 있습니다.
범주의 심볼, 값 그리고/또는 라벨을 변경하려면, 그냥 사용자가 원하는 항목을 더블 클릭하면 됩니다.
선택한 항목(들)을 오른쪽 클릭하면 나오는 컨텍스트 메뉴에는:
Copy Symbol 및 Paste Symbol: 항목의 모습을 다른 항목에 적용할 수 있는 편리한 방법입니다.
Change Color…: 선택한 심볼(들)의 색상을 변경합니다.
Change Opacity…: 선택한 심볼(들)의 투명도를 변경합니다.
Change Output Unit…: 선택한 심볼(들)의 산출물 단위를 변경합니다.
Change Width…: 선택한 라인 심볼(들)의 폭을 변경합니다.
Change Size…: 선택한 폴리곤 심볼(들)의 크기를 변경합니다.
Change Angle…: 선택한 폴리곤 심볼(들)의 기울기를 변경합니다.
그림 16.5 는 QGIS 예시 데이터셋의 major_rivers
레이어에 대한 등급 렌더링 작업자 대화창의 예시입니다.
생성된 범주들은 Layers 패널에 있는 트리 위계에도 나타납니다. 레이어 패널에서 항목을 하나 더블클릭하면 할당된 심볼을 편집할 수 있습니다. 항목을 오른쪽 클릭하면 더 많은 옵션 에 접근할 수 있습니다.
비례 심볼 및 다변량 분석
비례 심볼 및 다변량 분석은 심볼 렌더링 작업 드롭다운 목록에서 선택할 수 있는 렌더링 유형이 아닙니다. 하지만 앞에서 소개한 렌더링 옵션에 적용된 데이터 정의 무시 옵션을 통해, QGIS는 사용자의 포인트 및 라인 데이터를 비례 심볼로 표현할 수 있습니다.
비례 심볼 생성하기
비례 렌더링을 적용하려면:
먼저 레이어에 단일 심볼 렌더링 작업자 를 적용합니다.
그리고 피처에 적용할 심볼을 설정합니다.
심볼 트리의 상단에 있는 항목을 선택한 다음, (포인트 레이어의) Size 또는 (라인 레이어의) Width 옵션 옆에 있는 Data-defined override 버튼 을 클릭하십시오.
필드를 선택하거나 표현식을 입력하면, QGIS가 각 피처별로 속성에 산출 값을 적용하고 맵 캔버스에 있는 심볼의 크기를 비례에 맞춰 재조정할 것입니다.
필요하다면 메뉴의 Size assistant… 옵션을 사용해서 심볼 크기 재조정에 몇몇 (지수, 플래너리 등등) 변환을 적용하십시오. (자세한 내용은 데이터 정의 어시스턴트 인터페이스 사용하기 를 참조하세요.)
레이어 패널 과 인쇄 조판기 범례 항목 에 비례 심볼을 표시하도록 선택할 수 있습니다: Symbology 탭의 주 대화창 하단에 있는 Advanced 드롭다운 목록을 펼치고 Data-defined size legend… 를 선택하면 범례 항목을 환경 설정할 수 있습니다. (자세한 내용은 데이터 정의 크기 범례 를 참조하세요.)
다변량 분석 생성하기
다변량 분석 렌더링은 2개 이상의 변수들 사이의 관계를 평가할 수 있습니다. 예를 들면 변수 하나를 크기로 표현하고, 다른 변수를 색상표로 표현할 수 있습니다.
QGIS 에서 다변량 분석을 생성하는 가장 간단한 방법은 다음과 같습니다:
먼저 모든 범주에 동일한 심볼 유형을 이용해서 레이어 상에 범주 또는 등급 렌더링을 적용하십시오.
그 다음 범주에 대해 비례 심볼을 적용하십시오:
비례 심볼과 마찬가지로, 데이터 정의 크기 범례 를 사용해서 레이어 트리에 있는 범주 또는 등급 범주 심볼 위에 척도를 조정한 심볼을 추가할 수 있습니다. 인쇄 조판기 범례 항목에서도 이 두 표현을 모두 쓸 수 있습니다.
규칙 기반 렌더링 작업자
규칙이란 피처에 특정 렌더링 설정을 적용하기 위해 피처의 속성(attribute) 또는 속성(property)에 따라 피처를 구분하는 데 쓰이는 QGIS 표현식 을 말합니다. 규칙은 내포될 수 있으며, 피처가 모든 상위 내포 수준(들)에 속하는 경우 피처는 범주에 속합니다.
따라서 Rule-based 렌더링 작업자는 선택한 피처를 세분화된 범주에 할당하는지를 반영하는 측면을 가진 심볼을 이용해서 레이어의 모든 피처를 렌더링하도록 설계되었습니다.
규칙을 생성하려면:
기존 행을 더블클릭해서 활성화시키거나 (QGIS는 기본적으로 렌더링 모드가 활성화될 때 규칙을 가지지 않은 심볼을 추가합니다) 또는 Edit rule 또는 Add rule 버튼을 클릭하십시오.
Edit Rule 대화창이 열리면 사용자가 각 규칙을 쉽게 식별하도록 해주는 라벨을 정의할 수 있습니다. Layers Panel 은 물론 인쇄 작성자 범례도 이 라벨을 표시할 것입니다.
Filter 옵션 옆에 있는 텍스트란에 표현식을 직접 입력하거나 그 옆에 있는 버튼을 클릭해서 표현식 문자열 작성자 대화창을 여십시오.
제공되는 함수들과 레이어 속성을 사용해서 사용자가 가져오고 싶은 피처를 필터링하기 위한 표현식 을 작성하십시오. 쿼리 결과를 확인하려면 Test 버튼을 클릭하십시오.
규칙 설명을 완전하게 하려면 더 긴 라벨을 입력할 수 있습니다.
마지막으로 이 피처들에 사용할 심볼 을 환경 설정하십시오.
OK 를 클릭하십시오.
규칙을 요약한 새로운 행이 레이어 속성 대화창에 추가됩니다. 앞에서 설명한 단계를 따라 필요한 만큼 많은 규칙을 생성할 수도 있고 기존 규칙을 복사해서 붙여넣을 수도 있습니다. 규칙을 내포시키고 하위 범주에서 상위 규칙 피처들을 개선하려면 규칙을 다른 규칙 위로 드래그&드롭하십시오.
규칙 기반 렌더링 작업자를 범주 또는 등급 렌더링 작업자와 결합시킬 수 있습니다. 규칙을 하나 선택하면, Refine selected rules 드롭다운 메뉴를 이용해서 하위 범주에 해당 규칙이 적용된 피처를 정리할 수 있습니다. 세분화된 범주는 트리 계층에 규칙의 하위 항목처럼 나타나며, 상위 범주와 마찬가지로 사용자가 각 범주의 심볼과 규칙을 설정할 수 있습니다. 다음을 기반으로 규칙 세분화를 자동화할 수 있습니다:
축척(scales): 이 옵션은 축척 목록을 지정해서 서로 다른 사용자 정의 축척 범위가 적용되는 범주 집합을 생성합니다. 각각의 새로운 축척 기반 범주가 고유한 심볼과 정의(definition) 표현식을 가질 수 있습니다. 축척 기반 범주는 예를 들어 동일한 피처를 서로 다른 축척에서 서로 다른 심볼로 표시하거나, 또는 축척에 따라 특정 피처 집합만 표시하는 데 (예를 들면 대축척에서 지방 공항을 표시하고 소축척에서는 국제 공항을 표시하는 데) 편리한 방법입니다.
범주(categories): 선택한 규칙에 해당하는 피처에 범주 렌더링 작업자 를 적용합니다.
또는 범위(ranges): 선택한 규칙에 해당하는 피처에 등급 렌더링 작업자 를 적용합니다.
세분화된 범주는 트리 계층에 규칙의 하위 항목처럼 나타나며, 상위 범주와 마찬가지로 사용자가 각 범주의 심볼을 설정할 수 있습니다. 내포된 규칙의 심볼은 층층이 쌓이기 때문에 신중하게 선택하십시오. 이 층층이 쌓인 심볼 가운데 특정 심볼의 렌더링을 방지하기 위해 Edit rule 대화창에서 Symbols 를 체크 해제할 수도 있습니다.
Edit rule 대화창에서, 모든 규칙을 직접 작성하지 않고서도 동일 수준에서 어떤 규칙과도 일치하지 않는 모든 피처를 걸러내는 Else 옵션을 사용할 수 있습니다. 대화창의 규칙(Rule) 열에 Else
를 입력해도 동일한 결과를 얻을 수 있습니다.
선택한 항목(들)을 오른쪽 클릭하면 나오는 컨텍스트 메뉴에는:
Copy 와 Paste: 기존 항목(들)을 기반으로 새 항목(들)을 생성할 수 있는 편리한 방법입니다.
Copy Symbol 및 Paste Symbol: 항목의 모습을 다른 항목에 적용할 수 있는 편리한 방법입니다.
Change Color…: 선택한 심볼(들)의 색상을 변경합니다.
Change Opacity…: 선택한 심볼(들)의 투명도를 변경합니다.
Change Output Unit…: 선택한 심볼(들)의 산출물 단위를 변경합니다.
Change Width…: 선택한 라인 심볼(들)의 폭을 변경합니다.
Change Size…: 선택한 폴리곤 심볼(들)의 크기를 변경합니다.
Change Angle…: 선택한 폴리곤 심볼(들)의 기울기를 변경합니다.
Refine Current Rule: 현재 규칙을 축척, 범주 또는 범위 로 미세 조정할 수 있는 하위 메뉴를 엽니다. 대화창 하단에서 대응하는 메뉴 를 선택하는 것과 동일합니다.
규칙 기반 렌더링 작업자 대화창에서 한 행을 체크 해제하면 맵 캔버스에서 특정 규칙과 내포된 규칙을 가진 피처를 숨깁니다.
생성된 규칙들은 맵 범례에 있는 트리 위계에도 나타납니다. 맵 범례에서 항목을 하나 더블클릭하면 할당된 심볼을 편집할 수 있습니다. 항목을 오른쪽 클릭하면 더 많은 옵션 에 접근할 수 있습니다.
그림 16.7 은 QGIS 예시 데이터셋의 rivers
레이어에 대한 규칙 기반 렌더링 작업자 대화창의 예시입니다.
포인트 변위 렌더링 작업자
Point Displacement 렌더링 작업자는 서로 지정한 허용 오차 거리에 들어오는 포인트 피처들을 받아서, 다양한 배치 방법에 따라 그 무게중심(barycenter) 주위에 심볼들을 배치합니다. 이 렌더링 작업자는 (예를 들어 같은 건물 안에 있는 오락시설들처럼) 포인트 레이어의 피처들이 동일한 위치에 존재하더라도 모두 가시화시킬 수 있는 편리한 방법이 될 수 있습니다.
포인트 변위 렌더링 작업자를 환경 설정하려면, 다음 작업을 해줘야 합니다:
Center symbol: 중심에 있는 가상 포인트가 어떻게 보일지를 결정하는 중심 심볼을 설정합니다.
Renderer: 레이어의 피처를 어떻게 분류할지를 결정하는 (단일, 범주, 규칙 기반 등등의) 렌더링 작업자 유형을 선택합니다.
Renderer Settings… 버튼을 눌러서 선택한 렌더링 작업자에 따라 피처의 심볼을 환경 설정하십시오.
Distance: 서로 근접한 피처들을 중첩해 있다고 간주하고 동일한 가상 포인트 주위로 이동시킬 허용 오차 거리를 설정하십시오. 흔히 쓰이는 심볼 단위들을 지원합니다.
Placement methods: 배치 방법을 환경설정합니다:
고리(Ring): 표시할 피처 개수에 따라 반경이 달라지는 원 위에 모든 피처를 배치합니다.
동심 고리(Concentric rings): 동심원 집합을 이용해서 피처를 표시합니다.
그리드(Grid): 각 교차점에 포인트 심볼을 가진 정규 그리드를 생성합니다.
이동된 심볼은 Displacement lines 상에 배치됩니다. 변위 라인(displacement line)의 최소 간격은 포인트 심볼 렌더링 작업자의 설정을 따르지만, 그래도 Stroke width, Stroke color 및 Size adjustment 와 같은 일부 설정을 사용자 지정할 수 있습니다. (예를 들어 이런 사용자 지정 설정을 통해 렌더링된 포인트 사이의 간격을 늘릴 수 있습니다.)
Labels 그룹 옵션을 이용해서 포인트 라벨 작업을 수행할 수 있습니다. 라벨은 피처의 실제 위치가 아니라 이동된 심볼 근처에 배치됩니다.
참고
포인트 변위 렌더링 작업자는 피처 도형을 변경하지 않습니다. 즉 포인트가 제자리를 벗어나지 않는다는 뜻입니다. 포인트들은 초기 위치에 그대로 자리합니다. 그저 렌더링 목적을 위해 시각적으로만 바뀔 뿐입니다. 변위된 피처를 생성하고자 하는 경우 포인트 변위시키기 공간 처리 알고리즘을 대신 사용하십시오.
포인트 군집 렌더링 작업자
최근접 또는 중첩 포인트 피처 배치를 과장하는 Point Displacement 렌더링 작업자와는 달리, Point Cluster 렌더링 작업자는 근접 포인트들을 단일하게 렌더링된 마커 심볼 하나로 그룹화합니다. 서로 특정 거리 안에 있는 포인트들을 단일 심볼로 병합하는 것이죠. 단순히 검색 거리 안에 있는 첫번째 그룹에 할당하기 보다는, 형성되는 그룹 가운데 가장 가까운 그룹을 기반으로 포인트 집합체를 생성합니다.
주 대화창에서 다음과 같은 작업을 할 수 있습니다:
Cluster symbol 에서 포인트 군집을 표현하기 위한 심볼을 설정할 수 있습니다. 기본 렌더링은 글꼴 마커 심볼 레이어 상의
@cluster_size
변수 의 도움으로 합쳐진 피처들의 개수를 표시합니다.Renderer: 예를 들어 레이어의 피처를 어떻게 분류할지를 결정하는 (단일, 범주, 규칙 기반 등등의) 렌더링 작업자 유형을 선택할 수 있습니다.
Renderer Settings… 버튼을 누르면 평소와 같이 피처의 심볼을 환경 설정할 수 있습니다. 이 심볼은 군집화되지 않은 피처에만 표시되며, 군집화된 피처에는 Cluster symbol 이 적용된다는 사실을 기억하십시오. 또한 군집에 있는 모든 포인트 피처가 동일한 렌더링 범주에 속해 있기 때문에 동일한 색상이 적용될 경우, 이 색상은 군집의
@cluster_color
변수를 표현합니다.Distance: 피처들이 군집하는지 판단하는 데 고려할 최대 거리를 설정할 수 있습니다. 흔히 쓰이는 심볼 단위들을 지원합니다.
참고
포인트 군집 렌더링 작업자는 피처 도형을 변경하지 않습니다. 즉 포인트가 제자리를 벗어나지 않는다는 뜻입니다. 포인트들은 초기 위치에 그대로 자리합니다. 그저 렌더링 목적을 위해 시각적으로만 바뀔 뿐입니다. 군집 기반 피처를 생성하고자 하는 경우 k-평균 군집 형성 또는 DBSCAN 군집 형성 공간 처리 알고리즘을 대신 사용하십시오.
병합 피처 렌더링 작업자
Merged Features 렌더링 작업자는 복잡 심볼 또는 중첩하는 피처들을 균일하고 연속적인 지도 제작 심볼로 표현하기 위해 렌더링 전에 면(area)과 선(line) 피처들을 단일 객체로 “융합(dissolve)” 시킬 수 있습니다.
반전 폴리곤 렌더링 작업자
Inverted Polygon 렌더링 작업자는 레이어에 있는 폴리곤의 바깥을 채울 심볼을 지정할 수 있습니다. 앞에서와 마찬가지로 단일 심볼, 등급, 범주, 규칙 기반 또는 2.5D 같은 하위 렌더링 작업자를 선택할 수 있습니다.
열지도 렌더링 작업자
Heatmap 렌더링 작업자는 [멀티]포인트 레이어에 대해 실시간 동적 열지도를 생성할 수 있습니다. 사용자가 열지도 반경을 밀리미터, 포인트, 픽셀, 맵 단위 또는 인치로 지정할 수 있고, 열지도 스타일을 위한 색상표를 선택하고 편집할 수 있으며, 렌더링 속도와 품질 사이의 균형을 선택하기 위한 슬라이드 바를 이용할 수도 있습니다. 필드 또는 표현식을 통해 최대값 제한을 정의하고 포인트에 가중치를 줄 수도 있습니다. 피처를 추가 또는 제거하면 열지도 렌더링 작업자가 열지도 스타일을 자동적으로 업데이트합니다.
2.5D 렌더링 작업자
2.5D 렌더링 작업자를 이용해서 사용자 레이어의 피처에 2.5D 효과를 줄 수 있습니다. 먼저 Height 값(맵 단위)을 설정하십시오. 고정값, 사용자 레이어의 필드 가운데 하나, 또는 표현식으로 설정할 수 있습니다. 또 시각의 방향을 (0° 는 서쪽으로, 값이 올라갈수록 반시계 방향으로 돕니다) 재현하려면 Angle (도 단위)을 설정해야 합니다. Roof Color 및 Wall Color 을 설정하려면 고급 환경 설정 옵션을 사용하십시오. 만약 피처의 벽에 태양광 효과를 주고 싶다면, Shade walls based on aspect 옵션을 체크하도록 하십시오. Color 및 Size 값(맵 단위)을 설정하면 그림자 효과를 줄 수도 있습니다.
팁
다른 렌더링 작업자에서 2.5D 효과 이용하기
2.5D 렌더링 작업자에서 기본 스타일 설정을 마치고 나면, 다른 (단일 심볼, 범주, 등급) 렌더링 작업자로 변환시킬 수 있습니다. 2.5D 효과가 지속되는 동시에 다른 렌더링 작업자의 모든 특정 옵션도 쓸 수 있어 2.5D 효과를 정밀하게 조정할 수 있습니다. (예를 들어 멋진 2.5D 표현으로 범주 심볼을 그리거나 2.5D 심볼에 몇몇 기타 스타일을 추가할 수도 있습니다.) 그림자 및 “건물” 자체가 주변의 다른 피처를 가리지 않도록 하려면, 심볼 수준(
)을 활성화해야 할 수도 있습니다. 2.5D 높이 및 각도 값은 레이어의 변수에 저장되기 때문에, 이후 레이어 속성 대화창의 변수 탭에서 편집할 수 있습니다.내장 렌더링 작업자
Embedded Symbols 렌더링 작업자는 제공된 데이터소스의 ‘자체(native)’ 심볼을 표시할 수 있습니다. 주로 사전 정의된 심볼을 가지고 있는 KML
및 TAB
데이터셋이 이에 해당합니다.
16.1.3.2. 레이어 렌더링
심볼 탭에서 레이어의 모든 피처에 대해 일괄적으로 적용되는 다음 옵션들을 설정할 수도 있습니다:
Opacity : 이 도구를 통해 맵 캔버스에서 아래에 있는 레이어를 가시화할 수 있습니다. 슬라이드 바를 통해 사용자 벡터 레이어의 가시성을 필요에 따라 조정하십시오. 슬라이드 바 옆에 있는 메뉴에서 가시성을 정확한 백분율로 설정할 수도 있습니다.
Layer 및 Feature 수준의 Blending mode: 이 도구들을 통해 사용자가 그래픽 프로그램에서만 가능하다고 알고 있던 특별한 렌더링 효과를 줄 수 있습니다. 위 그리고 아래에 있는 레이어의 픽셀을 혼합 모드 에서 설명한 설정으로 혼합합니다.
Draw Effects 버튼: 레이어의 모든 피처에 대해 그리기 효과 를 줍니다.
Control feature rendering order: 피처 속성을 이용해서 피처를 어떤 순서로 렌더링해야 하는지에 대한 Z 순서를 정의할 수 있습니다. 체크박스를 체크한 다음 옆에 있는 버튼을 클릭하십시오. Define Order 대화창이 열리는데, 다음 작업들을 할 수 있습니다:
레이어 피처에 적용시킬 필드를 선택하거나 표현식을 작성합니다.
불러온 피처들을 어떤 순서로 배열할지 설정합니다. 예를 들어 오름차순(Ascending) 을 선택했다면, 높은 값을 가진 피처 아래에 낮은 값을 가진 피처를 렌더링합니다.
NULL 값을 반환하는 피처를 언제, 즉 맨 처음 (아래) 또는 마지막 (위)으로 렌더링할지 정의합니다.
사용자가 사용하고자 하는 규칙에 따라 앞의 단계를 얼마든지 반복하십시오.
첫 번째 규칙은 레이어에 있는 모든 피처에 적용돼, 반환 값에 따라 피처들을 Z 순서로 배열합니다. 그 다음 규칙은 동일한 (NULL 값 포함) 값을 가진, 즉 동일한 Z 수준의 각 피처 그룹에 적용돼 각 그룹에 있는 항목들을 배열합니다. 그 다음 규칙은 다시…
16.1.3.3. 기타 설정
심볼 수준
적층(積層) 심볼 레이어를 지원하는 (열지도 제외) 렌더링 작업자의 경우 각 심볼 수준의 렌더링 순서를 조정하는 옵션이 존재합니다.
대부분의 렌더링 작업자의 경우, 저장된 심볼 목록 하단에 있는 Advanced 버튼을 클릭한 다음 Symbol levels 를 선택하면 심볼 수준 옵션에 접근할 수 있습니다. 규칙 기반 렌더링 작업자 의 경우 Symbols Levels… 버튼으로 이 옵션에 직접 접근할 수 있는 반면, 포인트 변위 렌더링 작업자 의 경우 Rendering settings 대화창에 동일한 버튼이 있습니다.
심볼 수준을 활성화하려면, Enable symbol levels 를 체크하십시오. 복합 심볼, 라벨, 그리고 열로 나누어진 개별 심볼 레이어의 작은 표본이 번호와 함께 각 행에 표시됩니다. 이 번호들은 심볼 레이어를 그릴 렌더링 순서 수준을 나타냅니다. 번호 숫자가 낮을수록 먼저 그려져 아래에 남고, 높을수록 나중에 그려져 다른 레이어 위에 있게 됩니다.
참고
심볼 수준을 비활성화하면, 심볼 각각의 피처 순서에 따라 완전한 심볼을 그립니다. 위에 있는 심볼은 아래 있는 심볼을 혼란스럽게 만들 뿐입니다. 게다가, 비슷한 심볼들이 서로 “병합”되지 않을 것입니다.
데이터 정의 크기 범례
레이어를 비례 심볼 또는 다변량 렌더링 으로 렌더링하거나 레이어에 척도를 적용한 크기 도표 를 적용한 경우, 레이어 패널 과 인쇄 조판기 범례 둘 다에 척도를 적용한 심볼을 표시하도록 할 수 있습니다.
Data-defined Size Legend 대화창을 활성화시켜 심볼을 렌더링하려면, 저장된 심볼 목록 아래 있는 Advanced 버튼을 눌러 해당 옵션을 선택하십시오. 도표의 경우, Legend 탭에서 해당 옵션을 사용할 수 있습니다. 이 대화창에서 다음과 같은 옵션을 설정할 수 있습니다:
범례 유형을 선택합니다: Legend not enabled, Separated legend items 그리고 Collapsed legend 가운데 하나를 선택할 수 있습니다. 마지막 옵션을 선택했다면 범례 항목을 하단(Bottom) 정렬할지 중앙(Center) 정렬할지 선택할 수 있습니다.
범례 표현에 사용할 심볼 을 미리보기할 수 있습니다.
범례에 제목을 삽입합니다.
사용할 범주의 크기를 재조정합니다: QGIS는 기본적으로 범례의 범주를 (Natural Pretty Breaks 기반으로) 5단계로 나눕니다. 그러나 Manual size classes 옵션을 사용하면 사용자 지정 범주를 적용시킬 수 있습니다. 및 버튼을 사용해서 사용자 지정 범주의 값과 라벨을 설정하십시오.
범례가 접혀 있는 경우:
Align symbols: 심볼을 가운데 또는 하단으로 정렬시킬 수 있습니다.
심볼에서 해당 범례 텍스트까지를 가리키는 Line symbol 수평 지시선을 환경 설정할 수 있습니다.
대화창의 오른쪽 패널에 범례의 미리보기를 표시하고, 사용자가 파라미터를 설정하는 대로 업데이트합니다.
참고
현재, 레이어 심볼을 위한 데이터 정의 크기 범례는 단일 심볼, 범주 또는 등급 심볼을 사용하는 포인트 레이어에만 적용할 수 있습니다.
애니메이션 설정
Animation settings 패널을 활용하면 어떤 심볼이든 애니메이션화된 심볼 로 만들 수 있습니다. 이 패널에서 심볼에 대한 애니메이션을 활성화하고 해당 심볼을 다시 그리기 위한 특정 프레임 레이트(frame rate)를 설정할 수 있습니다.
심볼의 최고 수준에서, 대화창 우하단에 있는 Advanced 메뉴를 선택하십시오.
Animation settings 옵션을 찾으십시오.
Frame rate 를 환경설정하십시오. 예를 들면 애니메이션의 속도를 조절할 수 있습니다.
이제 모든 하위 심볼 데이터 정의 속성에서 어떤 속성을 애니메이션화시키고 싶다면
@symbol_frame
변수를 사용하면 됩니다.
예를 들어 심볼의 회전을 데이터 정의 표현식 @symbol_frame % 360
로 설정하면, 시간이 지나면서 심볼이 회전할 것입니다. 이때 심볼의 프레임 레이트가 회전 속도를 정하게 됩니다:
그리기 효과
레이어 렌더링을 향상시키고 최종 맵을 다른 소프트웨어로 렌더링하는 일을 피하기 (또는 적어도 줄이기) 위해, QGIS는 또다른 강력한 기능을 제공합니다: Draw Effects 옵션은 사용자가 벡터 레이어의 가시화를 직접 조정할 수 있도록 그리기 효과를 추가합니다.
이 옵션은 레이어 렌더링 그룹 (전체 레이어에 적용) 또는 심볼 레이어 속성 (해당하는 피처에 적용)에 있습니다. 이 두 옵션을 함께 사용할 수도 있습니다.
대화창의Draw effects 옵션을 체크한 다음 Customize effects 버튼을 클릭하면 그리기 효과를 활성화시킬 수 있습니다. Effect Properties 대화창이 열리는데 (그림 16.18 참조) 다음과 같은 유형의 효과들을 사용자 지정 옵션과 함께 쓸 수 있습니다:
소스(Source): 레이어 속성 환경 설정에 따라 피처의 원본 스타일을 그립니다. 해당 스타일의 혼합 모드 와 그리기 모드 는 물론, Opacity 도 조정할 수 있습니다. 이 세 가지는 모든 효과 유형의 공통 속성입니다.
흐리기(Blur): 벡터 레이어에 흐리기 효과를 줍니다. 사용자가 Blur type (Stack blur (fast) 또는 Gaussian blur (quality)) 및 Blur strength 를 변경할 수 있습니다.
색상화(Colorise): 이 효과를 통해 단일 색조를 이용한 어떤 스타일을 만들 수 있습니다. 기반은 언제나 심볼의 회색조 버전으로, 다음을 설정할 수 있습니다:
그림자 생성(Drop Shadow): 이 효과를 이용하면 객체에 그림자를 추가하는데, 마치 차원을 하나 더한 것처럼 보입니다. 그림자의 방향 및 소스 객체와의 근접도를 결정하는 Offset 각도 및 거리를 변경해서 이 효과를 사용자 지정할 수 있습니다. 는 그림자 효과의 Blur radius 및 Color 를 변경할 수 있는 옵션도 보유하고 있습니다.
내부 그림자(Inner Shadow): 이 효과는 Drop Shadow 효과와 비슷하지만, 피처 경계선 내부에 그림자 효과를 추가합니다. Drop Shadow 효과와 동일한 사용자 지정 옵션을 설정할 수 있습니다.
내부 광원(Inner Glow): 객체 내부에 광원 효과를 추가합니다. 광원의 Spread (너비) 또는 Blur radius 를 조정해서 이 효과를 사용자 지정할 수 있습니다. 흐리기 반경은 사용자가 흐리기 효과를 주려 하는 위치가 피처 경계선에 얼마나 근접해 있는지를 지정합니다. 또한, 광원의 색상을 Single color 또는 Color ramp 로 사용자 지정할 수 있는 옵션도 있습니다.
외부 광원(Outer Glow): 이 효과는 Inner Glow 효과와 비슷하지만, 피처 경계선 외부에 광원 효과를 추가합니다. Inner Glow 효과와 동일한 사용자 지정 옵션을 설정할 수 있습니다.
변형(Transform): 이 효과는 심볼의 형태를 변형시킬 수 있습니다. 사용자 지정을 위해 사용할 수 있는 첫 번째 옵션은 Reflect horizontal 및 Reflect vertical 으로, 수평 그리고/또는 수직 축을 기준으로 거울상을 실제로 생성합니다. 나머지 옵션 4 개는 다음과 같습니다:
Shear X,Y: X 그리고/또는 Y축을 따라 피처를 기울입니다.
Scale X,Y: X 그리고/또는 Y축을 따라 피처를 지정한 백분율로 확대하거나 축소합니다.
Rotation: 피처의 중심점을 기준으로 피처를 회전시킵니다.
Translate X,Y: X 그리고/또는 Y축을 기준으로 지정한 거리에 따라 피처의 위치를 변경합니다.
하나 이상의 그리기 효과를 동시에 줄 수 있습니다. 효과 목록에 있는 체크박스를 통해 어떤 효과를 활성화/비활성화시켜보십시오. Effect type 옵션을 이용하면 선택한 효과 유형을 변경할 수 있습니다. Move up 및 Move down 버튼으로 효과의 순서를 바꿀 수 있고, Add new effect 와 Remove effect 버튼을 통해 효과를 추가하거나 제거할 수도 있습니다.
모든 그리기 효과 유형에 사용할 수 있는 공통 옵션이 몇 개 있습니다. Opacity 및 Blend mode 옵션은 레이어 렌더링 에서 설명하는 옵션과 비슷하게 동작하며, 변형 효과를 제외한 모든 그리기 효과에 사용할 수 있습니다.
모든 그리기 효과에서 Draw mode 옵션을 쓸 수도 있는데, 심볼을 렌더링할지 그리고/또는 수정할지를 다음 몇몇 규칙에 따라 선택할 수 있습니다:
그리기 효과는 위에서 아래 순서로 렌더링합니다.
Render only 모드는 효과를 가시화할 것이라는 뜻입니다.
Modifier only 모드는 효과를 가시화하지는 않지만 적용된 변경 사항을 다음 (바로 아래에 있는) 효과로 넘길 것이라는 의미입니다.
Render and Modify 모드는 효과를 가시화하고 적용된 변경 사항을 다음 효과로 넘길 것입니다. 어떤 효과가 효과 목록 제일 위에 있거나 또는 바로 위에 있는 효과가 수정 모드가 아닌 경우, (소스 효과와 비슷하게) 레이어 속성에서 가져온 원본 소스 심볼에 해당 효과를 줄 것입니다.
16.1.4. 라벨 속성
Labels 속성 대화창은 벡터 레이어에 대해 스마트 라벨 작업 환경을 설정하기 위해 필요한 그리고 적절한 모든 기능을 제공합니다. Layer Styling 패널에서 또는 라벨 툴바 의 Layer Labeling Options 아이콘을 통해 이 대화창을 열 수 있습니다.
먼저 드롭다운 목록에서 라벨 작업 방식을 선택합니다. 다음 4 개의 옵션을 사용할 수 있습니다:
다음으로 Single labels 옵션을 선택했다고 가정하겠습니다. 다음 대화창이 열립니다:
대화창 상단에 Value 드롭다운 목록이 활성화됩니다. 이 목록에서 라벨 작업에 사용할 속성 열을 선택할 수 있습니다. 디스플레이 필드 를 기본값으로 사용합니다. 표현식을 바탕으로 라벨을 정의하고 싶다면 을 클릭하십시오 – 표현식을 기반으로 라벨 정의하기 를 참조하세요.
참고
범례 탭에서 라벨을 활성화시키면 범례에 라벨을 라벨 서식과 함께 항목으로 표시할 수 있습니다.
여러 탭에 라벨을 사용자 지정할 수 있는 다음 옵션들이 표시됩니다:
라벨 설정 에서 각 속성을 설정하는 방법을 설명하고 있습니다.
16.1.4.1. 자동화된 배치 엔진 설정하기
자동화된 배치 설정을 사용하면 라벨의 프로젝트 수준 및 자동화된 습성 환경을 설정할 수 있습니다. Labels 탭 우상단에 있는 Automated placement settings (applies to all layers) 버튼을 클릭하면 다음 옵션을 가지고 있는 대화창이 열립니다:
Number of candidates: 라인 및 폴리곤 피처의 크기를 바탕으로 배치할 수 있는 라벨의 개수를 계산해서 피처에 할당합니다. 피처가 더 길거나 넓을수록 더 많은 후보를 가지게 되므로 해당 피처의 라벨이 충돌할 위험을 덜고 더 잘 배치할 수 있습니다.
Text rendering: 맵 캔버스 또는 조판 을 PDF 또는 SVG로 내보낼 때 라벨 렌더링 위젯의 기본값을 설정합니다. Always render labels as text 를 선택한 경우 (잉크스케이프 같은) 외부 응용 프로그램에서 라벨을 일반 텍스트처럼 편집할 수 있습니다. 하지만 렌더링의 질이 하락하는 부작용이 있습니다. 게다가 버퍼 같은 특정 텍스트 설정이 적용된 경우 렌더링 오류가 생길 수도 있습니다. 라벨을 외곽선으로 내보내는 Always render labels as paths (recommended) 옵션을 추천하는 이유입니다.
Allow truncated labels on edges of map: 일부가 맵 범위 바깥으로 벗어나는 라벨을 렌더링할지 여부를 제어합니다. 이 옵션을 체크하면 (라벨을 완전히 가시 영역 안으로 배치할 방법이 없는 경우) 이런 라벨을 표시할 것입니다. 체크를 해제하면 일부만 보이는 라벨을 무시할 것입니다. 이 설정은 조판기 맵 항목 에서의 라벨 표시에는 아무 영향도 주지 않는다는 사실을 기억하십시오.
Show all labels for all layers (i.e. including colliding objects): 이 옵션을 레이어별로 설정할 수도 있다는 사실을 기억하십시오. (렌더링 탭 참조)
Show unplaced labels: 어떤 중요한 라벨이 (예를 들면 중첩 또는 다른 제약조건 때문에) 맵에서 없어졌는지 여부를 확인할 수 있습니다. 이런 라벨은 사용자 지정 색상으로 표시됩니다.
Show candidates (for debugging): 맵 위에 라벨 배치용으로 생성된 모든 후보를 보여주는 상자들을 그릴지 여부를 제어합니다. 옵션 이름대로, 이 옵션은 디버깅 및 서로 다른 라벨 작업 설정이 주는 효과를 점검하는 데에만 유용합니다. 사용자가 직접 라벨 툴바 의 도구를 사용해서 더 나은 배치 작업을 하는 경우 이 옵션이 편리할 수도 있습니다.
Project labeling version: QGIS는 두 가지 서로 다른 라벨 배치 자동화 버전을 지원합니다:
Version 1: (QGIS 3.10 이하 버전이 사용하는, 그리고 이전 버전에서 생성된 프로젝트 파일을 QGIS 3.12 이후 버전에서 열었을 경우 사용되는) 이전 체계입니다. 버전 1은 라벨 및 방해물의 우선 순위를 “대강의 안내” 로만 취급하기 때문에, 이 버전에서는 우선 순위가 낮은 라벨이 우선 순위가 높은 방해물 위로 배치될 수도 있습니다. 따라서 이 버전을 사용할 경우 원하는 라벨 작업 산출물을 얻기 어렵게 되므로, 옛날 프로젝트와의 호환성만을 위해 사용하는 것을 추천합니다.
Version 2 (추천): QGIS 3.12 이후 버전에서 생성된 새 프로젝트에서 사용되는 기본 체계입니다. 버전 2에서는 라벨이 방해물 을 중첩할 수 있는 경우를 규정하는 논리를 재작업했습니다. 이 새로운 논리는 어떤 라벨도 스스로의 우선 순위와 비교해 더 큰 방해물 가중치를 가진 어떤 방해물도 중첩할 수 없도록 하고 있습니다. 그 결과, 이 버전은 훨씬 예상 가능하고 쉽게 이해할 수 있는 라벨 작업 산출물을 내놓습니다.
16.1.4.2. 규칙 기반 라벨 작업
규칙 기반 렌더링 에서처럼, 규칙 기반 라벨 작업으로 한 번에 여러 라벨을 환경 설정할 수 있고 표현식 필터와 축척 범위를 바탕으로 선택적으로 적용할 수 있습니다.
규칙을 생성하려면:
새 대화창이 나타나면 다음을 입력하십시오:
Description: Labels 탭에 있는 규칙을 식별하기 위해 쓰이는, 그리고 인쇄 조판 범례에 라벨 범례 항목 으로 쓰이는 텍스트입니다.
Filter: 라벨 설정을 적용할 피처를 선택하기 위한 표현식입니다.
기존에 설정된 규칙이 존재하는 경우, Else 옵션을 사용하면 같은 그룹 안에 있는 규칙의 어떤 필터와도 일치하지 않는 피처를 모두 선택할 수 있습니다.
라벨 규칙이 적용되어야 할 축척 범위 를 설정할 수 있습니다.
Labels 그룹 프레임에서 사용할 수 있는 옵션들은 일반적인 라벨 설정들 입니다. 이들을 환경 설정한 다음 OK 버튼을 누르십시오.
기존 규칙들을 요약한 내용이 주 대화창에 (그림 16.29 참조) 표시됩니다. 여러 개의 규칙을 추가할 수 있고, 드래그&드롭으로 이 규칙들을 재정렬하거나 서로 겹치게 배열할 수 있습니다. 규칙을 버튼으로 제거할 수도 있고, 버튼 또는 더블클릭으로 편집할 수도 있습니다.
16.1.4.3. 표현식을 기반으로 라벨 정의하기
단일 라벨 또는 규칙 기반 라벨 작업 가운데 어떤 유형을 선택하든, QGIS는 라벨 피처에 표현식을 이용할 수 있습니다.
Single labels 방법을 사용한다고 가정하고, 레이어 속성 대화창의 Labels 탭에 있는 Value 드롭다운 목록 옆에 있는 아이콘을 클릭하십시오.
그림 16.30 는 알래스카 수목 레이어를 수목 유형 및 면적으로 라벨 작업하기 위한 표현식의 예시를 보여주고 있습니다. ‘VEGDESC’ 필드, 몇몇 설명 텍스트, 그리고 format_number()
함수와 $area
를 결합해서 라벨을 더 보기 좋게 만듭니다.
표현식 기반 라벨 작업은 쉽습니다. 사용자가 주의해야 할 점은 다음 세 가지뿐입니다:
모든 요소들(문자열, 필드, 함수)을
concat
,+
또는||
같은 문자열 연결 함수로 결합시켜야 합니다. (NULL 또는 숫자 값을 쓰는 경우) 이런 모든 도구를 써도 사용자의 필요를 충족시키지 못 하는 경우가 있을 것이라는 점을 기억하십시오.문자열은 ‘작은따옴표’ 안에 작성해야 합니다.
필드는 “큰따옴표” 안에, 또는 아무 따옴표도 없이 작성해야 합니다.
예시를 몇 가지 살펴보겠습니다:
‘name’ 및 ‘place’ 필드 2개를 쉼표로 구분하는 라벨:
"name" || ', ' || "place"
다음을 반환합니다:
John Smith, Paris
‘name’ 및 ‘place’ 필드 2개와 다른 텍스트를 바탕으로 하는 라벨:
'My name is ' + "name" + 'and I live in ' + "place" 'My name is ' || "name" || 'and I live in ' || "place" concat('My name is ', name, ' and I live in ', "place")
다음을 반환합니다:
My name is John Smith and I live in Paris
‘name’ 및 ‘place’ 필드 2개와 다른 텍스트를 서로 다른 연결 함수로 결합하는 라벨:
concat('My name is ', name, ' and I live in ' || place)
다음을 반환합니다:
My name is John Smith and I live in Paris
또는 ‘place’ 필드가 NULL 값인 경우 다음을 반환합니다:
My name is John Smith
‘name’ 및 ‘place’ 필드 2개와 설명 텍스트를 바탕으로 하는 여러 줄의 라벨:
concat('My name is ', "name", '\n' , 'I live in ' , "place")
다음을 반환합니다:
My name is John Smith I live in Paris
필드와
$area
함수로 장소명 및 변환 단위의 반올림된 면적을 바탕으로 하는 라벨:'The area of ' || "place" || ' has a size of ' || round($area/10000) || ' ha'
다음을 반환합니다:
The area of Paris has a size of 10500 ha
CASE ELSE 조건을 생성해봅시다. ‘population’ 필드의 인구 값이 5만 명 이하일 경우 ‘town’, 초과할 경우 ‘city’ 로 라벨을 생성하려면:
concat('This place is a ', CASE WHEN "population" <= 50000 THEN 'town' ELSE 'city' END)
다음을 반환합니다:
This place is a town
도시의 이름만 표시하고 다른 피처의 라벨은 표시하지 않으려면(“city” 의 맥락은 바로 앞의 예시를 참조하세요):
CASE WHEN "population" > 50000 THEN "NAME" END
다음을 반환합니다:
Paris
표현식 작성기에서 볼 수 있듯이, QGIS는 사용자 데이터의 라벨을 위한 단순 및 복잡 표현식을 생성하는 데 쓸 수 있는 함수를 수백 개나 제공하고 있습니다. 표현식에 관한 자세한 정보 및 예시를 살펴보려면 표현식 을 참조하세요.
16.1.4.4. 라벨 작업에 데이터 정의 무시 이용하기
Data defined override 기능을 통해, 속성 테이블의 항목 또는 그에 기반한 표현식이 라벨 작업 설정을 무시하게 만들 수 있습니다. 앞에서 설명한 라벨 작업 옵션 대부분의 값을 설정하는 데 이 기능을 이용할 수 있습니다.
예를 들어 알래스카 QGIS 예시 데이터셋을 사용해서 airports
레이어에 군수 목적을 나타내는 USE
를 기반으로 공항 이름 라벨을 붙여봅시다. 이를테면 공항에 접근할 수 있는 것이:
군대일 경우 회색, 크기 8로 표시하고
다른 경우 파란색, 크기 10으로 표시합니다.
이렇게 하려면 레이어의 NAME
필드에 대해 라벨 작업을 활성화한 다음 (라벨 설정 참조):
Text 탭을 선택하십시오.
Edit… 를 선택해서 다음과 같이 입력하십시오:
CASE WHEN "USE" like '%Military%' THEN 8 -- because compatible values are 'Military' -- and 'Joint Military/Civilian' ELSE 10 END
그 다음 색상 속성 옆에 있는 버튼을 클릭하고, 다음과 같이 입력한 후 검증하십시오:
CASE WHEN "USE" like '%Military%' THEN '150, 150, 150' ELSE '0, 0, 255' END
라벨의 어떤 속성이든, 이와 같이 원하는 대로 사용자 지정할 수 있습니다. 데이터 정의 무시 설정 에서 Data-define override 위젯의 설명 및 조작법에 대한 자세한 내용을 참조하세요.
팁
데이터 정의 무시를 사용해서 다중부분 피처의 모든 부분에 라벨 붙이기
사용자의 라벨 속성과는 별개로 다중부분(multi-part) 피처용 라벨 작업을 설정할 수 있는 옵션이 존재합니다. 렌더링, Feature options
를 선택하고, Label every part of multipart-features 옆에 있는 Data-define override 버튼을 클릭한 다음 데이터 정의 무시 설정 에서 설명하는 대로 라벨을 정의하십시오.
라벨 툴바
Label Toolbar 는 (라벨 호출 을 포함하는) 라벨 또는 도표 속성을 조작할 수 있는 몇몇 도구를 제공합니다:
Highlight Pinned Labels, Diagrams and Callouts: 라벨 항목이 속한 벡터 레이어가 편집 가능 상태인 경우 녹색으로 강조되고, 편집 가능 상태가 아니라면 파란색을 유지합니다.
Toggle Display of Unplaced Labels: 어떤 중요한 라벨이 (예를 들면 중첩 또는 다른 제약조건 때문에) 맵에서 누락되었는지 여부를 확인할 수 있습니다. 이런 라벨은 사용자 지정이 가능한 색상으로 표시됩니다. (자동화된 배치 엔진 설정하기 를 참조하세요.)
Pin/Unpin Labels and Diagrams: 어떤 영역을 클릭하거나 드래그하면, 해당 영역에 있는 항목들에 핀을 꽂습니다. Shift 키를 누른 채 어떤 영역을 클릭하거나 드래그하면, 해당 영역의 항목들에 꽂혀 있는 핀을 제거합니다. 마지막으로, Ctrl 키를 누른 채 어떤 영역을 클릭하거나 드래그하면 해당 영역의 항목들의 핀 상태를 반전시킬 수 있습니다.
Show/Hide Labels and Diagrams: 항목을 클릭하거나 kbd:Shift 키를 누른 채 어떤 영역을 클릭&드래그하면 해당 항목을 숨깁니다. 항목이 숨겨져 있는 경우, 그냥 해당 피처를 한번 클릭하면 가시성을 복원합니다. 영역을 드래그하면 해당 영역에 있는 모든 항목의 가시성을 복원할 것입니다.
Move a Label, Diagram or Callout: 항목을 클릭해서 선택한 다음 원하는 위치를 클릭해서 해당 위치로 옮깁니다. 새로운 좌표는 보조 필드 에 저장됩니다. 이 도구로 항목을 선택한 다음 Delete 키를 누르면 저장된 위치값을 삭제할 것입니다.
Rotate a Label: 라벨을 클릭해서 선택한 다음 원하는 기울기가 적용되도록 다시 클릭하십시오. 마찬가지로, 새 각도는 보조 필드에 저장됩니다. 이 도구로 라벨을 선택한 다음 Delete 키를 누르면 해당 라벨의 기울기값을 삭제할 것입니다.
Change Label Properties: 이 아이콘을 누른 다음 라벨을 클릭하면, 해당 라벨의 속성을 변경할 수 있는 대화창이 열립니다. 라벨 그 자체, 라벨의 좌표, 각도, 글꼴, 크기, 멀티라인 정렬 등등 그 속성이 필드에 매핑돼 있는 한 해당 속성을 변경할 수 있습니다. 여기에서 피처의 모든 부분에 라벨을 붙이는 Label every part of a feature 옵션을 설정할 수 있습니다.
경고
라벨 도구는 현재 필드 값을 덮어 씁니다
라벨 작업을 사용자 지정하는 데 Label toolbar 를 사용하면 매핑된 필드에 새 속성값을 실제로 작성합니다. 따라서, 사용자가 나중에 필요할 수도 있는 데이터를 무심코 덮어 쓰지 않도록 주의하십시오!
참고
기저 데이터소스를 수정하지 않은 채 라벨 작업(위치 등등)을 사용자 지정하는 데 보조 저장소 속성 메커니즘을 사용할 수도 있습니다.
맵 캔버스에서 라벨을 사용자 지정하기
Label Toolbar 와 데이터 정의 무시 설정을 결합하면 맵 캔버스에 있는 라벨을 조작할 (이동시킬, 편집할, 기울기를 적용할) 수 있습니다. 이제 Move Label, Diagram or Callout 기능에 데이터 정의 무시 기능을 이용하는 예시를 설명할 것입니다. (그림 16.33 를 참조하세요.)
QGIS 예시 데이터셋으로부터
lakes.shp
레이어를 가져옵니다.레이어를 더블클릭해서 레이어 속성 대화창을 엽니다. Labels 탭을 선택하고 Placement 를 클릭한 다음 Offset from centroid 를 선택합니다.
Data defined 항목을 찾아 아이콘을 클릭해서 Coordinate 의 필드 유형을 정의합니다. X 값으로
xlabel
을, Y 값으로ylabel
을 선택합니다. 이제 아이콘이 노란색으로 강조됐을 겁니다.호수로 확대/축소합니다.
라벨 툴바의 아이콘을 클릭합니다. 이제 또다른 위치로 라벨을 직접 옮길 수 있습니다. (그림 16.34 을 참조하세요.) 라벨의 새 위치가 속성 테이블의
xlabel
및ylabel
열에 저장됩니다.다음을 사용해서 각 호수와 옮긴 라벨을 연결하는 라인을 추가할 수도 있습니다:
라벨의 호출 속성
또는 다음 표현식과 함께 도형 생성기 심볼 레이어 를 사용하는 경우:
make_line( centroid( $geometry ), make_point( "xlabel", "ylabel" ) )
참고
편집할 수 있는 기저 데이터소스가 없어도 보조 저장소 속성 메커니즘을 데이터 정의 속성과 함께 사용할 수도 있습니다.
16.1.5. 도표 속성
Diagrams 탭에서 벡터 레이어에 그래픽을 중첩시킬 수 있습니다. (그림 16.35 참조)
현재 도표의 핵심 구현은 다음을 지원하고 있습니다:
Pie chart: 원형 통계 그래픽인 원형 차트로, 숫자로 나타낸 비율을 보여주는 조각들로 나누어집니다. 각 조각의 원호 길이는 각 조각이 나타내는 양과 비례합니다.
Stacked bars: 누적 막대 그래프로, 각 속성을 표현하는 여러 색상의 막대들을 수직 또는 수평으로 연달아 쌓습니다.
Diagrams 탭의 우상단에 있는 Automated placement settings (applies to all layers) 버튼을 클릭하면 맵 상에 있는 도표 라벨의 배치 를 제어할 수 있습니다.
팁
도표 유형을 재빨리 바꾸기
서로 다른 도표 유형들의 설정이 거의 동일하다는 점을 고려하면, 사용자가 도표를 구성할 때 도표 유형을 쉽게 변경해서 어떤 유형이 사용자 데이터를 아무 손실 없이 적절하게 표현하는지 확인할 수 있습니다.
각 도표 유형 별로, 속성은 다음과 같은 여러 탭으로 나누어져 있습니다:
16.1.5.1. 속성
Attributes 탭은 도표에 어떤 변수를 표시할지 정의합니다. add item 버튼을 이용해서 ‘Assigned Attributes’ 패널로 원하는 필드를 선택해 넣으십시오. 표현식 으로 생성한 속성도 사용할 수 있습니다.
어떤 행이든 클릭&드래그하면 위 아래로 이동시켜 속성이 표시되는 방식을 정렬시킬 수 있습니다. 항목을 더블 클릭해서 ‘Legend’ 열에 있는 라벨을 변경하거나, 속성 색상을 변경할 수도 있습니다.
이 라벨은 인쇄 조판기 또는 레이어 트리의 범례에 표시되는 기본 텍스트입니다.
16.1.5.2. 렌더링
Rendering 탭은 도표가 어떻게 보일지를 정의합니다. 이 탭은 통계값들을 건드리지 않는, 다음과 같은 일반 설정들을 제공합니다:
그래픽의 투명도, 외곽선 너비 및 색상
도표 유형에 따라:
그래픽에 그리기 효과 의 사용
이 탭에서 도표의 가시성을 서로 다른 옵션들을 통해 관리 및 미세 조정할 수 있습니다:
Diagram z-index: 도표들이 어떤 순서로 그려지는지, 그리고 라벨 위에 그려질지 여부를 제어합니다. 높은 인덱스를 가진 도표가 다른 도표 및 라벨 위에 그려집니다.
Show diagram: 특정 도표만 렌더링되도록 할 수 있습니다.
Always Show: 특정 도표가 다른 도표 또는 맵 라벨과 중첩하더라도 언제나 렌더링되도록 선택합니다.
축척에 따른 가시성 을 설정합니다.
16.1.5.3. 크기
Size 탭은 선택한 통계를 어떻게 표현할지 설정합니다. 도표의 크기 단위 는 ‘Millimeters’, ‘Points’, ‘Pixels’, ‘Map Units’ 또는 ‘Inches’ 입니다. 다음 가운데 하나를 선택할 수 있습니다:
Fixed size: 모든 피처의 그래픽을 유일한 크기로 표현합니다. (히스토그램에는 적용되지 않습니다.)
Scaled size: 레이어 속성을 이용하는 표현식을 기반으로 크기를 결정합니다:
Attribute 란에서 필드를 선택하거나 표현식을 작성한 다음
Find 를 눌러 해당 속성의 Maximum value 를 반환받거나, 위젯에 사용자 지정 값을 입력하십시오.
히스토그램과 누적 막대 그래프의 경우, 속성의 Maximum value 를 나타내는 데 사용되는 Bar length 값을 입력하십시오. 각 피처 별로 이 비율을 유지하기 위해 막대 길이를 선형적으로 축척 조정할 것입니다.
원형 차트와 텍스트 도표의 경우, 속성의 Maximum value 를 나타내는 데 사용되는 Size 값을 입력하십시오. 각 피처 별로 이 비율을 (
0
에서부터) 유지하기 위해 원의 면적 또는 지름을 선형적으로 축척 조정할 것입니다. 하지만 작은 도표의 경우 Minimum size 를 설정할 수 있습니다.
16.1.5.4. 배치
Placement 탭에서 도표의 위치를 정의합니다. 레이어 도형 유형에 따라, 배치를 위한 서로 다른 옵션을 제공하고 있습니다(자세한 내용은 배치 참조):
Around point 또는 Over point: 포인트 도형 용입니다. 전자는 적용할 반경도 설정해야 합니다.
Around line 또는 Over line: 라인 도형 용입니다. 포인트 객체와 마찬가지로, 전자는 어느 한 쪽으로의 거리를 설정해야 합니다. 사용자는 객체를 기준으로 (라인의 ‘above’, ‘on’ 그리고/또는 ‘below’) 도표 배치를 지정할 수 있습니다. 한 번에 여러 옵션을 함께 선택할 수도 있습니다. 이 경우, QGIS가 도표의 최적 위치를 찾을 것입니다. 라인 방향을 이용해서 도표의 위치를 설정할 수도 있다는 점을 기억하십시오.
Around centroid (설정된 Distance 에), Over centroid, Using perimeter 및 Inside polygon: 폴리곤 객체 용 옵션입니다.
Coordinate 그룹: 피처 별로 도표 배치를 직접 제어할 수 있습니다. 피처의 속성 또는 표현식을 사용해서 X 및 Y 좌표를 설정합니다. 라벨 및 도표 이동 도구를 사용해서 좌표 정보를 채울 수도 있습니다.
Priority 부분에서 각 도표의 배치 우선 순위를 정의할 수 있습니다. 예를 들어 서로 다른 도표 또는 라벨 후보들이 동일 위치에 존재하는 경우, 더 높은 우선 순위를 가진 항목이 표시되고 나머지 후보들은 표시되지 않을 수도 있습니다.
Discourage diagrams and labels from covering features: 방해물 로 사용할 피처를 정의합니다. 예를 들어 QGIS는 이런 피처 위로 도표든 라벨이든 배치하지 않으려 할 것입니다. 그 다음 우선 순위를 사용해서 더 높은 가중치를 가진 방해물로 인해 도표를 누락해도 될지를 평가합니다.
16.1.5.5. 옵션
Options 탭에서 히스토그램과 누적 막대 그래프를 설정할 수 있습니다. 수평 및 수직 도표에 대해 Bar orientation 이 Up, Down, Right 또는 Left 가 되어야 할지 선택할 수 있습니다.
16.1.5.6. 범례
Legend 탭에서, 레이어 패널 및 인쇄 조판기 범례 의 레이어 심볼 옆에 도표 항목을 표시할지 여부를 선택할 수 있습니다:
Show legend entries for diagram attributes: 이 옵션을 체크하면 범례에 Attributes 탭에서 할당했던
Color
및Legend
속성을 표시합니다.그리고 도표에 척도 크기 가 사용된 경우, Legend Entries for Diagram Size… 버튼을 클릭하면 범례에 있는 도표 심볼 속성의 환경을 설정할 수 있습니다. 이 버튼은 Data-defined Size Legend 대화창을 여는데, 데이터 정의 크기 범례 에서 이 대화창의 옵션을 설명하고 있습니다.
설정을 마치면, 인쇄 조판기 범례의 레이어 심볼 옆에도 도표 범례 항목이 (색상 및 도표 크기 속성이) 표시됩니다.
16.1.6. 마스크 속성
Masks 탭에서 다른 모든 레이어의 심볼 레이어 또는 라벨과 중첩하는 현재 레이어 심볼을 환경 설정할 수 있습니다. 즉 중첩하는 경우 색상이 비슷해 구분하기 힘든 심볼 및 라벨의 가독성을 향상시킬 수 있다는 뜻입니다. 항목 주변에 사용자 지정한 투명 마스크를 추가해서 현재 레이어의 심볼 레이어의 일부분을 “숨깁니다”.
활성화된 레이어에 마스크를 적용하려면, 먼저 프로젝트에서 마스크 심볼 레이어 또는 마스크 라벨 을 켜야 합니다. 그 다음 Masks 탭에서 다음을 확인하십시오:
Masked symbol layers: 현재 레이어의 모든 심볼 레이어를 트리 구조로 목록화합니다. 이 목록에서 선택한 마스크 소스와 중첩하는 경우 투명하게 “누락” 시키고자 하는 심볼 레이어 항목을 선택할 수 있습니다.
Mask sources 탭: 프로젝트에 정의되어 있는 모든 마스크 라벨과 마스크 심볼 레이어들의 목록입니다. 선택한 마스크 심볼 레이어를 덮는 마스크를 생성할 항목을 선택하십시오.
16.1.7. 3D 뷰 속성
3D View 탭은 3D 맵 뷰 도구에서 묘사되어야 할 벡터 레이어를 위한 설정을 제공합니다.
레이어를 3차원으로 표시하려면, 탭 상단에 있는 콤보박스에서 다음 가운데 하나를 선택하십시오:
Single symbol: 속성이 데이터 정의 되었을 수도 있고 아닐 수도 있는 공통 3D 심볼을 사용해서 피처를 렌더링합니다. 각 레이어 도형 유형에 대한 자세한 내용은 3D 심볼 설정하기 를 읽어보십시오.
Rule-based: 표현식 기반과 축척 범위를 기반으로 여러 심볼의 환경을 정의하고 선택적으로 적용시킬 수 있습니다. 그 방법에 대한 자세한 내용은 규칙 기반 렌더링 을 참조하세요.
주의
심볼 표고와 지형 설정에는 Elevation 탭을 사용하는 편이 좋습니다.
3D View 탭에서 피처의 표고 및 고도와 관련된 (Altitude clamping, Altitude binding, Extrusion 또는 Height 등의) 속성은 레이어의 표고 속성 으로부터 기본값을 상속받기 때문에, Elevation 탭 안에서 설정하는 편이 좋을 것입니다.
더 나은 성능을 위해 배후에서 멀티스레드 작업을 통해 벡터 레이어의 데이터를 불러온 다음, 타일로 렌더링합니다. 이때 3D 뷰 탭의 Layer rendering 부분에서 타일의 크기를 제어할 수 있습니다.
16.1.8. 필드 속성
Fields 탭은 레이어 관련 필드에 대한 정보를 제공하며, 레이어 필드를 정리할 수 있습니다.
Toggle editing mode 버튼으로 레이어를 편집 가능 모드로 만들 수 있습니다. 레이어가 편집 가능 모드일 경우, New field 및 Delete field 버튼을 사용해서 레이어 구조를 수정할 수 있습니다.
새 필드 New field 를 생성할 때, 주석(comment) 편집을 허용하는 데이터소스에 대해서만 Comment 옵션을 사용할 수 있습니다. 또한, 지원하는 OGR 포맷(지오패키지와 ESRI 파일 지오데이터베이스)의 경우 Add Field 대화창 안에서 별명(alias)을 설정할 수도 있습니다.
필드명을 더블클릭하면 필드를 재명명할 수도 있습니다. PostgreSQL, Oracle, 메모리 레이어 및 QGIS 버전에 따라 달라지는 몇몇 GDAL 레이어와 같은 데이터 제공자만 이 기능을 지원합니다.
기저 데이터소스 또는 양식 속성 에서 설정한 경우, 필드의 별명(alias)도 표시됩니다. 별명이란 피처 양식 또는 속성 테이블에서 사용할 수 있는 사람이 읽을 수 있는 필드명입니다. 별명은 프로젝트 파일에 저장됩니다.
가상 필드 와 보조 저장소 그리고 데이터셋에 포함되어 있는 필드들 이외에도, Fields 탭은 모든 결합된 레이어 의 필드도 목록화합니다. 필드가 어디에 속해 있느냐에 따라 서로 다른 배경색이 적용됩니다.
대화창은 목록의 각 필드에 대해 필드의 Type, Type name, Length 및 Precision 같은 읽기 전용 특성도 목록화합니다.
데이터 제공자에 따라, 예를 들면 필드 생성 시에, 필드에 코멘트를 결합시킬 수 있습니다. 데이터 제공자가 이 정보를 가져와 Comment 열에 표시하며, 이후 피처 양식에 있는 필드 라벨 위에 마우스를 가져가면 코멘트를 표시합니다.
Configuration 열에서, 필드가 특정 상황에서 어떤 습성을 보여야 하는지 설정할 수 있습니다:
Not searchable
: 위치 검색란 에서 해당 필드를 쿼리하지 못 하도록 하려면 이 옵션을 선택하십시오.Do not expose via WMS
: QGIS 서버에서 해당 레이어를 WMS로 서비스하고 있는 경우 해당 필드를 표시하지 못 하도록 하려면 이 옵션을 선택하십시오.Do not expose via WFS
: QGIS 서버에서 해당 레이어를 WFS로 서비스하고 있는 경우 해당 필드를 표시하지 못 하도록 하려면 이 옵션을 선택하십시오.
16.1.9. 속성 양식 속성
Attributes Form 탭에서 새 피처를 생성하거나 기존 피처를 쿼리할 때 표시할 양식을 설정할 수 있습니다. 다음을 정의할 수 있습니다:
피처 양식 또는 (라벨, 위젯, 제약조건 등등의) 속성 테이블에 있는 각 필드의 모양 및 습성
양식의 구조 (사용자 지정 또는 자동 생성)
양식 또는 필드 위젯과 대화형 작업을 처리하기 위한 파이썬 추가 논리
대화창 우상단에서 새 피처 생성시 양식을 기본적으로 열지 여부를 설정할 수 있습니다. Suppress attribute form pop-up after feature creation 옵션을 통해 레이어별 또는 전체 수준으로 환경 설정할 수 있습니다.
메뉴의16.1.9.1. 사용자 데이터용 양식을 사용자 지정하기
Identify Features 도구로 피처를 클릭하거나 또는 속성 테이블을 양식 뷰(form view) 모드로 바꾸는 경우, 기본적으로 QGIS는 기본 양식을 미리 정의된 위젯과 함께 표시합니다. (일반적으로 스핀박스(spinbox)와 텍스트 상자로 이루어집니다. 지정된 행에 각 필드를 위젯 옆에 있는 필드 라벨로 표현합니다.) 만약 레이어에 관계 가 설정돼 있다면, 양식의 하단에 내장된 프레임에 참조 레이어의 필드를 동일한 기본 구조대로 표시합니다.
이 렌더링은 Attribute editor layout 설정의 기본값 Autogenerate
의 결과입니다. 이 속성은 서로 다른 세 가지 값을 선택할 수 있습니다:
Autogenerate
: 양식에 대해 “1행 - 1필드” 라는 기본 구조를 유지하지만 대응하는 각 위젯을 사용자 지정할 수 있습니다.Drag-and-drop designer
: 위젯 사용자 지정 외에도 양식 구조를 더 복잡하게, 예를 들어 그룹 및 탭에 위젯을 내장시키도록 만들 수 있습니다.Provide ui file
: Qt 설계자 파일을 사용할 수 있게 해줍니다. 따라서 잠재적으로 더 복잡하고 완전한 기능을 가진 템플릿을 피처 양식으로 활용할 수 있습니다.
자동 생성 양식
Autogenerate
옵션이 활성화된 경우, Available widgets 패널이 양식에 표시될 (레이어와 레이어 관계에서 나온) 필드 목록을 표시합니다. 필드를 선택하면 오른쪽 패널에서 필드의 모양 및 습성의 환경을 설정할 수 있습니다:
필드에 사용자 지정 라벨과 자동화 점검 을 추가할 수 있습니다.
사용할 특정 위젯 을 설정할 수 있습니다.
드래그&드롭 설계자
드래그&드롭 설계자는 그림 16.43 에서 볼 수 있는 바와 같이 (HTML/QML 위젯 또는 레이어에 정의된 액션 처럼) 특정 필드에 직접 링크되어 있지 않은 속성 필드 또는 다른 위젯을 나타내기 위한 컨테이너(탭 또는 그룹)를 몇 개 가지고 있는 양식을 생성할 수 있게 해줍니다.
Select attribute layout editor 콤보박스에서
Drag and drop designer
를 선택하면, Available widgets 패널 옆에 있는 Form Layout 패널을 기존 필드로 채워서 활성화합니다. 선택한 필드는 세 번째 패널에 자신의 속성 을 표시합니다.사용자의 Form Layout 패널에서 사용하지 않고자 하는 필드를 선택한 다음 버튼을 눌러 제거하십시오. Invert selection 버튼으로 선택한 필드를 반전시킬 수 있습니다.
필드를 첫 번째 패널에서 Form Layout 패널로 드래그&드롭해서 다시 추가시키십시오. 같은 필드를 중복해서 추가할 수 있습니다.
Form Layout 패널에 있는 필드를 드래그&드롭하면 필드 위치를 재배열할 수 있습니다.
동일 카테고리에 속한 관련 필드에 컨테이너를 추가하면 더 나은 양식 구조를 만들 수 있습니다.
먼저 Add a new tab or group to the form layout 아이콘을 클릭해서 필드 및 기타 그룹을 표시할 탭을 생성하십시오.
그리고 컨테이너의 속성을 다음과 같이 설정하십시오:
Label: 컨테이너에 적용될 제목입니다.
Container Type: 컨테이너 유형은 Tab, Group box in container (탭 또는 또다른 그룹 안에서 접을 수 있는 그룹 상자) 또는 Row (위젯의 개수에 따라 열 개수를 자동으로 결정하는, 사용자 위젯을 수평 행으로 배열할 수 있게 해주는 컨테이너 유형) 가운데 하나로 설정할 수 있습니다.
Within: 이 부가적인 기능을 이용하면 새 (Group box in container 또는 Row 유형) 컨테이너를 내장시킬 기존 컨테이너를 선택할 수 있습니다.
Number of columns: 내장된 필드가 배포되어야 할 열의 개수입니다.
이후에 항목을 선택한 다음 세 번째 패널에서 다음 설정을 하면 이 속성들과 기타 속성들을 업데이트할 수 있습니다:
컨테이너의 라벨을 숨기기 또는 표시하기
컨테이너 이름을 변경하기
열의 개수를 설정하기
컨테이너의 가시성을 제어하는 표현식을 입력하기. 양식의 값들이 변경될 때마다 표현식을 다시 평가하고 그에 따라 탭 또는 그룹 상자를 표시하거나 숨길 것입니다.
Show as Group Box: 이 옵션을 체크하면 탭을 최상위 그룹 상자로 변환하고, 해제하면 그룹 상자를 탭으로 변환합니다.
그룹 상자의 경우, 양식을 열 때 설정하느냐 하지 않느냐에 따라 모든 피처를 Collapsed 접힌 상태로 표시하거나 또는 표현식(Control collapsed by expression)과 일치하는 피처만 접힌 상태로 표시하거나 할 것입니다.
컨테이너의 Style 모양을 사용자 지정 Background color, 라벨 색상 및 글꼴 속성으로 환경설정하기
Add a new tab or group to the form layout 아이콘을 다시 눌러서 사용자가 원하는 만큼 많은 컨테이너를 생성하고 내장시킬 수 있습니다.
다음 단계는 각 컨테이너에 관련 필드를 할당하는 것입니다. 그냥 드래그&드롭하면 됩니다. 그룹 상자 및 탭도 같은 방법으로 옮길 수 있습니다.
사용 중인 필드의 위젯을 사용자 지정 하십시오.
레이어가 일대다 또는 다대다 관계 를 가진 경우 관계 이름을 Available Widgets 패널에서 Form Layout 패널로 드래그&드롭하십시오. 현재 레이어의 양식에 선택한 위치로 관련 레이어 속성 양식을 내장시킬 것입니다. 다른 항목의 경우, 관계 라벨을 선택하면 몇몇 속성을 환경 설정할 수 있습니다:
관계 라벨을 숨기기 또는 표시하기
링크 버튼 표시하기
링크 해제 버튼 표시하기
레이어가
Layer
또는Feature
범위에 하나 이상의 액션 을 활성화한 상태인 경우, Actions 아래에 해당 액션들을 목록화할 것입니다. 다른 필드와 마찬가지로, 이 액션을 Form Layout 패널로 드래그&드롭할 수 있습니다. 현재 레이어의 양식에 선택한 위치로 관련 액션을 내장시킬 것입니다.Other Widgets 에서 (기타 위젯 참조) 하나 이상의 위젯을 추가해서 양식을 좀 더 사용자 지정해보십시오.
레이어 속성 대화창의 Apply 버튼을 클릭합니다.
피처 속성 양식을 (예를 들어 Identify features 도구를 사용해서) 열면, 새 양식을 표시할 것입니다.
기타 위젯
드래그&드롭 설계자는 특정 필드에 연결되지 않은 위젯을 몇 개 제공하고 있습니다. 이런 위젯을 이용해서 양식의 모양을 향상시키거나 또는 동적으로 계산된 값들을 표시할 수 있습니다.
HTML Widget: HTML 페이지를 내장하고 있습니다. 이 HTML 소스가 동적으로 계산된 표현식의 결과물을 담고 있을 수도 있습니다.
예를 들어 필드에 BLOB(Binary Large Object)으로 저장된 이미지(
photo
라고 합시다)를 표시하는 데 HTML 위젯을 사용할 수 있습니다:Drag-and-drop designer
모드에서 사용자의 Form Layout 에 HTML Widget 을 추가합니다.HTML 위젯을 환경설정하려면 HTML Widget 을 더블클릭하십시오.
기본 Title 을 변경하거나 숨기십시오.
버튼을 누른 다음 다음 QGIS 표현식을 입력하십시오:
'<img src= "data:image/png;base64,' || to_base64("photo") || '">'
photo
를 사용자의 BLOB 필드 이름으로 반드시 바꾸십시오. 이 표현식은 BLOB 파일이 인코딩되어 있는 HTML 이미지 태그를 가진 문자열을 생성합니다.QGIS가 사용자 표현식을 평가하기 위해 자동으로 HTML 서식과 함수들을 적용시켜 다음과 같은 코드를 생성할 것입니다:
<script>document.write(expression.evaluate("'<img src=\"data:image/png;base64,' || to_base64(\"photo\") || '\">'"));</script>
사용자 이미지의 미리보기가 오른쪽에 표시됩니다.
QML Widget: QML 페이지를 내장하고 있습니다. 이 QML 소스가 동적으로 계산된 표현식의 결과물을 담고 있을 수도 있습니다.
Text Widget: 기본 HTML 마크업 언어를 지원하며 동적으로 계산된 표현식 결과를 담고 있을 수도 있는 텍스트 위젯을 표시합니다.
Spacer Widget: 두 위젯 사이의 수직 거리를 벌리기 위한 빈 투명 사각형을 삽입합니다.
팁
동적 내용 표시
앞에서 설명한 위젯들은 (Spacer Widget 은 제외) 양식에 있는 또다른 필드의 값이 변할 때마다 동적으로 변경되는 내용을 표시하기 위한 표현식을 지원합니다. 또다른 필드의 값을 조사하려면 표현식에 current_value('field_name')
함수를 사용하면 됩니다.
사용자 지정 UI 파일 사용하기
Provide ui-file
옵션은 Qt 설계자로 만든 복잡한 대화창을 사용할 수 있게 해줍니다. UI 파일을 이용하면 대화창을 엄청난 자유도로 생성할 수 있습니다. 레이어의 필드에 그래픽 객체(텍스트 상자, 콤보박스 등등)를 링크시키려면 객체를 필드와 동일한 이름으로 명명해야 한다는 사실을 기억하십시오.
사용할 파일을 가리키는 경로를 정의하려면 Edit UI 를 이용하십시오.
원격 서버에 UI 파일을 호스팅할 수도 있습니다. 이 경우, Edit UI 양식에 파일 경로 대신 URL을 지정하십시오.
QGIS 교육 교재 의 새 양식 생성 에서 몇몇 예시를 찾아볼 수 있습니다. 더 심화된 내용을 알고 싶다면, https://woostuff.wordpress.com/2011/09/05/qgis-tips-custom-feature-forms-with-python-logic/ 을 참조하세요.
사용자 지정 함수로 사용자 양식 향상시키기
QGIS 양식은 대화창을 열 때 호출되는 파이썬 함수를 보유할 수 있습니다. 이 함수를 이용해서 사용자 대화창에 추가적인 논리를 추가하십시오. 다음 세 가지 서로 다른 방법으로 양식 코드를 지정할 수 있습니다:
load from the environment
: 예를 들어startup.py
파일 또는 설치한 플러그인에 있는 함수를 이용합니다.load from an external file
: 원격 파일용 URL을 입력하거나 또는 사용자의 파일 시스템에서 파이썬 파일을 선택할 수 있는 파일 선택기를 엽니다.provide code in this dialog
: 사용자가 사용할 함수를 직접 입력할 수 있는 파이썬 편집기를 엽니다.
세 가지 방법 모두 사용자가 호출할 함수명을 입력해야만 합니다. (다음 예시에서는 open
입니다.)
다음은 (MyForms.py
모듈에 있는) 예시입니다:
def open(dialog,layer,feature):
geom = feature.geometry()
control = dialog.findChild(QWidget,"My line edit")
파이썬 초기화 함수(Python Init Function)에서도 마찬가지로 open
으로 참조합니다.
16.1.9.2. 필드 습성 환경 설정
Attributes Form 의 주요 부분에서 속성 테이블 또는 피처 양식에 있는 필드의 값을 입력하거나 표시하는 데 쓰이는 위젯의 유형을 설정할 수 있습니다. 사용자가 각 필드와 값 또는 각 필드에 추가할 수 있는 값의 범위와 어떻게 대화형 작업을 할지 정의할 수 있습니다.
공통 설정
필드에 적용된 위젯의 유형에 상관없이, 필드를 편집할 수 있는지 없는지 그리고 필드를 어떻게 편집할 수 있는지를 제어하도록 설정할 수 있는 몇몇 공통 속성이 존재합니다.
위젯 표시
드래그&드롭 설계자 모드에서만 사용할 수 있는 이 그룹은 사용자가 필드에 할당된 위젯의 모양을 환경설정하는 데 도움을 줄 것입니다:
Show label: 양식에 필드명을 표시해야 하는지 여부를 나타냅니다.
Override label color: 필드의 라벨에 특정 색상을 적용합니다.
Override label font: 필드의 라벨에 특정 글꼴 속성(볼드체, 이탤릭체, 밑줄, 취소선, 또는 글꼴 계열)을 적용합니다.
Size: 속성 양식의 크기를 조정할 때 위젯의 크기를 그에 맞춰 어떻게 조정할지에 대한 방법을 제어할 수 있습니다.
Horizontal stretch: 수평 공간이 더 필요한 위젯에 대해 더 큰 수평 값을 설정합니다.
Vertical stretch: 양식의 크기를 조정할 때 위젯의 수직 크기를 어떻게 조정할지에 대한 방법을 결정합니다.
일반 옵션
Alias: 필드용으로 쓰이는, 사람이 읽을 수 있는 이름입니다. 이 별명은 피처 양식, 속성 테이블 또는 Identify results 패널에 표시될 것입니다. 표현식 작성기 에서 필드명 대신 사용될 수도 있는데, 표현식을 쉽게 이해하고 검토할 수 있게 해줍니다.
Comment: 필드의 코멘트를 읽기전용 상태로, Fields 탭에 표시된대로 표시합니다. 이 정보는 피처 양식에 있는 필드 라벨 위에 마우스를 가져가면 툴팁으로 표시됩니다.
Editable: 이 설정을 선택 해제하면 레이어가 편집 모드 상태일지라도 필드를 읽기 전용으로 (사용자가 수정할 수 없도록) 설정합니다. 이 설정을 체크해도 제공자의 어떤 편집 제약도 무시하지 않는다는 사실을 기억하십시오. Data-defined override 버튼을 통해 데이터 정의 속성이 이 옵션을 제어하도록 할 수 있습니다.
Reuse last entered value: 이 필드에 마지막으로 입력된 값을 기억해서 레이어에서 편집되는 다음 피처에 대한 기본값으로 사용합니다.
제약조건
필드에 삽입되는 값을 제약할 수 있습니다. 다음과 같은 제약 조건을 설정할 수 있습니다:
사용자 지정 expression 기반: 예를 들어 col0 필드의 값이 오직 알파벳 문자만 입력받게 하려면
not regexp_match(col0,'[^A-Za-z]')
같은 표현식을 쓰면 됩니다. 사용자가 제약조건을 기억할 수 있도록 간단한 설명을 추가할 수 있습니다.
필드에 값을 추가하거나 필드값을 편집할 때마다, 기존 제약조건이 새 값을 받아서:
모든 요구사항을 만족하는 경우, 양식에 있는 필드 옆에 초록색 체크 표시가 나타납니다.
모든 요구사항을 만족하지 못하는 경우, 필드가 노란색 또는 주황색으로 바뀌고 그에 대응하는 가위표가 위젯 옆에 표시됩니다. 가위표 위에 마우스를 가져가면 해당 필드에 어떤 제약조건이 적용돼 있는지 알 수 있으므로 값을 수정하면 됩니다:
기본값
Default value: 새 피처의 경우, 기본적으로 미리 정의된 값 또는 표현식 기반 값 으로 필드를 자동적으로 채웁니다. 예를 들어:
필드 생성시 피처의 X 좌표, 길이, 면적 또는 다른 어떤 도형 정보로 필드를 자동적으로 채우려면
$x
,$length
,$area
를 사용하면 됩니다.새 피처를 생성할 때마다 필드를 1씩 증가하는 값으로 채우려면
maximum("field")+1
을 사용하면 됩니다.피처 생성 날짜&시간을 저장하려면
now()
를 사용하면 됩니다.표현식에 변수 를 사용하면, 예를 들어 작업자 이름(
@user_full_name
), 프로젝트 파일 경로(@project_path
) 등등을 더 쉽게 삽입할 수 있습니다.
산출되는 기본값의 미리보기가 위젯 하단에 표시됩니다.
참고
Default value
옵션은 생성 중인 피처의 다른 어떤 필드에 있는 값도 알지 못합니다. 때문에 이 값들을 결합하는 표현식을 사용하는 것은 불가능할 것입니다. 예를 들어concat(field1, field2)
같은 표현식을 사용하면 작동하지 않을 수도 있습니다.Apply default value on update: 피처 속성 또는 도형이 변경될 때마다 기본값을 다시 계산합니다. 이 옵션으로 데이터를 마지막으로 수정한 사용자, 피처가 마지막으로 변경된 시간 등과 같은 값들을 손쉽게 저장할 수 있습니다.
정책
Policies 는 피처 분할 Splitting features 시 필드에 값들을 어떻게 할당할지를 결정할 수 있게 해줍니다.
Duplicate Values: 생성되는 분할 피처가 필드의 기존값을 유지합니다.
Use Default Value: 필드의 기존값 을 다시 계산해서 필드를 리셋합니다. 기존값을 정의하는 절이 없는 경우, 생성되는 분할 피처가 기존값을 유지합니다.
Remove Value: 필드 값을 지우고 설정되지 않은 상태로 만듭니다.
Use Ratio Geometries: 모든 분할 피처의 필드 값들을 기존값에 분할된 부분들의 길이 또는 면적 비율을 곱하는 방식으로 다시 계산합니다.
편집 위젯
QGIS는 필드 유형에 따라 자동적으로 기본 위젯 유형을 결정하고 필드에 할당합니다. 이후 사용자가 필드 유형과 호환되는 다른 어떤 위젯으로도 대체할 수 있습니다. 다음과 같은 위젯을 사용할 수 있습니다:
바이너리(BLOB): 바이너리 필드에 대해서만 사용할 수 있습니다. 비어 있지 않다면 내장된 데이터 크기를 기본 라벨로 표시합니다. 라벨 옆에 있는 드롭다운 버튼을 누르면:
Embed file: 필드를 새로운 파일로 대체하거나 채울 수 있습니다.
Clear contents: 필드에 있는 모든 데이터를 제거할 수 있습니다.
Save contents to file: 데이터를 디스크 상의 파일로 내보낼 수 있습니다.
드래그&드롭 양식에 예를 들어 QML 또는 HTML 위젯 을 결합시키면, 내장된 바이너리 파일을 필드에서 미리보기할 수 있습니다.
체크박스(Checkbox): 그 상태가 삽입하는 값을 정의하는 체크박스를 표시합니다.
범주화(Classification): 레이어에 범주 심볼 이 적용된 경우에만 사용할 수 있으며, 범주들의 값을 가지고 있는 콤보박스를 표시합니다.
색상(Color): 색상을 선택할 수 있는 색상 위젯 을 표시합니다. 색상값은 속성 테이블에 HTML 서식으로 저장됩니다.
날짜&시간(Date/Time): 날짜, 시간, 또는 둘 다 입력하기 위한 캘린더 위젯을 열 수 있는 한 줄짜리 텍스트 란을 표시합니다. 열이 텍스트 유형이어야만 합니다. 캘린더 팝업창 등의 사용자 지정 서식을 선택할 수 있습니다.
일람표(Enumeration): 데이터베이스에서 가져온 미리 정의된 값들을 가지고 있는 콤보박스를 엽니다. 현재 PostgreSQL 제공자가
enum
유형인 필드에 대해서만 지원하고 있습니다.첨부(Attachment): “파일 열기” 대화창을 이용해서 파일 경로를 상대 경로 또는 절대 경로로 저장합니다. 이 위젯을 (문서 경로를 가리키는) 하이퍼링크, 그림 또는 웹페이지를 표시하는 데 사용할 수 있습니다. 외부 저장소 시스템 을 환경 설정해서 리소스를 가져오거나 저장할 수 있게 만들 수도 있습니다.
팁
첨부 위젯의 상대 경로
파일 탐색기를 통해 선택한 경로가
.qgs
프로젝트 파일과 동일한 디렉터리에 또는 그 아래 위치하는 경우, 해당 경로를 상대 경로로 변환합니다. 이 습성은 멀티미디어 정보가 첨부된.qgs
프로젝트의 이동성(portability)을 향상시킵니다.숨김(Hidden): 숨겨진 속성 열을 볼 수 없습니다. 사용자가 열의 내용을 확인할 수 없습니다.
키/값(Key/Value): 단일 필드 안에 키/값 쌍의 집합을 저장하기 위한 열 2개짜리 테이블을 표시합니다. 현재 PostgreSQL 제공자가
hstore
유형인 필드에 대해서만 지원하고 있습니다.JSON 뷰: 문법을 강조하는 텍스트 편집기 또는 트리 뷰에 JSON 데이터를 표시합니다. 현재 이 위젯은 읽기 전용입니다. 데이터를 어떻게 표시할지를 변경할 수 있는 옵션이 몇 가지 있습니다. ‘기본 뷰’ 는 위젯이 텍스트 모드로 나타나야 할지 또는 트리 모드로 나타나야 할지를 지정합니다. ‘JSON 서식’ 은 다음 트리 뷰 전용 옵션 3개를 가지고 있습니다:
들여쓰기(Indented): 데이터를 새줄 문자(newline)와 들여쓰기를 위한 공백 문자 4개를 가진 인간이 읽을 수 있는 양식으로 표시합니다.
조밀(Compact): 데이터를 새줄 문자나 공백이 없는 한 줄 크기의 최적화된 문자열로 표시합니다.
비활성화(Disabled): 데이터를 제공자가 보내온 그대로 표시합니다.
목록(List): 단일 필드 안에 서로 다른 값들을 추가하기 위한 열 1개짜리 테이블을 표시합니다. 현재 PostgreSQL 제공자가
array
유형인 필드에 대해서만 지원하고 있습니다.범위(Range): 특정 범위에서 숫자 값을 설정할 수 있습니다. 슬라이드 바 또는 스핀박스 위젯 가운데 선택할 수 있습니다.
참고
QGIS는 GeoPackage 또는 ESRI 파일 지오데이터베이스처럼 사전 정의된 범위 필드 도메인(range Field Domains) 을 가진 일부 레이어들을 자동으로 인식해서 관련 필드들에 범위 위젯을 할당할 것입니다. 이 위젯은 해당 도메인에 지정된 최소값과 최대값을 가질 것입니다.
관계성 참조(Relation Reference): 관계 가 설정된 경우 참조하는 필드(예: 자식 레이어의 외래 키)에 할당되는 기본 위젯입니다. 자식 피처의 목록과 양식을 내장한 부모 피처의 양식에 직접 접근할 수 있습니다.
텍스트 편집(Text Edit) (기본값): 간단한 텍스트 또는 여러 줄의 텍스트를 쓸 수 있는 텍스트 편집란을 엽니다. 여러 줄 유형을 선택한 경우 HTML 내용도 선택할 수 있습니다.
단일값(Unique Values): 속성 테이블에서 이미 사용된 값들 가운데 하나를 선택할 수 있습니다. ‘Editable’ 설정을 체크한 경우 자동 완성을 지원하는 한 줄짜리 텍스트 편집란을 표시하며, 체크하지 않은 경우 콤보박스를 표시합니다.
UUID 생성기(UUID Generator): UUID(Universally Unique Identifiers) 필드가 비어 있을 경우 읽기 전용 UUID 를 생성합니다.
값 지도(Value Map): 사전 정의된 항목을 가지고 있는 콤보박스를 표시합니다. 값은 속성에 저장돼 있으며, 설명은 콤보박스에 표시됩니다. 값을 직접 정의할 수도 있고, 레이어 또는 CSV 파일에서 불러올 수도 있습니다.
참고
QGIS는 GeoPackage 또는 ESRI 파일 지오데이터베이스처럼 사전 정의된 코딩된 필드 도메인(coded Field Domains) 을 가진 일부 레이어들을 자동으로 인식해서 관련 필드들에 값 지도 위젯을 할당할 것입니다.
값 관계(Value Relation): 콤보박스에 관련 테이블에서 가져온 값을 제공합니다. 레이어, 키 열, 값 열 가운데 하나를 선택할 수 있습니다. 표준 습성을 변경할 수 있는 몇몇 옵션들이 – NULL 값 허용, 값으로 정렬, 다중 선택 허용 및 자동완성 사용 – 있습니다. 이 양식은 드롭다운 목록을 표시하거나, 자동완성 체크박스를 활성화한 경우 한 줄짜리 텍스트 편집란을 표시할 것입니다.
PostgreSQL, GeoPackage 또는 SpatiaLite 데이터베이스에 저장되어 있는 레이어가 값 관계 위젯을 사용하도록 환경 설정되었지만 필요한 레이어가 아직 프로젝트에 불러와져 있지 않은 경우, QGIS가 동일 데이터베이스/연결에서 해당 레이어를 자동으로 검색할 것입니다.
16.1.10. 결합 속성
Joins 탭에서, 현재 레이어의 피처와 또다른 불러온 벡터 레이어의 (또는 테이블의) 피처를 결합시킬 수 있습니다. 결합은 레이어들이 1대1 관계로 공유하는 속성을 기반으로 합니다. 결합에 대해 더 자세히 알고 싶다면 두 레이어 간 피처 결합하기 를 읽어보세요.
16.1.11. 보조 저장소 속성
스타일 작업 및 라벨 작업을 사용자 지정하는 표준적인 방법은 데이터 정의 무시 설정 에서 설명하는대로 데이터 정의 속성을 사용하는 것입니다. 하지만, 기저 데이터가 읽기 전용인 경우 이 방법을 사용할 수 없을 수도 있습니다. 게다가 이런 데이터 정의 속성을 환경 설정하는 것이 너무 오래 걸리거나 또는 바람직하지 않을 수도 있고요! 예를 들어 라벨 툴바 의 맵 도구들을 완전하게 사용하고 싶다면 사용자의 원본 데이터소스에 있는 20개 이상의 (X 및 Y 위치, 회전 각도, 글꼴 스타일, 색상 등등) 필드들을 추가하고 환경 설정해주어야 합니다.
보조 저장소 메커니즘은 이런 제한 및 불편한 환경 설정을 해결할 수 있습니다. 보조 필드는 ─ 편집 가능한 결합 덕분에 ─ SQLite 데이터베이스에 이런 (라벨, 도표, 심볼 등의) 데이터 정의 속성들을 자동으로 관리하고 저장할 수 있는 우회적인 방법입니다. 즉 편집 가능 상태가 아닌 레이어의 속성들을 저장할 수 있게 해줍니다.
벡터 레이어 속성 대화창에 보조 저장소를 관리하기 위한 탭이 있습니다:
16.1.11.1. 라벨 작업
편집 가능 상태가 아닌 데이터 정의 속성 덕분에 데이터소스를 사용자 지정할 수도 있다는 점을 고려하면, 라벨 작업을 활성화하면 언제라도 라벨 툴바 에서 설명한 라벨 작업 맵 도구들을 사용할 수 있습니다.
사실, 보조 저장소 시스템은 SQLite 데이터베이스에 (보조 저장소 데이터베이스 참조) 이 속성들을 저장하기 위해 보조 레이어를 필요로 합니다. 라벨 작업 맵 도구가 활성화된 상태에서 맵을 처음으로 클릭할 때 보조 레이어 생성 과정이 실행됩니다. 그러면 (피처를 유일하게 식별하도록 보장하기 위해) 결합 작업에 사용할 기본 키를 선택할 수 있는 창이 표시됩니다:
현재 데이터소스에서 보조 레이어의 환경을 설정하자마자, 탭에서 보조 레이어의 정보를 검색할 수 있습니다:
이 보조 레이어는 다음과 같은 특성을 가집니다:
기본 키는
ID
이고,보조 필드를 사용하는 피처는
0
개이며,보조 필드도
0
개입니다.
이제 보조 레이어를 생성했으니, 레이어 라벨을 편집할 수 있습니다. Change Label 맵 도구를 활성화한 상태에서 라벨을 클릭하면, 크기, 색상 등의 스타일 작업 속성을 업데이트할 수 있습니다. 대응하는 데이터 정의 속성들을 다음과 같이 생성하고 가져올 수 있습니다:
앞 그림에서 볼 수 있듯이, 라벨용으로 필드 21
개가 자동적으로 생성되고 환경 설정됐습니다. 예를 들면, 기저 SQLite 데이터베이스에서 FontStyle
보조 필드의 유형은 String
이며 이름은 labeling_fontstyle
입니다. 또 현재 보조 필드를 사용하고 있는 필드가 1
개있습니다.
Labels 속성 탭에 아이콘이 표시된 것을 눈치채셨나요? 데이터 정의 무시 옵션이 정확하게 설정되었다는 의미입니다:
그 외에도, Data-defined override 버튼으로 특정 속성을 위한 보조 필드를 생성할 수 있는 또다른 방법이 있습니다. Store data in the project 를 클릭하면, Opacity 필드를 위한 보조 필드를 자동적으로 생성합니다. 아직 보조 레이어를 생성하지 않은 상태에서 이 버튼을 클릭했다면, 보조 레이어 생성 대화창 창이 먼저 표시되어 결합 작업을 위한 기본 키를 선택해야 합니다.
16.1.11.2. 심볼
앞에서 설명한 라벨 사용자 지정 작업을 위한 방법처럼, 보조 필드를 사용해서 심볼 및 도표의 스타일도 작업할 수 있습니다. 그러려면 먼저 Data-defined override 를 클릭한 다음 특정 속성을 위해 Store data in the project 를 선택하십시오. 예를 들어 Fill color 필드의 경우:
각 심볼을 위한 서로 다른 (예를 들어 채우기 스타일, 채우기 색상, 획 색상 등등) 속성들이 있으므로, 속성을 표현하는 각 보조 필드에는 충돌을 피하기 위한 유일한 이름이 필요합니다. Store data in the project 를 선택하면 필드의 Type 을 표시하고 보조 필드용 유일 이름을 입력하도록 하는 창이 열립니다. 예를 들면, Fill color 보조 필드를 생성할 때 다음과 같은 창이 열립니다:
보조 필드를 생성하고 나면, 보조 저장소 탭에서 해당 필드를 검색할 수 있습니다:
16.1.11.3. 속성 테이블 및 위젯
속성 테이블 을 사용해서 보조 필드를 편집할 수 있습니다. 하지만, 모든 보조 필드가 처음부터 속성 테이블에 나타나지는 않습니다.
레이어의 심볼, 라벨, 모양, 또는 도표 속성을 표현하는 보조 필드들은 속성 테이블에 자동적으로 나타납니다. 그 예외는 라벨 툴바 를 사용해서 수정할 수 있는 속성으로, 기본적으로 숨겨져 있습니다. Color
를 표현하는 보조 필드는 기본적으로 색상 위젯을 보유하도록 설정되는데, 그 외의 보조 필드는 기본적으로 텍스트 편집 위젯으로 설정됩니다.
라벨 툴바 를 사용해서 수정할 수 있는 속성을 표현하는 보조 필드는 기본적으로 속성 테이블에서 숨겨져(Hidden) 있습니다. 이런 필드를 가시화하려면, 속성 양식 속성 탭 을 열고 보조 필드의 Widget Type 을 Hidden 에서 다른 관련 값으로 변경하십시오. 예를 들어, auxiliary_storage_labeling_size 를 Text Edit 으로 변경하거나 또는 auxiliary_storage_labeling_color 를 Color 위젯으로 변경하십시오. 이제 필드가 속성 테이블에서 가시화될 것입니다.
속성 테이블에 있는 보조 필드는 다음 그림처럼 나타날 것입니다:
16.1.11.4. 관리
Auxiliary Layer 메뉴에서 보조 필드를 관리할 수 있습니다:
이 경우 첫 항목 Create 가 비활성화돼 있습니다. 보조 레이어가 이미 생성됐기 때문입니다. 그러나 처음부터 작업하는 경우, 이 액션을 사용해서 보조 레이어를 생성할 수 있습니다. 라벨 작업 에서 설명했듯이, 기본 키가 필요할 것입니다.
Clear 액션은 모든 보조 필드를 유지하면서 그 내용들은 제거할 수 있습니다. 이렇게 하면 이 필드들을 사용하는 피처의 개수가 0
으로 떨어질 것입니다.
Delete 액션은 보조 레이어를 완전히 제거합니다. 다시 말해, 기저 SQLite 데이터베이스에서 대응하는 테이블을 삭제합니다. 사용자 지정한 속성들이 사라집니다.
마지막으로 Export 액션은 보조 레이어를 새 벡터 레이어 로 저장할 수 있습니다. 보조 저장소는 도형을 저장하지 않는다는 사실을 기억하십시오. 하지만 이 경우, 원본 데이터소스에서 도형들도 내보냅니다.
16.1.11.5. 보조 저장소 데이터베이스
사용자 프로젝트를 .qgs
포맷으로 저장하는 경우, 보조 저장소용으로 사용한 SQLite 데이터베이스도 동일한 위치에 저장되며 그 확장자는 .qgd
입니다.
사용자 편의를 위해, .qgz
압축 포맷을 대신 사용할 수도 있습니다. 이 경우 .qgd
및 .qgs
파일 둘 다 압축 파일에 들어갑니다.
16.1.12. 액션 속성
Actions 탭은 객체의 속성을 기반으로 하는 액션을 수행할 수 있는 기능을 제공하고 있습니다. 예를 들면 객체의 속성에서 생성한 인자(argument)와 함께 프로그램을 실행하거나 또는 웹 보고 도구에 파라미터를 전달하는 등의 수많은 액션을 수행할 수 있습니다.
외부 응용 프로그램을 자주 실행하거나 사용자 벡터 레이어에 있는 하나 이상의 값들을 기반으로 웹 페이지를 보려 하는 경우 액션이 유용합니다. 액션은 서로 다른 유형으로 나뉘며, 다음과 같이 사용할 수 있습니다:
Generic, macOS, Windows 및 Unix 액션은 외부 프로세스를 실행합니다.
Python 액션은 파이썬 표현식을 실행합니다.
Generic 및 Python 액션은 어디에서나 가시화됩니다.
macOS, Windows 및 Unix 액션은 각각 대응하는 플랫폼 상에서만 가시화됩니다. (예를 들어, 편집기를 여는 “편집” 액션을 3개 정의해도 사용자는 편집기를 실행하는 플랫폼의 전용 “편집” 액션만을 보고 실행할 수 있습니다.)
Open URL: 지정된 URL을 열기 위해 HTTP GET 요청을 이용합니다.
Submit URL (urlencoded or JSON): HTTP POST 요청을 이용한다는 점을 제외하면 Open URL 액션과 동일합니다. 본문이 무결한 JSON인 경우 “application/x-www-form-urlencoded” 또는 “application/json” 을 사용해서 URL에 데이터를 포스팅합니다.
다음은 액션 호출의 한 예시입니다:
http://localhost:8000?/[% url_encode(map('file', 'index.php')) %]
Submit URL (multipart): HTTP POST 요청을 이용한다는 점을 제외하면 Open URL 액션과 동일합니다. “multipart/form-data” 를 이용해서 URL에 데이터를 포스팅합니다.
이 대화창은 예시를 몇 개 포함하고 있습니다. Create Default Actions 버튼을 클릭하면 이 예시 액션들을 불러올 수 있습니다. 예시 액션을 편집하려면, 해당 행을 더블클릭하십시오. 예시 가운데 하나는 속성값을 기반으로 검색을 수행합니다. 다음 항에서 이 개념을 사용합니다.
Show in Attribute Table 옵션을 활성화하면 속성 테이블 대화창에 체크한 피처 범위(feature-scoped) 액션들을 Combo Box 또는 Separate Buttons 가운데 하나로 표시할 수 있습니다. (열 환경설정하기 참조)
16.1.12.1. 액션 정의하기
속성 액션을 정의하려면, 벡터 Layer Properties 대화창을 열고 Actions 탭을 선택하십시오. Actions 탭에서 Add a new action 을 클릭하면 Edit Action 대화창이 열립니다.
Type 옵션으로 액션 유형을 선택하고 액션을 설명하는 이름을 부여하십시오. 액션 자체의 이름이 액션을 작동시켰을 때 실행될 응용 프로그램의 이름을 포함해야만 합니다. 하나 이상의 속성 필드를 응용 프로그램에 대한 인자로서 추가할 수 있습니다. 액션을 작동시켰을 때, 필드명 앞의 %
로 시작하는 어떤 문자 집합도 해당 필드의 값으로 대체될 것입니다. 특수 문자열 %%
는 식별 결과 또는 속성 테이블에서 선택한 필드의 값으로 대체될 것입니다. (액션 사용하기 항을 참조하세요.) 큰따옴표로 여러 텍스트를 묶으면 프로그램, 스크립트 또는 명령어에 대한 단일 인자로 만들 수 있습니다. 큰따옴표 앞에 역 슬래시가 있을 경우 이를 무시할 것입니다.
액션은 인자를 사용해서 단일 프로세스를 호출할 수 있기 때문에, (&
, &&
, ;
, |
같은) 불 연산자는 작동하지 않을 것입니다. 유닉스 같은 운영체제에서는 여러 개의 명령어들을 bash -c
를 통해 실행할 수 있습니다.
Action Scopes 는 어디에서 액션을 사용할 수 있어야 하는지를 정의할 수 있습니다. 다음 가운데 선택할 수 있습니다:
Field: 속성 테이블에 있는 셀, 피처 양식, 그리고 메인 툴바의 기본 액션 버튼을 오른쪽 클릭하면 액션을 사용할 수 있습니다.
Feature: 속성 테이블에 있는 셀을 오른쪽 클릭하면 액션을 사용할 수 있습니다.
Canvas: 툴바에 있는 메인 액션 버튼으로 액션을 사용할 수 있습니다.
Form: 드래그&드롭 모드를 이용해서 설계된 피처 양식에서만 액션을 사용할 수 있습니다.
Layer: 속성 테이블 툴바에 있는 액션 버튼으로 액션을 사용할 수 있습니다. 이 액션 유형은 단일 피처가 아니라 레이어 전체를 대상으로 한다는 점을 유의하십시오.
필드명이 다른 필드명의 하위 문자열인 경우 (예: col1
과 col10
) 필드명(과 %
문자)을 꺾쇳괄호로 묶어서 (예: [%col10]
) 그 사실을 나타내야 합니다. 이렇게 하면 필드명 %col10
을 뒤에 0이 붙은 %col1
필드명과 혼동하는 일을 피할 수 있습니다. QGIS가 %
문자열을 필드값으로 대체할 때 괄호를 제거할 것입니다. 대체된 필드값이 꺾쇠괄호로 묶여 있길 바란다면, [[%col10]]
처럼 괄호를 두 번 치십시오.
Identify Features 도구를 사용하면 Identify Results 대화창을 열 수 있습니다. 이 대화창에 레이어 유형에 관련된 정보를 담은 (Derived) 항목이 있습니다. 이 파생 필드의 이름을 (Derived).
로 처리하면 다른 필드에 접근하는 것과 비슷한 방식으로 이 항목의 값에 접근할 수 있습니다. 예를 들어 포인트 레이어는 X
및 Y
필드를 보유하고 있는데, %(Derived).X
및 %(Derived).Y
로 이 필드들의 값을 사용할 수 있습니다. Attribute Table 대화창이 아니라 Identify Results 대화 상자에서만 이 파생 속성을 쓸 수 있습니다.
다음은 예시 액션 2개입니다:
konqueror https://www.google.com/search?q=%nam
konqueror https://www.google.com/search?q=%%
첫 번째 예시는 캉커러 웹브라우저를 작동시키면서 열어야 할 URL을 전달합니다. 이 URL은 벡터 레이어에 있는 nam
필드의 값을 구글 검색합니다. 액션이 호출하는 응용 프로그램 또는 스크립트가 반드시 경로 안에 있어야만 한다는 사실을 기억하십시오. 그렇지 않을 경우 전체 경로를 입력해야만 합니다. 확실하게 하려면, 첫 번째 예시를 /opt/kde3/bin/konqueror https://www.google.com/search?q=%nam
으로 다시 작성하면 됩니다. 이렇게 하면 액션을 작동시켰을 때 캉커러 응용 프로그램이 확실하게 실행될 것입니다.
두 번째 예시는 %% 기호를 사용하는데, 특정 필드에서 그 값을 불러오지 않는다는 뜻입니다. 액션을 작동시켰을 때, %% 기호는 식별 결과 또는 속성 테이블에서 선택한 필드의 값으로 대체될 것입니다.
16.1.12.2. 액션 사용하기
QGIS는 사용자가 레이어 상에 활성화시킨 액션들을 실행시킬 수 있는 방법을 여러 개 제공하고 있습니다. 액션 설정에 따라, 다음과 같이 실행시킬 수 있습니다:
Attributes toolbar 또는 Attribute table 대화창의 Run Feature Action 버튼의 드롭다운 메뉴를 통해
Identify Features 도구로 피처를 오른쪽 클릭했을 때 (자세한 내용은 피처 식별 참조)
Identify Results 패널의 Actions 부분에서
Attribute Table 대화창에 있는 Actions 열의 항목으로
%%
표기를 사용하는 액션을 작동시키는 경우, Identify Results 대화창 또는 Attribute Table 대화창에서 응용 프로그램 또는 스크립트에 전달하려는 필드값을 오른쪽 클릭하십시오.
배시(bash) 및 echo
명령어를 이용해 (따라서 또는 아마도 에서만 동작할 겁니다) 벡터 레이어에서 데이터를 추출해서 파일로 삽입하는 또다른 예시가 있습니다. 이 레이어는 수종명 taxon_name
, 위도 lat
그리고 경도 long
필드를 가지고 있습니다. 서식지를 공간 선택(spatial selection)해서 (QGIS 맵 영역에서 노란색으로 표시된) 선택한 레코드의 필드값들을 텍스트 파일로 내보내려 합니다. 다음은 이 작업을 하기 위한 액션입니다:
bash -c "echo \"%taxon_name %lat %long\" >> /tmp/species_localities.txt"
서식지를 몇 개 선택해서 각각에 대해 액션을 실행한 다음, 산출 파일을 열면 다음과 비슷한 내용을 보게 될 겁니다:
Acacia mearnsii -34.0800000000 150.0800000000
Acacia mearnsii -34.9000000000 150.1200000000
Acacia mearnsii -35.2200000000 149.9300000000
Acacia mearnsii -32.2700000000 150.4100000000
lakes
레이어에 대한 구글 검색 액션을 생성하는 실습을 해보겠습니다. 먼저, 키워드 검색을 수행하기 위한 URL을 알아야 합니다. 구글 사이트로 가서 간단한 검색을 한 다음, 사용자 브라우저의 주소창에서 URL을 복사하면 쉽게 얻을 수 있습니다. 이렇게 QGIS가 검색어인 구글 검색 URL 서식이 https://www.google.com/search?q=QGIS 라는 걸 알았습니다. 이때 QGIS
가 검색어입니다. 이 정보를 가지고 다음 단계로 넘어가겠습니다:
lakes
레이어를 불러왔는지 확인합니다.범례에 있는 레이어를 더블클릭하거나, 또는 오른쪽 클릭한 다음 컨텍스트 메뉴에서 Layer Properties 대화창을 엽니다.
를 선택해서Actions 탭을 클릭합니다.
Open URL 액션 유형을 선택하고,
액션명을, 예를 들어
Google Search
를 입력합니다.Short Name, 또는 Icon 도 따로 추가할 수 있습니다.
액션의 Action Scope 를 선택하십시오. 더 자세한 내용은 액션 정의하기 를 참조하세요. 이 예시의 경우 기본 설정을 유지합니다.
액션에 구글 검색 용 URL
https://www.google.com/search?q=
를 추가합니다. 검색어는 포함시키지 않습니다.Action 란에 있는 텍스트가 이제 다음처럼 보여야 합니다:
https://www.google.com/search?q=
lakes
레이어의 필드명을 담고 있는 드롭다운 박스를 클릭합니다. Insert 버튼 바로 왼쪽에 있습니다.드롭다운 박스에서 NAMES 를 선택한 다음 Insert 를 클릭합니다.
이제 사용자 액션 텍스트가 다음과 같이 보일 겁니다:
https://www.google.com/search?q=[%NAMES%]
액션 생성을 완료하고 추가하려면, OK 버튼을 클릭합니다.
이제 액션을 완성했고, 사용할 준비가 되었습니다.
Layer Properties 대화창을 닫은 다음 관심 지역으로 확대하십시오. lakes
레이어가 활성화돼 있는지 확인한 다음 호수를 식별하십시오. 식별 결과 창에 생성한 액션이 다음과 같이 추가된 것을 확인할 수 있습니다:
이 액션을 클릭하면, 기본 브라우저를 구동시켜 URL https://www.google.com/search?q=Tustumena 로 이동합니다. 이 액션에 더 많은 속성 필드를 추가할 수도 있습니다. 액션 텍스트 마지막에 +
를 추가하고, 또다른 필드를 선택한 다음 Insert Field 버튼을 클릭하면 됩니다. 그런데 이 예제에는 검색할 의미가 있는 다른 필드가 없네요.
레이어 하나에 액션을 여러 개 정의할 수 있고, 각각의 액션이 Identify Results 대화창에 표시될 겁니다.
속성 테이블에서 행을 하나 선택하고 오른쪽 클릭한 다음, 컨텍스트 메뉴에서 액션을 선택해서 액션을 작동시킬 수도 있습니다.
액션의 쓸모는 무궁무진합니다. 예를 들면, 이미지 또는 사진의 위치를 파일명과 함께 담고 있는 포인트 레이어가 있을 경우, 이미지를 표시할 뷰어를 실행시키는 액션을 생성할 수 있습니다. 또는 구글 검색 예제에서와 동일한 방법으로 설정해서 속성 필드 또는 필드 결합에 대한 웹 기반 보고를 수행하는 액션을 사용할 수도 있습니다.
훨씬 복잡한 예제도 만들어볼 수 있습니다. 예를 들어, 파이썬 액션을 이용해서 말이죠.
외부 응용 프로그램으로 파일을 여는 액션을 생성하는 경우 보통 절대 경로를 사용합니다만, 가끔 상대 경로를 쓰기도 하죠. 후자의 경우 외부 프로그램 실행 파일의 위치가 경로의 기준이 됩니다. 하지만 선택한 (셰이프파일 또는 SpatiaLite 같은 파일 기반) 레이어를 기준으로 하는 상대 경로를 사용해야 하는 경우라면 어떨까요? 다음 코드로 이 문제를 해결할 수 있습니다:
command = "firefox"
imagerelpath = "images_test/test_image.jpg"
layer = qgis.utils.iface.activeLayer()
import os.path
layerpath = layer.source() if layer.providerType() == 'ogr'
else (qgis.core.QgsDataSourceURI(layer.source()).database()
if layer.providerType() == 'spatialite' else None)
path = os.path.dirname(str(layerpath))
image = os.path.join(path,imagerelpath)
import subprocess
subprocess.Popen( [command, image ] )
이 액션이 파이썬 유형 가운데 하나이며 command 및 imagerelpath 변수를 사용자 필요에 맞춰 변경해야 한다는 점만 기억하면 됩니다.
그런데 상대 경로의 기준이 (저장한) 프로젝트 파일 위치여야 하는 경우는 또 어떨까요? 이 경우 파이썬 액션의 코드는 다음처럼 변합니다:
command = "firefox"
imagerelpath = "images_test/test_image.jpg"
projectpath = qgis.core.QgsProject.instance().fileName()
import os.path
path = os.path.dirname(str(projectpath)) if projectpath != '' else None
image = os.path.join(path, imagerelpath)
import subprocess
subprocess.Popen( [command, image ] )
파이썬 액션의 또다른 예시는 프로젝트에 새 레이어를 추가할 수 있게 해주는 액션입니다. 예를 들어, 다음 예시 코드들은 프로젝트에 각각 벡터와 래스터를 추가할 것입니다. 프로젝트에 추가되는 파일명 및 레이어에 할당되는 이름은 데이터를 기반으로 합니다. (filename 및 layername 은 액션이 작동한 벡터의 속성 테이블에 있는 열들의 이름입니다.)
qgis.utils.iface.addVectorLayer('/yourpath/[% "filename" %].shp',
'[% "layername" %]', 'ogr')
래스터를 (이 예제에서는 TIF 이미지를) 추가하려면 다음 코드를 사용합니다:
qgis.utils.iface.addRasterLayer('/yourpath/[% "filename" %].tif',
'[% "layername" %]')
16.1.13. 표시 속성
Display 탭에서 피처 식별에 사용되는 필드의 환경을 설정할 수 있습니다:
Display name: 필드 또는 표현식 을 기반으로 하는 이름을 표시합니다. 레이어의 어떤 필드도
<name>
요소를 가지고 있지 않을 경우, 기본적으로 이 이름은 레이어의 첫 번째 필드로 설정됩니다.식별 도구 의 결과에서 피처 정보 최상단에 나타나는 라벨
모든 레이어에서 피처를 찾을 때 위치 탐색란 에서 쓰이는 필드
속성 테이블 양식 뷰 의 피처 식별자
맵 또는 조판을 지리공간 PDF(Geospatial PDF) 같은 레이어화된 산출 포맷으로 내보내는 경우의 피처 식별자
맵 도움말(map tip) 정보, 예를 들어 Show Map Tips 아이콘을 누른 상태에서 활성화된 레이어의 피처 위에 마우스를 가져갔을 때 맵 캔버스에 표시되는 메시지. Enable Map Tips 옵션이 활성화되어 있고 어떤 HTML Map Tip 도 설정되어 있지 않을 때 활용할 수 있습니다.
HTML Map Tip: 맵 도움말에 QGIS 표현식과 HTML 스타일 및 태그(여러줄, 글꼴, 이미지, 하이퍼링크, 표 등등)를 함께 쓸 수 있는 완전한 HTML 텍스트 편집기를 제공합니다. Preview 프레임에서 사용자 코드의 결과물을 확인할 수 있습니다. (이 프레임은 Display name 산출물을 미리보기하는 데에도 편리합니다.)
맵 도움말을 표시하려면:
- 메뉴를 선택하거나
사용자가 대상으로 삼은 레이어가 활성화되어 있는지 그리고 Enable Map Tips 옵션이 체크되어 있는지 확인하십시오.
마우스 커서를 피처 위로 가져가면, 해당 피처에 대응하는 정보가 표시될 것입니다.
맵 도움말은 크로스 레이어(cross-layer) 기능입니다. 다시 말해 한번 활성화시키면 다시 끌 때까지 계속 프로젝트에서 맵 도움말이 활성화된 레이어들에 모두 적용된다는 뜻입니다.
16.1.14. 렌더링 속성
Rendering 탭에서 다음 설정을 할 수 있습니다:
Scale dependent visibility 에서는 Maximum (inclusive) 및 Minimum (exclusive) 축척을 설정해서 피처가 보이게 될 축척 범위를 정의할 수 있습니다. 이 범위를 벗어나면, 피처를 숨깁니다. Set to current canvas scale 버튼을 클릭하면 현재 맵 캔버스의 축척을 가시성 범위의 한계값으로 설정할 수 있습니다. 자세한 내용은 가시성 축척 선택기 을 참조하세요.
참고
Layers 패널에서 레이어에 대한 축척 의존 가시성을 활성화시킬 수도 있습니다. 레이어를 오른쪽 클릭한 다음 컨텍스트 메뉴에서 Set Layer Scale Visibility 를 선택하십시오.
QGIS는 실시간 피처 단순화를 지원합니다. 이 기능은 소축척에서 여러 복잡 피처를 그릴 때 렌더링 시간을 단축시켜 줍니다. 레이어 설정에서 Simplify geometry 옵션으로 이 기능을 활성화하거나 비활성화할 수 있습니다. 새로 추가하는 레이어에 대해 기본적으로 단순화를 활성화시키는 전체 수준 설정도 있습니다. (자세한 정보는 전체 수준 단순화 를 참조하세요.)
참고
피처 단순화는 어떤 경우 사용자의 렌더링된 산출물에 오류를 남길 수도 있습니다. 폴리곤들 사이의 조각이거나, 오프셋 기반 심볼 레이어를 이용한 경우 부정확한 렌더링의 결과일 수도 있습니다.
Fixed reference scale 을 설정하는 경우, 참조 축척은 (밀리미터 또는 포인트 같은) 용지 기반 단위를 사용하는 심볼 및 라벨 크기와 관련된 맵 축척을 나타냅니다. 맵의 축척을 변경할 때마다 그에 맞춰 크기를 조정할 것입니다.
예를 들어 Reference scale 을 2밀리미터 너비의 라인을 사용하는 1:2,000으로 설정한 라인 레이어는 맵의 축척이 1:1,000일 때 4밀리미터 너비의 라인을 사용해서 렌더링될 것입니다.
Selections 부분에서는 특정 레이어에 특정 색상 또는 심볼을 기본값으로 ( ) 사용해야 할지 여부를 제어할 수 있습니다. 특정 심볼을 가진 선택 피처들의 가시성을 향상시키는 데 유용한 방법입니다:
Use default selection color: 선택 집합에 기본 색상을 적용합니다.
Override color for selected features: 예를 들어 레이어가 노란색을 기본 색상으로 사용하는 경우 표준 노란색 선택 집합을 보이지 않게 합니다.
Override symbol for selected features: 예를 들어 라인 레이어가 가느다란 심볼을 사용하는데 라인에 적용된 색상이 라인을 잘 보이지 않게 만드는 경우, 이 심볼을 무시하고 더 두꺼운 라인으로 만들면 도움이 될 수 있습니다. 또, 레이어가 래스터 심볼 또는 색상표를 가진 그레이디언트 채우기(fill)/라인/부풀리기(shapeburst) 심볼을 사용하는 경우 기본 선택 집합 색상은 전혀 적용되지 않습니다. 레이어에서 선택된 피처에 사용할 더 단순한 특정 심볼을 설정할 수 있으면 도움이 될 것입니다.
극도로 세밀한 레이어(예: 수많은 노드를 지닌 폴리곤 레이어)를 렌더링하면, 내보낸 파일에 수많은 노드가 전부 포함돼야 하기 때문에 조판기가 내보낸 PDF/SVG 포맷 파일의 용량이 터무니없이 커질 수도 있습니다. 또다른 프로그램에서 해당 파일을 열거나 편집할 때 아주 느려질 수도 있습니다.
Force layer to render as raster 를 활성화하면 이런 레이어를 강제로 래스터화해서 내보내기 파일이 해당 레이어가 담고 있는 모든 노드를 포함할 필요가 없도록 합니다. 따라서 렌더링 속도도 향상됩니다.
조판기에서 래스터로 내보내도록 강제해도 동일한 결과를 얻을 수 있지만, 이 방법은 모든 레이어를 래스터화하기 때문에 마지막 수단으로 남겨두어야 합니다. 아니면 레이어 내보내기 설정 에 있는 도형 단순화 기능을 이용할 수도 있습니다.
Refresh layer at interval: 이 옵션은 레이어를 얼마나 정기적으로 새로고침할 수 있는지 그리고 새로고침할지 여부를 제어합니다. 사용할 수 있는 환경설정 Configuration 옵션들은 다음과 같습니다:
Reload data: 레이어를 완전히 새로고침할 것입니다. 캐시되어 있던 데이터를 모두 삭제하고 제공자로부터 다시 받아올 것입니다. 이 모드는 맵 새로고침 속도를 저하할 수도 있습니다.
Redraw layer only: 이 모드는 애니메이션에 대해 또는 레이어의 스타일이 정기적인 간격으로 업데이트될 경우 유용합니다. 하나 이상의 레이어에 자동 업데이트 간격을 설정한 경우 여러번 새로고침하지 않도록 캔버스 업데이트를 연기합니다.
연속되는 새로고침 사이의 간격을 초 단위로 Interval (seconds) 설정할 수도 있습니다.
데이터 제공자(예: PostgreSQL)에 따라, QGIS 외부에서 데이터소스에 변경 사항이 생겼을 경우 QGIS에 알림을 전송할 수 있습니다. Refresh layer on notification 옵션을 사용해서 업데이트를 촉발하십시오. 특정 메시지에만 레이어를 새로고침하도록 Only if message is 텍스트란에 메시지를 설정할 수도 있습니다.
16.1.15. 시계열 속성
Temporal 탭은 레이어의 렌더링을 시간에 따라 제어할 수 있는 옵션들을 제공합니다. 이런 동적 렌더링에는 맵 캔버스 전체에 적용되는 시계열 탐색 을 활성화해야 할 필요가 있습니다.
벡터 레이어의 시계열 렌더링을 환경 설정하려면 Dynamic Temporal Control 옵션을 체크해야 합니다. 사용자 데이터셋의 구조에 따라, 다음 Configuration 옵션들 가운데 하나를 사용해야 할 수도 있습니다:
Fixed time range: 맵 캔버스의 시계열 프레임이 지정한 Start date 와 End date 범위와 겹치는 경우 모든 피처를 렌더링합니다.
Single field with date/time: 피처의 Field 값이 맵 캔버스의 시계열 프레임 안에 들어오는 경우 피처를 렌더링합니다. Event duration 을 설정할 수 있습니다. Accumulate features over time 옵션을 체크하면 맵의 시계열 범위 이전 또는 시계열 범위 안에 나타나는 모든 피처를 계속 렌더링할 것입니다. 이때 이벤트 기간(event duration)은 무시됩니다.
Separate fields for start and end date/time: 피처의 Start field 와 End field 로 지정된 범위가 맵 캔버스의 시계열 프레임과 겹치는 경우 피처를 렌더링합니다.
Separate fields for start and event duration: 피처의 Start field 와 Event duration field 로 정의된 범위가 맵 캔버스의 시계열 프레임과 겹치는 경우 피처를 렌더링합니다.
Start and end date/time from expressions: 필드의 Start expression 과 End expression 으로 지정된 시간 범위가 맵 캔버스의 시계열 프레임과 겹치는 경우 피처를 렌더링합니다.
Redraw layer only: 각각의 새로운 애니메이션 프레임에서 레이어를 새로 렌더링하지만 피처에 어떤 시간 기반 필터링도 적용하지 않습니다. 레이어가 렌더링 작업자 설정에 시간 기반 표현식을 사용하는 경우 (예: 데이터 정의 심볼) 유용합니다.
Limits: 피처의 시간 범위에 제한을 설정할 수도 있습니다:
Include start, exclude end: 시작 시간을 포함하고, 중단 시간은 제외합니다.
Include start, include end: 시작 시간과 중단 시간을 모두 포함합니다.
16.1.16. 변수 속성
Variables 탭은 레이어 수준에서 쓸 수 있는 모든 변수들의 목록을 표시합니다. (전체 및 프로젝트 수준의 모든 변수를 포함합니다.)
또한 사용자가 레이어 수준 변수를 관리할 수도 있습니다. 버튼을 클릭해서 새 사용자 지정 레이어 수준 변수를 추가합니다. 마찬가지로, 목록에서 사용자 지정 레이어 수준 변수를 선택한 다음 버튼을 클릭해서 제거합니다.
16.1.17. 표고 속성
Elevation 탭은 3차원 맵 뷰 안에서의 레이어 표고 속성 및 단면 도구 도표(profile tool charts) 에서의 3차원 맵 뷰의 모양을 제어할 수 있는 옵션들을 제공합니다. 그 중에서도 다음을 설정할 수 있습니다:
Elevation Clamping: 피처의 고도를 어떻게 표현할지 그리고 표현해야 할지 여부를 정의합니다:
Clamped to terrain: 피처의 모든 Z 값을 무시하고 지형의 높이로부터 표고를 직접 가져옵니다. 지형의 데이터 정의 Offset 값도 입력할 수 있습니다.
Relative to terrain: 피처의 모든 기존 Z 값을 지형 높이에 더합니다. Scale 인자를 지정한 다음 데이터 정의 Offset 을 이용해서 표고를 조정할 수 있습니다. 2차원 도형 레이어에는 이 옵션을 사용할 수 없습니다.
Absolute: 지형 높이를 무시하고 피처의 Z 값으로부터 표고를 직접 가져옵니다. Scale 인자를 지정한 다음 데이터 정의 Offset 을 이용해서 표고를 조정할 수 있습니다. (Z 값이 없는) 2차원 도형 레이어의 경우 데이터 정의 Base height 옵션을 대신 설정할 수 있습니다.
Enable extrusion: 피처를 피처의 기반 위로 얼마나 수직 연장시킬지를 제어하려면 Height 를 설정하면 됩니다. 이 옵션은 건물 청사진 폴리곤 레이어 같은 2차원 도형 레이어가 실제로는 3차원 객체를 표현한다는 사실을 나타내는 데 편리합니다.
Elevation Binding: 지형에 의존하는 Elevation clamping 옵션을 라인 또는 폴리곤 레이어와 결합하는 경우에만 이 옵션을 사용할 수 있습니다. 이 옵션은 피처 표고를 지형 높이에 상대적으로 설정하는 방법을 제어합니다. 지형 높이는 다음과 같이 샘플링할 수 있습니다:
Centroid: 피처의 중심점에서 샘플링합니다. 각 꼭짓점의 Z 값에 중심점의 높이를 추가합니다.
Vertex: 모든 개별 꼭짓점에서 샘플링한 다음 각 꼭짓점의 Z 값에 추가합니다.
Profile Chart Appearance: 단면 도표를 그릴 때 피처를 어떻게 렌더링할지를 제어합니다. 두 가지 주요 Interpretation 모드를 사용할 수 있습니다:
Individual features: 단면(cross section profile) 라인이 벡터 피처와 교차하는 개별 위치를 샘플링합니다. 이 교차 영역은 레이어 유형에 따라 그리고 압출(extrusion)이 적용되었는지에 따라 포인트, 라인, 또는 표면으로 표현될 수 있습니다.
Respect layer symbology 옵션을 체크하면 단면 도표 상에 피처를 대응하는 레이어 스타일 로 렌더링할 것입니다. (예를 들어 단면 도표 상에 범주화된 범주들을 가시화시킬 수 있습니다.) 단면 심볼 유형이 레이어의 렌더링 작업자 심볼 유형과 일치하지 않는 경우, 단면 심볼에 렌더링 작업자 심볼의 색상만 적용합니다.
레이어 설정에 따라, 다음을 이용해서 단면 심볼을 사용자 지정 스타일로 표현할 수 있습니다:
Continuous Surface (e.g. contours): 샘플링된 표고값들을 연속되는 라인으로 결합시켜 표고 도표를 개별 피처가 아닌 표면으로 렌더링할 것입니다. 이 옵션은 가시화를 향상시킬 수 있으며, 예를 들어 등고선 또는 측량 표고점과 같이 연속되는 표고 표면을 표현하는 벡터 레이어를 위해 개발되었습니다. 단면의 Style 을 다음과 같이 설정할 수 있습니다:
라인 스타일 이 적용된 Line
표고 곡선 위(Fill above) 또는 아래(Fill below)에 채우기 심볼을 사용해서 렌더링한 표고 표면입니다. 표면 심볼은 다음을 이용해서 표현됩니다:
Limit: 채우기 표면이 얼마나 높이 올라가게 될지 결정하는 최대 (제각기 최저) 고도를 설정합니다.
이에 더해 Show markers at sampled points 옵션을 체크하면 설명선(interpretation line) 위에 마커를 가시화시키고 마커에 Marker style 을 적용시킬 수 있습니다.
16.1.18. 메타데이터 속성
Metadata 탭에 사용자 레이어에 대한 메타데이터 리포트를 생성하고 편집할 수 있는 옵션이 있습니다. 더 자세한 정보는 메타데이터 를 참조하세요.
16.1.19. 의존성 속성
Dependencies 탭에서 레이어 사이의 데이터 의존성을 선언할 수 있습니다. 레이어에서 ─ 사용자가 직접 수정하지 않고 ─ 데이터가 수정되면 다른 레이어의 데이터가 수정될 수도 있는 경우 데이터 의존성이 발생합니다. 예를 들면 레이어의 도형을 수정한 후 데이터베이스 트리거 또는 사용자 지정 PyQGIS 스크립트 작업이 또다른 레이어의 도형을 업데이트하는 경우를 말합니다.
Dependencies 탭에서 현재 레이어의 데이터를 외부적으로 변경할 수도 있는 어떤 레이어도 선택할 수 있습니다. 의존 레이어를 정확하게 지정하면, 의존 레이어가 변경됐을 때 QGIS가 선택한 레이어의 캐시를 무효화할 수 있습니다.
16.1.20. 범례 속성
Legend 속성 탭은 레이어 패널 그리고/또는 인쇄 조판기 범례 를 위한, 다음과 같은 옵션을 포함하는 고급 설정을 제공합니다:
레이어에 적용된 심볼에 따라, 범례에 딱히 인간이 읽을 수 있지도 않고 유용하지도 않은 항목들이 몇 개 나타날 수도 있습니다. Legend placeholder image 를 이용하면 Layers 패널과 인쇄 조판 범례에 표시되는 대체 이미지를 선택 할 수 있습니다.
Show label legend: 범례에 다양한 라벨 설정들의 오버뷰를 항목으로 표시합니다. 라벨 스타일 을 설명과 함께 미리보기할 수 있습니다.
Text on symbols: 몇몇 경우 범례에 있는 심볼에 추가 정보를 추가하는 것이 유용할 수 있습니다. 이 프레임을 통해 레이어 심볼에서 사용되는 어떤 심볼이든, Layers 패널 및 인쇄 조판기 범례 양쪽에 있는 심볼 위에 텍스트를 표시하도록 할 수 있습니다. 테이블 위젯에 있는 심볼 옆에 텍스트를 입력하거나 Set Labels from Expression 버튼으로 테이블을 채우면 심볼과 텍스트를 매핑할 수 있습니다. Text Format 버튼의 글꼴 위젯과 색상 선택기 위젯을 통해 텍스트의 모양을 설정합니다.
레이어 패널에 있는 레이어 트리 안에 삽입할 수 있는 위젯 목록 가운데 위젯을 선택할 수 있습니다. 레이어 작업 시 자주 쓰이는 몇몇 액션(투명도, 필터링, 선택, 스타일, 기타 등등의 설정)에 빨리 접근하기 위한 방법으로 사용됩니다.
QGIS가 기본적으로 투명도 위젯을 제공하고는 있지만, 자체 위젯을 등록하고 플러그인이 관리하는 레이어에 사용자 지정 액션을 할당하는 플러그인으로 위젯 목록을 확장할 수 있습니다.
16.1.21. QGIS 서버 속성
QGIS Server 탭은 Description, Attribution, Metadata URL, 그리고 Legend URL 부분들로 이루어져 있습니다.
Description 프레임에서 요청에서 레이어를 참조하기 위해 쓰이는 Short name 을 변경할 수 있습니다. (단축명에 대해 더 알고 싶다면 단축명 을 읽어보십시오.) 이 프레임에서 레이어의 Title 및 Abstract 를 추가하거나 편집할 수도 있고, 또는 Keyword list 를 정의할 수도 있습니다. 이런 키워드 목록은 메타데이터 카탈로그에 사용할 수 있습니다. XML 메타데이터 파일의 제목을 사용하고 싶다면 Data URL 란에 링크를 입력해야 합니다.
XML 메타데이터 카탈로그에서 속성 데이터를 얻으려면 Attribution 프레임을 이용하십시오.
Metadata URL 프레임에서 XML 메타데이터 카탈로그를 가리키는 일반 경로를 추가할 수 있습니다. 이 정보는 후속 세션을 위해 QGIS 프로젝트 파일에 저장되어 QGIS 서버 용으로 쓰일 것입니다.
Legend URL 프레임에서 URL 란에 범례 이미지의 URL을 입력할 수 있습니다. Format 드롭다운 옵션을 이용해서 적절한 이미지 포맷을 적용시킬 수 있습니다. 현재 PNG, JPG 및 JPEG 이미지 포맷을 지원합니다.
QGIS 서버에 대해 더 알고 싶다면, QGIS 서버 지침서 을 읽어보십시오.
16.1.22. 디지타이즈 작업 속성
Digitizing 탭은 디지타이즈한 도형의 질을 보장하도록 하는 옵션들을 제공합니다.
16.1.22.1. 자동 수정
Automatic Fixes 부분의 옵션들은 추가 또는 수정되는 모든 도형의 꼭짓점에 직접 영향을 줍니다. Remove duplicate nodes 옵션을 체크하면, 바로 앞뒤에 위치하며 정확히 동일한 좌표를 가진 모든 두 꼭짓점을 제거할 것입니다. Geometry precision 을 설정하면, 모든 꼭짓점이 환경 설정한 도형 정밀도의 가장 가까운 배수로 반올림될 것입니다. 이 반올림은 레이어 좌표 참조 시스템에서 일어납니다. Z 및 M값은 반올림되지 않습니다. 디지타이즈 작업 도중 캔버스 상에 그리드가 여러 맵 도구들과 함께 나타납니다.
16.1.22.2. 도형 점검
Geometry checks 프레임에서 도형 별 추가 점검을 활성화시킬 수 있습니다. 어떤 도형을 수정한 직후 확인된 오류를 Geometry validation 패널을 통해 사용자에게 보고합니다. 점검을 통과하지 못 하는 한 레이어를 저장할 수 없습니다. Is valid 옵션을 체크하면 도형 상에 자기 교차(self intersection) 같은 오류가 있는지 기본 무결성 검사를 실행할 것입니다.
16.1.22.3. 위상 점검
Topology checks 프레임에서는 추가적인 지형 점검을 활성화시킬 수 있습니다. 사용자가 레이어를 저장할 때 지형 점검을 실행할 것입니다. Geometry validation 패널을 통해 확인된 오류를 보고할 것입니다. 점검을 통과하지 못 하는 한 레이어를 저장할 수 없습니다. 지형 점검은 수정된 피처의 경계 상자 영역에서 실행됩니다. 다른 피처가 같은 영역에 있을 수도 있기 때문에, 현재 편집 세션에서 발생한 오류는 물론 이 다른 피처와 관련된 지형 오류도 보고될 것입니다.
위상 점검 옵션 |
실제 예시 |
---|---|
Missing vertex: 인접한 폴리곤들이 경계선을 공유하는데 한쪽 경계에 있는 꼭짓점이 다른쪽 경계에 없는 경우 빠진 꼭짓점을 점검할 것입니다. |
틈 점검의 예외
틈만 없다면 폴리곤으로 완전히 덮히는 폴리곤 레이어의 영역 안에 있는 틈을 유지하는 것이 바람직한 경우가 종종 있습니다. 예를 들어 토지 이용 레이어는 호수를 나타내는, 받아들일 수 있는 구멍을 가지고 있을 수도 있습니다. 영역이 틈 점검에서 무시당하도록 정의할 수도 있습니다. 이런 영역 안에서는 틈이 허용되기 때문에, 이런 틈을 허용된 틈(Allowed Gap) 영역이라고 부르도록 하겠습니다.
Allowed Gaps 아래 있는 틈 점검을 위한 옵션에서, 허용된 틈 레이어(Allowed Gaps layer) 의 환경을 설정할 수 있습니다.
틈 점검을 실행할 때마다, 허용된 틈 레이어 에서 하나 또는 그 이상의 폴리곤으로 덮혀 있는 틈은 위상 오류로 보고되지 않습니다.
추가적인 Buffer 를 설정할 수도 있습니다. 이 버퍼는 허용된 틈 레이어 상의 각 폴리곤에 적용됩니다. 이렇게 버퍼를 설정하면 틈 경계의 외곽선을 자잘하게 변경하더라도 틈 점검이 민감하게 잡아내지 않도록 할 수 있습니다.
허용된 틈 을 활성화하면, 디지타이즈 도중 발생한 틈을 보고하는 도형 무결성 검증 도크(dock)에서 탐지된 틈 오류를 위한 추가 버튼(Add Allowed Gap)을 사용할 수 있습니다. Add Allowed Gap 버튼을 누르면, 허용된 틈 레이어 에 탐지된 틈의 도형을 가진 새 폴리곤을 삽입합니다. 이렇게 하면 한번에 틈을 허용할 수 있습니다.
도형 검증 패널
앞에서 언급한 어떤 디지타이즈 작업 점검이라도 오류를 발견했을 때 Geometry Validation 패널이 나타날 것입니다. 이 대화창은 오류 목록 및 오류 설명을 표시하며, 사용자는 키보드의 화살표 키 또는 패널의 전용 화살표를 이용해서 목록을 살펴볼 수 있습니다.
레이어의 편집 내용을 저장하려면 먼저 모든 문제점을 해결해야 할 것입니다:
오류를 선택한 다음 다음 작업을 할 수 있습니다:
보통 사용하는 디지타이즈 작업 도구 를 선택해서 문제점을 수정하십시오.