14.1. 벡터 속성 대화창

벡터 레이어의 Layer Properties 대화창은 맵에서 레이어의 피처가 어떻게 보이는지(심볼, 라벨, 도표) 및 마우스와의 상호 작용(액션, 맵 도움말, 양식 디자인)을 관리하는 일반 설정을 제공합니다. 또 레이어에 대한 정보를 제공하기도 합니다.

Layer Properties 대화창을 열려면:

  • Layers 패널에서 레이어를 더블 클릭하거나, 오른쪽 클릭한 다음 컨텍스트 메뉴에서 Properties… 를 선택하십시오.

  • 레이어를 선택한 다음 Layer ► Layer Properties… 메뉴를 클릭하십시오.

벡터 Layer Properties 대화창은 다음 탭들로 이루어져 있습니다:

metadata 정보

system 소스

symbology 심볼[1]

labeling 라벨[1]

labelmask 마스크[1]

3d 3D 뷰[1]

diagram 도표

sourceFields 필드

formView 속성 양식

join 결합

auxiliaryStorage 보조 저장소

action 액션

display 표시

rendering 렌더링

temporal 시계열

expression 변수

editMetadata 메타데이터

dependencies 의존성

legend 범례

overlay QGIS 서버

digitizing 디지타이즈 작업

외부 플러그인[2]

[1] 레이어 스타일 작업 패널 에서도 사용할 수 있습니다.

[2] 사용자가 설치한 외부 플러그인 이 이 대화창에 탭을 추가할 수도 있습니다. 이 문서에서는 이에 대해 설명하지 않습니다. 외부 플러그인 문서를 참조하십시오.

레이어 스타일의 전체 또는 일부 속성 공유

대화창 하단에 있는 Style 메뉴를 통해 여러 대상(파일, 클립보드, 데이터베이스 등)에서/으로 이런 전체 또는 일부 속성들을 가져오거나 내보낼 수 있습니다. 사용자 지정 스타일 관리하기 를 참조하세요.

참고

원본 프로젝트 파일에서 삽입 레이어(프로젝트 내포 작업 참조)의 속성들(심볼, 라벨, 액션, 기본값, 양식 등등)을 읽어오기 때문에, 이 습성을 방해할 수도 있는 변경 사항이 적용되는 일을 피하기 위해 삽입 레이어에 대해 레이어 속성 대화창을 사용할 수 없게 돼 있습니다.

14.1.1. 정보 속성

metadata Information 탭은 읽기 전용으로, 현재 레이어에 대한 요약 정보 및 메타데이터를 한 눈에 볼 수 있는 흥미로운 장소입니다. 다음과 같은 정보를 제공합니다:

  • 레이어 제공자 기반 정보(저장소 유형, 경로, 도형 유형, 데이터소스 인코딩, 범위 등등)

  • 채워진 메타데이터 에서 고른 정보(접근 정보, 링크, 연락처, 이력 등등)

  • 레이어 도형 관련 정보(공간 범위, 좌표계 등등) 또는 도형 속성(필드 개수, 각 도형의 특성 등등)

14.1.2. 소스 속성

system Source 탭에서 벡터 레이어에 대한 일반 설정을 정의할 수 있습니다.

../../../_images/vector_source_menu.png

그림 14.1 벡터 레이어 속성 대화창의 소스 탭

Layers Panel 에 표시할 Layer name 설정 이외에도, 다음과 같은 옵션을 설정할 수 있습니다:

14.1.2.1. 좌표계

  • 레이어의 좌표계 를 표시합니다. 드롭다운 목록에서 최근 사용한 좌표계를 선택하거나 setProjection Select CRS 버튼을 (좌표계 선택기 참조) 클릭해서 레이어 좌표계를 변경할 수 있습니다. 레이어에 적용된 좌표계가 틀렸거나 또는 적용된 좌표계가 없는 경우에만 변경하십시오. 사용자 데이터를 또다른 좌표계로 재투영하고 싶은 경우, 공간 처리 레이어 재투영 알고리즘을 이용하거나 다른 레이어로 레이어를 저장 하는 편이 좋습니다.

  • Create spatial index: 공간 인덱스를 생성합니다. (OGR 지원 유형 전용입니다.)

  • Update extents: 레이어의 범위 정보를 업데이트합니다.

14.1.2.2. 쿼리 작성기

레이어 속성 대화창의 Source 탭의 Provider Feature Filter 그룹 하단에 있는 쿼리 작성기 버튼을 누르면 Query Builder 대화창을 열 수 있습니다.

쿼리 작성자는 SQL 호환 WHERE 절을 이용해서 레이어에 있는 피처의 하위 집합을 정의하고 그 결과를 메인 창에 표시할 수 있는 인터페이스를 제공합니다. 쿼리를 비활성화하지 않는 한, 프로젝트에서 쿼리 결과에 상응하는 피처만 사용할 수 있습니다.

Query Builder 에서 필터를 정의하는 데 하나 이상의 레이어 속성을 사용할 수 있습니다. 그림 14.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 데이터셋용입니다.

데이터 제공자(OGR, PostgreSQL, MSSQL 등등) 수준에서 필터를 생성하기 때문에, 문법은 데이터 제공자를 따릅니다. (예를 들어 ESRI Shapefile 포맷은 날짜&시간 유형을 지원하지 않습니다.) 완전한 표현식은 다음과 같습니다:

cast("toa" as character) > '2017-05-17' AND
cast("toa" as character) < '2019-12-24T18:00:00' AND
NOT ("name" > 'S' OR FID > 10)
../../../_images/queryBuilder.png

그림 14.2 쿼리 작성기

Layer 메뉴 또는 레이어의 컨텍스트 메뉴에서 Filter… 옵션을 이용해서도 Query Builder 대화창을 열 수 있습니다. 대화창의 Fields, ValuesOperators 부분에서 Provider specific filter expression 상자에 노출되는 SQL 호환 쿼리를 작성할 수 있습니다.

필드 목록은 레이어의 모든 필드를 담고 있습니다. SQL WHERE 절 란에 속성 열을 추가하려면, 필드 목록에 있는 명칭을 더블 클릭하거나 SQL 란에 직접 입력하십시오.

프레임은 현재 선택한 필드의 값들을 목록화합니다. 필드의 모든 유일 값들을 표시하려면, All 버튼을 클릭하십시오. 열의 처음 유일한 값 25개만 표시하려면, Sample 버튼을 클릭하십시오. SQL WHERE 절 란에 값을 추가하려면, 값 목록에 있는 명칭을 더블 클릭하십시오. 값 프레임 상단에 있는 검색란을 사용하면 목록에 있는 속성 값을 쉽게 탐색하고 찾을 수 있습니다.

연산자 부분은 사용할 수 있는 모든 연산자를 담고 있습니다. SQL WHERE 절 란에 연산자를 추가하려면, 적절한 버튼을 클릭하십시오. 관계 연산자(=, > 등등), 문자열 비교 연산자(LIKE), 그리고 논리 연산자(AND, OR 등등)를 사용할 수 있습니다.

Test 버튼은 사용자의 쿼리를 점검하고 현재 쿼리를 만족하는 피처의 개수를 보여주는 메시지 창을 엽니다. Clear 버튼을 누르면 SQL 쿼리를 모두 삭제하고 레이어를 원래 상태로 (예를 들면 모든 피처를 다시 불러와) 되돌립니다.

필터를 적용하면, QGIS는 쿼리로 선택된 하위 집합이 마치 완전한 레이어인 것처럼 취급합니다. 예를 들면, 사용자가 앞의 그림처럼 ‘Borough’ 에 대해 필터를 적용한 경우 ("TYPE_2" = 'Borough') Anchorage 를 표시하거나 쿼리하거나 저장하거나 편집할 수 없습니다. Anchorage 는 ‘Municipality’ 이기 때문에 하위 집합에 속하지 않기 때문입니다.

레이어 패널은 필터링된 레이어를 표시합니다

Layers 패널에서 필터링된 레이어에 마우스를 가져가면 레이어 옆에 쿼리가 사용됐다는 사실을 알려주는 indicatorFilter Filter 아이콘이 나타납니다. 이 아이콘을 더블 클릭하면 Query Builder 대화창이 열려 쿼리를 편집할 수 있습니다.

14.1.3. 심볼 속성

symbology 심볼 탭은 사용자 벡터 데이터를 렌더링하고 심볼 작업을 하기 위한 종합 도구를 제공합니다. 모든 벡터 데이터에 공통적으로 쓰이는 도구는 물론 서로 다른 벡터 데이터 유형에 맞춰 특화된 심볼 작업 도구도 이용할 수 있습니다. 하지만 모든 데이터 유형이 다음과 같은 대화창 구조를 공유합니다: 상단에는 범주화 및 피처에 적용할 심볼을 준비하는 데 쓰이는 위젯이, 하단에는 레이어 렌더링 위젯이 있습니다.

서로 다른 레이어 스타일로 재빨리 바꾸기

Layer Properties 대화창 하단에 있는 Styles ► Add 메뉴를 이용하면, 스타일을 원하는 대로 얼마든지 저장할 수 있습니다. 스타일이란 레이어의 모든 (심볼, 라벨, 도표, 필드 양식, 액션 등등) 속성을 사용자가 원하는대로 조합한 것입니다. 그리고 나서, Layers Panel 에 있는 레이어의 컨텍스트 메뉴에서 스타일을 바꾸기만 하면, 사용자 데이터의 모습이 자동적으로 변경될 겁니다.

벡터 심볼 내보내기

QGIS 벡터 심볼을 구글 *.kml, *.dxf 및 MapInfo *.tab 파일로 내보낼 수 있는 옵션이 존재합니다. 레이어를 오른쪽 클릭해서 컨텍스트 메뉴를 열어, Save As… 를 선택하고 산출물 파일명 및 포맷을 지정하면 됩니다. 대화창에서는 Symbology export 메뉴의 Feature symbology ► 또는 Symbol layer symbology ► 메뉴 옵션을 통해 심볼을 저장하십시오. 심볼 레이어를 사용해본 경험이 있다면, 두 번째 방법을 이용하는 편이 좋습니다.

14.1.3.1. 피처 렌더링

렌더링 작업자(renderer)는 정확한 심볼과 함께 피처를 그리는 일을 책임집니다. 레이어 도형 유형에 상관없이, 렌더링 작업자에는 단일 심볼, 범주, 등급, 규칙 기반이라는 공통 유형이 4개 있습니다. 포인트 레이어의 경우, 포인트 변위(displacement) 및 열지도 렌더링 작업자를 이용할 수 있는 반면 폴리곤 레이어의 경우 그 외에도 역(inverted) 폴리곤 및 2.5차원 렌더링 작업자를 통해 렌더링할 수도 있습니다.

연속 색상 렌더링 작업자라는 건 없습니다. 연속 색상 렌더링 작업자란 사실 등급 렌더링 작업자의 특수한 경우일 뿐이기 때문입니다. 심볼 및 색상표를 지정하면 심볼 색상을 적절하게 설정하는 범주 및 등급 렌더링 작업자를 생성할 수 있습니다. 각 데이터 유형(포인트, 라인 및 폴리곤) 별로, 해당 벡터 심볼 레이어 유형이 존재합니다. 어떤 렌더링 작업자를 선택하느냐에 따라, 대화창에 서로 다른 부분들이 추가될 것입니다.

참고

벡터 레이어의 스타일을 설정할 때 렌더링 작업자 유형을 변경해도, 심볼에 대한 사용자 설정은 유지될 것입니다. 다만 단 한 번 변경하는 경우에만 유지된다는 점을 기억해주십시오. 렌더링 작업자 유형을 계속 변경하다보면 심볼 설정이 사라지게 됩니다.

단일 심볼 렌더링 작업자

singleSymbol Single Symbol 렌더링 작업자는 레이어의 모든 피처를 사용자가 정의한 단일 심볼을 이용해서 렌더링합니다. 심볼 표현에 대한 자세한 정보는 심볼 선택기 를 참조하세요.

../../../_images/singlesymbol_ng_line.png

그림 14.3 단일 심볼 라인 속성

무(無) 심볼 렌더링 작업자

nullSymbol No Symbols 렌더링 작업자는 모든 피처를 동일하게 렌더링하는 단일 심볼 렌더링 작업자의 특수한 용례입니다. 이 렌더링 작업자를 이용하면, 피처에 적용된 어떤 심볼도 렌더링하지 않지만 라벨, 도표 및 기타 심볼이 아닌 부분들은 렌더링될 것입니다.

이 렌더링 작업자를 이용하더라도 맵 캔버스에서 레이어에 있는 피처를 선택할 수 있는데, 선택한 피처를 기본 심볼로 렌더링할 것입니다. 편집 중인 피처도 표시할 것입니다.

이 렌더링 작업자는 오직 라벨 또는 도표만 보이길 원하는 레이어를 표시하기 위한 간편한 편법입니다. 다른 방법을 쓴다면 완전히 투명한 면/경계선을 보유한 심볼을 이용해서 렌더링해야만 하겠지요.

범주 렌더링 작업자

categorizedSymbol Categorized 렌더링 작업자는 필드 또는 표현식의 개별 값을 속성에 반영하는 사용자 지정 심볼을 이용해서 레이어의 피처를 렌더링합니다.

../../../_images/categorysymbol_ng_line.png

그림 14.4 범주 심볼 작업 옵션들

레이어에 대해 범주 심볼을 사용하려면:

  1. 범주의 Value 를 선택하십시오: 입력란에 입력하거나 관련 expression 버튼으로 작성할 수 있는 표현식, 또는 기존 필드일 수 있습니다. 범주 작업에 표현식을 사용하면 심볼의 목적을 위해 즉석 필드를 생성할 필요가 없습니다. (예를 들어 하나 이상의 속성으로부터 사용자의 범주 기준을 파생시킬 수 있습니다.)

    피처 범주화를 위해 사용되는 표현식은 어떤 종류든 가능합니다. 예를 들어:

    • 비교 표현식이 될 수 있습니다. 이 경우, 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
      

    객체를 범주화하는 데 모든 종류의 표현식을 사용할 수 있지만, 일부 복잡 표현식의 경우 규칙 기반 렌더링 작업자 를 사용하는 편이 더 간단할 수도 있습니다.

  2. 모든 범주용 기본 심볼로 쓰이게 될 심볼 을 환경 설정하십시오.

  3. 각 심볼에 적용되는 색상을 선택할 색상 범위 같은 색상표 를 지정하십시오.

    색상표 위젯 의 공통 옵션 외에, 범주에 unchecked Random Color Ramp 임의의 색상표를 적용할 수 있습니다. 사용자가 만족하지 못 하는 경우 Shuffle Random Colors 를 클릭하면 새로운 임의의 색상 집합을 재생성할 수 있습니다.

  4. 그리고 Classify 버튼을 클릭해서 주어진 필드나 표현식의 개별 값으로부터 범주들을 생성하십시오.

  5. 실시간 업데이트 를 사용하는 중이 아니며 맵 캔버스 상의 각 피처를 각 피처의 범주 심볼로 렌더링할 예정인 경우 Apply 를 눌러 변경 사항을 적용하십시오.

    QGIS는 기본적으로 목록에 all other values 범주를 추가합니다. 처음 시작 시에는 비어 있지만, 이 범주는 다른 범주에 들어가지 않는 모든 피처를 위한 기본 범주입니다. (예를 들어 범주화 필드/표현식을 위한 새 값을 가진 피처를 생성하는 경우처럼 말이죠.)

기본 범주를 심도 있게 미세 조정할 수 있습니다:

  • signPlus Add 새 범주를 추가할 수도 있고, signMinus Remove 선택한 범주를 제거할 수도 있으며, 또는 Delete All 모든 범주를 삭제할 수도 있습니다.

  • 범주명 왼쪽에 있는 체크박스를 해제하면 각 범주를 비활성화시킬 수 있습니다. 대응하는 피처는 맵 상에서 숨겨집니다.

  • 드래그&드롭으로 범주의 순서를 조정할 수 있습니다.

  • 범주의 심볼, 값 또는 범례를 변경하려면, 해당 범주를 더블 클릭하면 됩니다.

선택한 항목(들)을 오른쪽 클릭하면 나오는 컨텍스트 메뉴에는:

  • Copy SymbolPaste Symbol: 항목의 모습을 다른 항목에 적용할 수 있는 편리한 방법입니다.

  • Change Color…: 선택한 심볼(들)의 색상을 변경합니다.

  • Change Opacity…: 선택한 심볼(들)의 투명도를 변경합니다.

  • Change Output Unit…: 선택한 심볼(들)의 산출물 단위를 변경합니다.

  • Change Width…: 선택한 라인 심볼(들)의 폭을 변경합니다.

  • Change Size…: 선택한 폴리곤 심볼(들)의 크기를 변경합니다.

  • Change Angle…: 선택한 폴리곤 심볼(들)의 기울기를 변경합니다.

  • Merge Categories: 선택한 여러 범주들을 단일 그룹으로 병합합니다. 이렇게 하면 수많은 범주들을 가진 레이어들의 스타일 작업을 좀 더 단순하게 할 수 있습니다. 수많은 개별 범주들을 더 적고 더 관리하기 쉬운 범주 집합으로 그룹화해서 여러 값들에 적용시키는 것도 가능할 것입니다.

    목록에서 선택한 범주 가운데 가장 위에 있는 심볼이 병합된 범주들 용으로 쓰일 심볼이기 때문에, 병합 전에 사용자가 재사용하고자 하는 심볼을 가진 범주를 제일 위로 이동시키는 편이 좋습니다.

  • Unmerge Categories: 이전에 병합한 범주들을 다시 개별 범주들로 분리합니다.

Advanced 메뉴는 범주화 작업의 속도를 향상시키거나 심볼 렌더링을 미세 조정할 수 있는 옵션을 제공합니다:

  • Match to saved symbols: 각 범주에 범주의 범주화 값을 나타내는 명칭을 가진 심볼을 심볼 라이브러리 를 사용해서 할당합니다.

  • Match to symbols from file…: 심볼을 보유한 파일을 지정해서, 각 범주에 범주의 범주화 값을 나타내는 명칭을 가진 심볼을 할당합니다.

  • 심볼 수준…: 심볼 렌더링 순서를 정의합니다.

Layers 패널에서 직접 범주 편집

레이어 심볼이 범주, 등급 또는 규칙 기반 심볼 모드를 기반으로 하는 경우, Layers 패널에서 각 범주를 편집할 수 있습니다. 레이어의 하위 항목을 오른쪽 클릭하면:

  • toggleAllLayers Toggle items: 해당 항목의 가시성을 켜고 끕니다.

  • showAllLayers Show all items: 모든 항목을 표시합니다.

  • hideAllLayers Hide all items: 모든 항목을 숨깁니다.

  • 색상 선택기 휠을 통해 심볼 색상을 수정합니다.

  • Edit symbol…: 심볼 선택기 대화창에서 심볼을 편집합니다.

  • Copy symbol: 심볼을 복사합니다.

  • Paste symbol: 심볼을 붙여넣습니다.

등급 렌더링 작업자

graduatedSymbol Graduated 렌더링 작업자는 선택한 피처의 속성이 어떤 범주에 할당되는지를 반영하는 사용자 지정 심볼의 색상 또는 크기를 이용해서 레이어의 모든 피처를 렌더링합니다.

범주 렌더링 작업자처럼, 등급 렌더링 작업자는 지정한 열로부터 심볼의 기울기 및 크기 척도를 설정할 수 있습니다.

또한 범주 렌더링 작업자처럼, 다음 옵션들을 설정할 수 있습니다:

  • 값 (필드 목록 상자 또는 expression Set value expression 기능을 이용합니다.)

  • 심볼 (심볼 선택기 대화창을 이용합니다.)

  • 범례 양식 및 정밀도

  • 심볼 변경 방법: 색상 또는 크기

  • 색상 방법을 선택했을 경우 색상 (색상표 목록 상자를 이용합니다.)

  • 크기 (크기 범위 및 해당 단위를 이용합니다.)

그 다음 할당된 필드 또는 표현식에서 나온 값의 대화형 히스토그램을 표시하는 히스토그램 탭을 이용할 수 있습니다. 히스토그램 위젯을 통해 범주 단계(class break)를 이동하거나 추가할 수 있습니다.

참고

통계 요약 패널을 통해 사용자 벡터 레이어에 관한 정보를 더 많이 얻을 수 있습니다. 통계 요약 패널 을 참조하세요.

범주 탭으로 돌아가면, 범주의 개수는 물론 각 범주에 있는 범주화 기능 모드도 (모드 목록을 이용해서) 설정할 수 있습니다. 다음 모드들을 선택할 수 있습니다:

  • 동일 개수(Equal Count; Quantile): 각 범주가 동일한 개수의 요소를 가지게 됩니다. (상자 수염 그림 개념입니다.)

  • 동일 간격(Equal Interval): 각 범주가 동일한 크기를 가지게 됩니다. (예를 들어 1에서 16까지의 값을 범주 4개로 설정하면, 각 범주의 크기는 4가 됩니다.)

  • 대수 척도(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 SymbolPaste Symbol: 항목의 모습을 다른 항목에 적용할 수 있는 편리한 방법입니다.

  • Change Color…: 선택한 심볼(들)의 색상을 변경합니다.

  • Change Opacity…: 선택한 심볼(들)의 투명도를 변경합니다.

  • Change Output Unit…: 선택한 심볼(들)의 산출물 단위를 변경합니다.

  • Change Width…: 선택한 라인 심볼(들)의 폭을 변경합니다.

  • Change Size…: 선택한 폴리곤 심볼(들)의 크기를 변경합니다.

  • Change Angle…: 선택한 폴리곤 심볼(들)의 기울기를 변경합니다.

그림 14.5 는 QGIS 예시 데이터셋의 major_rivers 레이어에 대한 등급 렌더링 작업자 대화창의 예시입니다.

../../../_images/graduatedsymbol_ng_line.png

그림 14.5 등급 심볼 작업 옵션들

표현식을 이용한 테마 지도

표현식의 결과를 이용해서 범주 및 등급 테마 맵을 생성할 수 있습니다. 벡터 레이어의 속성 대화창에서, expression Set column expression 기능을 통해 속성 선택기를 확장합니다. 즉 범주화 속성을 여러 필드의 합성으로 또는 일종의 틀로 만들고자 할 경우, 사용자 속성 테이블에 새 열을 만들어 범주화 속성을 입력할 필요가 없다는 뜻입니다.

비례 심볼 및 다변량 분석

비례 심볼 및 다변량 분석은 심볼 렌더링 작업 드롭다운 목록에서 선택할 수 있는 렌더링 유형이 아닙니다. 하지만 앞에서 소개한 렌더링 옵션에 적용된 데이터 정의 무시 옵션을 통해, QGIS는 사용자의 포인트 및 라인 데이터를 비례 심볼로 표현할 수 있습니다.

비례 심볼 생성하기

비례 렌더링을 적용하려면:

  1. 먼저 레이어에 단일 심볼 렌더링 작업자 를 적용합니다.

  2. 그리고 피처에 적용할 심볼을 설정합니다.

  3. 심볼 트리의 상단에 있는 항목을 선택한 다음, (포인트 레이어의) Size 또는 (라인 레이어의) Width 옵션 옆에 있는 dataDefined Data-defined override 버튼 을 클릭하십시오.

  4. 필드를 선택하거나 표현식을 입력하면, QGIS가 각 피처별로 속성에 산출 값을 적용하고 맵 캔버스에 있는 심볼의 크기를 비례에 맞춰 재조정할 것입니다.

    필요하다면 dataDefined 메뉴의 Size assistant… 옵션을 사용해서 심볼 크기 재조정에 몇몇 (지수, 플래너리 등등) 변환을 적용하십시오. (자세한 내용은 데이터 정의 어시스턴트 인터페이스 사용하기 를 참조하세요.)

레이어 패널인쇄 조판기 범례 항목 에 비례 심볼을 표시하도록 선택할 수 있습니다: Symbology 탭의 주 대화창 하단에 있는 Advanced 드롭다운 목록을 펼치고 Data-defined size legend… 를 선택하면 범례 항목을 환경 설정할 수 있습니다. (자세한 내용은 데이터 정의 크기 범례 를 참조하세요.)

../../../_images/proportional_symbols.png

그림 14.6 공항의 표고를 기반으로 공항 크기 조정하기

다변량 분석 생성하기

다변량 분석 렌더링은 2개 이상의 변수들 사이의 관계를 평가할 수 있습니다. 예를 들면 변수 하나를 크기로 표현하고, 다른 변수를 색상표로 표현할 수 있습니다.

QGIS 에서 다변량 분석을 생성하는 가장 간단한 방법은 다음과 같습니다:

  1. 먼저 모든 범주에 동일한 심볼 유형을 이용해서 레이어 상에 범주 또는 등급 렌더링을 적용하십시오.

  2. 그 다음 범주에 대해 비례 심볼을 적용하십시오:

    1. 범주화 프레임 상단에 있는 Change 버튼을 클릭하면 심볼 선택기 대화창이 열립니다.

    2. 앞에서 설명한 대로 dataDefined 데이터 정의 무시 위젯을 통해 심볼 레이어의 크기 또는 너비 척도를 재조정하십시오.

비례 심볼과 마찬가지로, 데이터 정의 크기 범례 를 사용해서 레이어 트리에 있는 범주 또는 등급 범주 심볼 위에 척도를 조정한 심볼을 추가할 수 있습니다. 인쇄 조판기 범례 항목에서도 이 두 표현을 모두 쓸 수 있습니다.

../../../_images/multivariate_example.png

그림 14.7 크기 척도를 조정한 범례를 가진 다변량 분석의 예시

규칙 기반 렌더링 작업자

ruleBasedSymbol Rule-based 렌더링 작업자는 선택한 피처의 속성이 어떤 범주에 할당되는지를 반영하는 규칙 기반 심볼을 이용해서 레이어에 있는 모든 피처를 렌더링합니다. 이 규칙은 SQL 선언문을 기반으로 하며 내포될 수 있습니다. 대화창에서 필터 또는 척도로 규칙을 그룹화할 수 있으며, 사용자가 심볼 수준을 활성화할지 또는 가장 먼저 일치한(first-matched) 규칙만 이용할지 결정할 수 있습니다.

규칙을 생성하려면:

  1. 기존 행을 더블 클릭하거나 (렌더링 모드가 활성화된 경우, QGIS는 기본적으로 심볼을 규칙 없이 추가합니다) projectProperties Edit rule 또는 signPlus Add rule 버튼을 클릭해서 활성화하십시오.

  2. Edit Rule 대화창이 열리면 사용자가 각 규칙을 쉽게 식별하도록 해주는 라벨을 정의할 수 있습니다. Layers Panel 은 물론 인쇄 작성자 범례도 이 라벨을 표시할 것입니다.

  3. radioButtonOn Filter 옵션 옆에 있는 텍스트란에 표현식을 직접 입력하거나 그 옆에 있는 expression 버튼을 클릭해서 표현식 문자열 작성자 대화창을 여십시오.

  4. 제공되는 함수들과 레이어 속성을 사용해서 사용자가 가져오고 싶은 피처를 필터링하기 위한 표현식 을 작성하십시오. 쿼리 결과를 확인하려면 Test 버튼을 클릭하십시오.

  5. 규칙 설명을 완전하게 하려면 더 긴 라벨을 입력할 수 있습니다.

  6. checkbox Scale Range 옵션을 사용해서 규칙을 적용해야 할 축척을 설정할 수 있습니다.

  7. 마지막으로 이 피처들에 사용할 심볼 을 환경 설정하십시오.

  8. OK 를 클릭하십시오.

규칙을 요약한 새로운 행이 레이어 속성 대화창에 추가됩니다. 앞에서 설명한 단계를 따라 필요한 만큼 많은 규칙을 생성할 수도 있고 기존 규칙을 복사해서 붙여넣을 수도 있습니다. 규칙을 내포시키고 하위 범주에서 상위 규칙 피처들을 개선하려면 규칙을 다른 규칙 위로 드래그&드롭하십시오.

규칙을 선택하면, Refine selected rules 드롭다운 메뉴를 사용해서 하위 범주에 있는 규칙 피처들을 정리할 수도 있습니다. 다음을 기반으로 규칙 개선 작업을 자동화시킬 수 있습니다:

개선된 범주들은 트리 위계에서 규칙의 하위 항목처럼 나타나며, 앞에서와 마찬가지로 각 범주의 심볼을 설정할 수 있습니다.

Edit rule 대화창에서, 모든 규칙을 직접 작성하지 않고서도 동일 수준에서 어떤 규칙과도 일치하지 않는 모든 피처를 걸러내는 radioButtonOff Else 옵션을 사용할 수 있습니다. Layer Properties ► Symbology ► Rule-based 대화창의 규칙(Rule) 열에 Else 를 입력해도 동일한 결과를 얻을 수 있습니다.

선택한 항목(들)을 오른쪽 클릭하면 나오는 컨텍스트 메뉴에는:

  • CopyPaste: 기존 항목(들)을 기반으로 새 항목(들)을 생성할 수 있는 편리한 방법입니다.

  • Copy SymbolPaste Symbol: 항목의 모습을 다른 항목에 적용할 수 있는 편리한 방법입니다.

  • Change Color…: 선택한 심볼(들)의 색상을 변경합니다.

  • Change Opacity…: 선택한 심볼(들)의 투명도를 변경합니다.

  • Change Output Unit…: 선택한 심볼(들)의 산출물 단위를 변경합니다.

  • Change Width…: 선택한 라인 심볼(들)의 폭을 변경합니다.

  • Change Size…: 선택한 폴리곤 심볼(들)의 크기를 변경합니다.

  • Change Angle…: 선택한 폴리곤 심볼(들)의 기울기를 변경합니다.

  • Refine Current Rule: 현재 규칙을 축척, 범주 (범주 렌더링 작업자) 또는 범위 (등급 렌더링 작업자)를 통해 개선할 수 있는 하위 메뉴를 엽니다.

이렇게 생성한 규칙도 맵 범례의 트리 위계에 나타납니다. 맵 범례에 있는 규칙을 더블 클릭하면 레이어 속성 대화창의 심볼 탭에 트리에 있는 심볼을 위한 배경인 규칙을 표시합니다.

그림 14.8 은 QGIS 예시 데이터셋의 rivers 레이어에 대한 규칙 기반 렌더링 작업자 대화창의 예시입니다.

../../../_images/rulesymbol_ng_line.png

그림 14.8 규칙 기반 심볼 작업 옵션들

포인트 변위 렌더링 작업자

pointDisplacementSymbol Point Displacement 렌더링 작업자는 포인트 레이어의 모든 피처를, 모든 피처가 동일한 위치에 있다 하더라도, 시각화합니다. 이를 위해 서로의 Distance 허용 오차 안에 들어오는 포인트들을 선택해서 서로 다른 Placement methods 를 따라 포인트 무게중심(barycenter) 주위로 배치합니다:

  • 고리(Ring): 표시할 피처 개수에 따라 반경이 달라지는 원 위에 모든 피처를 배치합니다.

  • 동심 고리(Concentric rings): 동심원 집합을 이용해서 피처를 표시합니다.

  • 그리드(Grid): 각 교차점에 포인트 심볼을 가진 정규 그리드를 생성합니다.

Center symbol 위젯은 심볼 및 중점(middle point)의 색상을 사용자 지정할 수 있습니다. 분산된 포인트 심볼들에 대해, 무(無) 심볼, 단일 심볼, 범주, 등급 또는 규칙 기반 렌더링 작업자 가운데 하나를 Renderer 드롭다운 목록에서 선택하고 Renderer Settings… 버튼으로 사용자 지정해서 적용할 수 있습니다.

Displacement lines 의 최소 간격은 포인트 심볼 렌더링 작업자의 설정을 따르지만, 그래도 Stroke width, Stroke colorSize adjustment 와 같은 일부 설정을 사용자 지정할 수 있습니다. (예를 들어 이런 사용자 지정 설정을 통해 렌더링된 포인트 사이에 간격을 추가할 수 있습니다.)

Labels 그룹 옵션을 사용해서 포인트 라벨 작업을 수행하십시오: 라벨이 피처의 실제 위치가 아니라 심볼의 변위된 위치에 배치됩니다. Label attribute, Label fontLabel color 는 물론, 라벨을 표시할 최소 맵 축척을 Minimum map scale 을 통해 설정할 수 있습니다.

../../../_images/poi_displacement.png

그림 14.9 포인트 변위 대화창

참고

포인트 변위 렌더링 작업자는 피처 도형을 변경하지 않습니다. 즉 포인트가 제자리를 벗어나지 않는다는 뜻입니다. 포인트들은 초기 위치에 그대로 자리합니다. 그저 렌더링 목적을 위해 시각적으로만 바뀔 뿐입니다. 변위된 피처를 생성하고자 하는 경우 포인트 변위시키기 공간 처리 알고리즘을 대신 사용하십시오.

포인트 군집 렌더링 작업자

최근접 또는 중첩 포인트 피처 배치를 과장하는 pointDisplacementSymbol Point Displacement 렌더링 작업자와는 달리, pointClusterSymbol Point Cluster 렌더링 작업자는 근접 포인트들을 단일하게 렌더링된 마커 심볼 하나로 그룹화합니다. 서로가 지정한 Distance 안에 있는 포인트들을 단일 심볼로 병합하는 것이죠. 단순히 검색 거리 안에 있는 첫번째 그룹에 할당하기 보다는, 형성되는 그룹 가운데 가장 가까운 그룹을 기반으로 포인트 집합체를 생성합니다.

주 대화창에서 다음과 같은 작업을 할 수 있습니다:

  • Cluster symbol 에서 포인트 군집을 표현하기 위한 심볼을 설정할 수 있습니다. 기본 렌더링은 글꼴 마커 심볼 레이어 상의 @cluster_size 변수 의 도움으로 합쳐진 피처들의 개수를 표시합니다.

  • Renderer 드롭다운 목록을 사용해서 레이어에 다른 어떤 피처 렌더링 유형(단일, 범주, 규칙 기반 등등)도 적용할 수 있습니다. 그 다음 Renderer Settings… 버튼을 클릭하면 피처의 심볼을 평소와 다름없이 환경 설정할 수 있습니다. 이 렌더링 작업자는 군집되지 않은 피처 상에서만 가시화된다는 사실을 기억하십시오. 또 군집 안에 있는 모든 포인트 피처가 동일한 심볼 색상을 가지고 있을 경우, 해당 색상이 군집의 @cluster_color 변수를 설정합니다.

../../../_images/cluster_symbol.png

그림 14.10 포인트 군집 대화창

참고

포인트 군집 렌더링 작업자는 피처 도형을 변경하지 않습니다. 즉 포인트가 제자리를 벗어나지 않는다는 뜻입니다. 포인트들은 초기 위치에 그대로 자리합니다. 그저 렌더링 목적을 위해 시각적으로만 바뀔 뿐입니다. 군집 기반 피처를 생성하고자 하는 경우 k-평균 군집 형성 또는 DBSCAN 군집 형성 공간 처리 알고리즘을 대신 사용하십시오.

반전 폴리곤 렌더링 작업자

invertedSymbol Inverted Polygon 렌더링 작업자는 레이어에 있는 폴리곤의 바깥을 채울 심볼을 지정할 수 있습니다. 앞에서와 마찬가지로 단일 심볼, 등급, 범주, 규칙 기반 또는 2.5D 같은 하위 렌더링 작업자를 선택할 수 있습니다.

../../../_images/inverted_polygon_symbol.png

그림 14.11 반전 폴리곤 대화창

열지도 렌더링 작업자

heatmapSymbol Heatmap 렌더링 작업자는 [멀티]포인트 레이어에 대해 실시간 동적 열지도를 생성할 수 있습니다. 사용자가 열지도 반경을 밀리미터, 포인트, 픽셀, 맵 단위 또는 인치로 지정할 수 있고, 열지도 스타일을 위한 색상표를 선택하고 편집할 수 있으며, 렌더링 속도와 품질 사이의 균형을 선택하기 위한 슬라이드 바를 이용할 수도 있습니다. 필드 또는 표현식을 통해 최대값 제한을 정의하고 포인트에 가중치를 줄 수도 있습니다. 피처를 추가 또는 제거하면 열지도 렌더링 작업자가 열지도 스타일을 자동적으로 업데이트합니다.

../../../_images/heatmap_symbol.png

그림 14.12 열지도 대화창

2.5D 렌더링 작업자

25dSymbol 2.5D 렌더링 작업자를 이용해서 사용자 레이어의 피처에 2.5D 효과를 줄 수 있습니다. 먼저 Height 값(맵 단위)을 설정하십시오. 고정값, 사용자 레이어의 필드 가운데 하나, 또는 표현식으로 설정할 수 있습니다. 또 시각의 방향을 (0° 는 서쪽으로, 값이 올라갈수록 반시계 방향으로 돕니다) 재현하려면 Angle (도 단위)을 설정해야 합니다. Roof ColorWall Color 을 설정하려면 고급 환경 설정 옵션을 사용하십시오. 만약 피처의 벽에 태양광 효과를 주고 싶다면, checkbox Shade walls based on aspect 옵션을 체크하도록 하십시오. ColorSize 값(맵 단위)을 설정하면 그림자 효과를 줄 수도 있습니다.

../../../_images/2_5dsymbol.png

그림 14.13 2.5D 대화창

다른 렌더링 작업자에서 2.5D 효과 이용하기

2.5D 렌더링 작업자에서 기본 스타일 설정을 마치고 나면, 다른 (단일 심볼, 범주, 등급) 렌더링 작업자로 변환시킬 수 있습니다. 2.5D 효과가 지속되는 동시에 다른 렌더링 작업자의 모든 특정 옵션도 쓸 수 있어 2.5D 효과를 정밀하게 조정할 수 있습니다. (예를 들어 멋진 2.5D 표현으로 범주 심볼을 그리거나 2.5D 심볼에 몇몇 기타 스타일을 추가할 수도 있습니다.) 그림자 및 “건물” 자체가 주변의 다른 피처를 가리지 않도록 하려면, 심볼 수준(Advanced ► Symbol levels…)을 활성화해야 할 수도 있습니다. 2.5D 높이 및 각도 값은 레이어의 변수에 저장되기 때문에, 이후 레이어 속성 대화창의 변수 탭에서 편집할 수 있습니다.

14.1.3.2. 레이어 렌더링

심볼 탭에서 레이어의 모든 피처에 대해 일괄적으로 적용되는 다음 옵션들을 설정할 수도 있습니다:

  • Opacity slider: 이 도구를 통해 맵 캔버스에서 아래에 있는 레이어를 가시화할 수 있습니다. 슬라이드 바를 통해 사용자 벡터 레이어의 가시성을 필요에 따라 조정하십시오. 슬라이드 바 옆에 있는 메뉴에서 가시성을 정확한 백분율로 설정할 수도 있습니다.

  • LayerFeature 수준의 Blending mode: 이 도구들을 통해 사용자가 그래픽 프로그램에서만 가능하다고 알고 있던 특별한 렌더링 효과를 줄 수 있습니다. 위 그리고 아래에 있는 레이어의 픽셀을 혼합 모드 에서 설명한 설정으로 혼합합니다.

  • Draw Effects 버튼: 레이어의 모든 피처에 대해 그리기 효과 를 줍니다.

  • Control feature rendering order: 피처 속성을 이용해서 피처를 어떤 순서로 렌더링해야 하는지에 대한 Z 순서를 정의할 수 있습니다. 체크박스를 체크한 다음 옆에 있는 sort 버튼을 클릭하십시오. Define Order 대화창이 열리는데, 다음 작업들을 할 수 있습니다:

    1. 레이어 피처에 적용시킬 필드를 선택하거나 표현식을 작성합니다.

    2. 불러온 피처들을 어떤 순서로 배열할지 설정합니다. 예를 들어 오름차순(Ascending) 을 선택했다면, 높은 값을 가진 피처 아래에 낮은 값을 가진 피처를 렌더링합니다.

    3. NULL 값을 반환하는 피처를 언제, 즉 맨 처음 (아래) 또는 마지막 (위)으로 렌더링할지 정의합니다.

    4. 사용자가 사용하고자 하는 규칙에 따라 앞의 단계를 얼마든지 반복하십시오.

    첫 번째 규칙은 레이어에 있는 모든 피처에 적용돼, 반환 값에 따라 피처들을 Z 순서로 배열합니다. 그 다음 규칙은 동일한 (NULL 값 포함) 값을 가진, 즉 동일한 Z 수준의 각 피처 그룹에 적용돼 각 그룹에 있는 항목들을 배열합니다. 그 다음 규칙은 다시…

../../../_images/layer_rendering_options.png

그림 14.14 레이어 렌더링 옵션들

14.1.3.3. 기타 설정

심볼 수준

적층(積層) 심볼 레이어를 지원하는 (열지도 제외) 렌더링 작업자의 경우 각 심볼 수준의 렌더링 순서를 조정하는 옵션이 존재합니다.

대부분의 렌더링 작업자의 경우, 저장된 심볼 목록 하단에 있는 Advanced 버튼을 클릭한 다음 Symbol levels 를 선택하면 심볼 수준 옵션에 접근할 수 있습니다. 규칙 기반 렌더링 작업자 의 경우 Symbols Levels… 버튼으로 이 옵션에 직접 접근할 수 있는 반면, 포인트 변위 렌더링 작업자 의 경우 Rendering settings 대화창에 동일한 버튼이 있습니다.

심볼 수준을 활성화하려면, checkbox Enable symbol levels 를 체크하십시오. 복합 심볼, 라벨, 그리고 열로 나누어진 개별 심볼 레이어의 작은 표본이 번호와 함께 각 행에 표시됩니다. 이 번호들은 심볼 레이어를 그릴 렌더링 순서 수준을 나타냅니다. 번호 숫자가 낮을수록 먼저 그려져 아래에 남고, 높을수록 나중에 그려져 다른 레이어 위에 있게 됩니다.

../../../_images/symbol_levels.png

그림 14.15 심볼 수준 대화창

참고

심볼 수준을 비활성화하면, 심볼 각각의 피처 순서에 따라 완전한 심볼을 그립니다. 위에 있는 심볼은 아래 있는 심볼을 혼란스럽게 만들 뿐입니다. 게다가, 비슷한 심볼들이 서로 “병합”되지 않을 것입니다.

../../../_images/symbol_levels_examples.png

그림 14.16 심볼 수준 (A) 활성화 (B) 비활성화 비교

데이터 정의 크기 범례

레이어를 비례 심볼 또는 다변량 렌더링 으로 렌더링하거나 레이어에 척도를 적용한 크기 도표 를 적용한 경우, 레이어 패널인쇄 조판기 범례 둘 다에 척도를 적용한 심볼을 표시하도록 할 수 있습니다.

Data-defined Size Legend 대화창을 활성화시켜 심볼을 렌더링하려면, 저장된 심볼 목록 아래 있는 Advanced 버튼을 눌러 해당 옵션을 선택하십시오. 도표의 경우, Legend 탭에서 해당 옵션을 사용할 수 있습니다. 이 대화창에서 다음과 같은 옵션을 설정할 수 있습니다:

  • 범례 유형을 선택합니다: radioButtonOn Legend not enabled, radioButtonOff Separated legend items 그리고 radioButtonOff Collapsed legend 가운데 하나를 선택할 수 있습니다. 마지막 옵션을 선택했다면 범례 항목을 하단(Bottom) 정렬할지 중앙(Center) 정렬할지 선택할 수 있습니다.

  • 범례를 표현하는 데 사용할 심볼 을 설정합니다.

  • 범례에 제목을 삽입합니다.

  • 사용할 범주의 크기를 재조정합니다: QGIS는 기본적으로 범례의 범주를 (Natural Pretty Breaks 기반으로) 5단계로 나눕니다. 그러나 checkbox Manual size classes 옵션을 사용하면 사용자 지정 범주를 적용시킬 수 있습니다. signPlussignMinus 버튼을 사용해서 사용자 지정 범주의 값과 라벨을 설정하십시오.

사용자가 파라미터를 설정할 때마다 대화창의 오른쪽 패널에 범례 미리보기가 표시됩니다. 접힌 범례의 경우, 심볼의 수평 중앙에서 대응하는 범례 텍스트를 잇는 인출선(leader line)을 그립니다.

../../../_images/data_defined_size_legend.png

그림 14.17 크기 척도 범례 설정하기

참고

현재, 레이어 심볼을 위한 데이터 정의 크기 범례는 단일 심볼, 범주 또는 등급 심볼을 사용하는 포인트 레이어에만 적용할 수 있습니다.

그리기 효과

레이어 렌더링을 향상시키고 최종 맵을 다른 소프트웨어로 렌더링하는 일을 피하기 (또는 적어도 줄이기) 위해, QGIS는 또다른 강력한 기능을 제공합니다: paintEffects Draw Effects 옵션은 사용자가 벡터 레이어의 가시화를 직접 조정할 수 있도록 그리기 효과를 추가합니다.

이 옵션은 Layer Properties ► Symbology 대화창의 레이어 렌더링 그룹 (전체 레이어에 적용) 또는 심볼 레이어 속성 (해당하는 피처에 적용)에 있습니다. 이 두 옵션을 함께 사용할 수도 있습니다.

checkbox Draw effects 옵션을 체크한 다음 paintEffects Customize effects 버튼을 클릭하면 그리기 효과를 활성화시킬 수 있습니다. Effect Properties 대화창이 열리는데 (그림 14.18 참조) 다음과 같은 유형의 효과들을 사용자 지정 옵션과 함께 쓸 수 있습니다:

  • 소스(Source): 레이어 속성 환경 설정에 따라 피처의 원본 스타일을 그립니다. 해당 스타일의 혼합 모드그리기 모드 는 물론, Opacity 도 조정할 수 있습니다. 이 세 가지는 모든 효과 유형의 공통 속성입니다.

    ../../../_images/source.png

    그림 14.18 그리기 효과: 소스 대화창

  • 흐리기(Blur): 벡터 레이어에 흐리기 효과를 줍니다. 사용자가 Blur type (Stack blur (fast) 또는 Gaussian blur (quality)) 및 Blur strength 를 변경할 수 있습니다.

    ../../../_images/blur.png

    그림 14.19 그리기 효과: 흐리기 대화창

  • 색상화(Colorise): 이 효과를 통해 단일 색조를 이용한 어떤 스타일을 만들 수 있습니다. 기반은 언제나 심볼의 회색조 버전으로, 다음을 설정할 수 있습니다:

    • selectString Grayscale 을 통해 회색조 심볼을 어떻게 생성할지 (‘By lightness’, ‘By luminosity’, ‘By average’ 그리고 ‘Off’ 옵션 가운데 하나를) 선택할 수 있습니다.

    • checkbox Colorise 를 활성화한 경우, 다른 색상을 혼합하고 색상의 강도를 설정할 수 있습니다.

    • 생성되는 심볼의 Brightness (명도), Contrast (대비) 그리고 Saturation (채도) 수준을 조정할 수 있습니다.

    ../../../_images/colorise.png

    그림 14.20 그리기 효과: 색상화 대화창

  • 그림자 생성(Drop Shadow): 이 효과를 이용하면 객체에 그림자를 추가하는데, 마치 차원을 하나 더한 것처럼 보입니다. 그림자의 방향 및 소스 객체와의 근접도를 결정하는 Offset 각도 및 거리를 변경해서 이 효과를 사용자 지정할 수 있습니다. Drop Shadow 는 그림자 효과의 Blur radiusColor 를 변경할 수 있는 옵션도 보유하고 있습니다.

    ../../../_images/drop_shadow.png

    그림 14.21 그리기 효과: 그림자 생성 효과 대화창

  • 내부 그림자(Inner Shadow): 이 효과는 Drop Shadow 효과와 비슷하지만, 피처 경계선 내부에 그림자 효과를 추가합니다. Drop Shadow 효과와 동일한 사용자 지정 옵션을 설정할 수 있습니다.

    ../../../_images/inner_shadow.png

    그림 14.22 그리기 효과: 내부 그림자 대화창

  • 내부 광원(Inner Glow): 객체 내부에 광원 효과를 추가합니다. 광원의 Spread (너비) 또는 Blur radius 를 조정해서 이 효과를 사용자 지정할 수 있습니다. 흐리기 반경은 사용자가 흐리기 효과를 주려 하는 위치가 피처 경계선에 얼마나 근접해 있는지를 지정합니다. 또한, 광원의 색상을 Single color 또는 Color ramp 로 사용자 지정할 수 있는 옵션도 있습니다.

    ../../../_images/inner_glow.png

    그림 14.23 그리기 효과: 내부 광원 대화창

  • 외부 광원(Outer Glow): 이 효과는 Inner Glow 효과와 비슷하지만, 피처 경계선 외부에 광원 효과를 추가합니다. Inner Glow 효과와 동일한 사용자 지정 옵션을 설정할 수 있습니다.

    ../../../_images/outer_glow.png

    그림 14.24 그리기 효과: 외부 광원 대화창

  • 변형(Transform): 이 효과는 심볼의 형태를 변형시킬 수 있습니다. 사용자 지정을 위해 사용할 수 있는 첫 번째 옵션은 Reflect horizontalReflect vertical 으로, 수평 그리고/또는 수직 축을 기준으로 거울상을 실제로 생성합니다. 나머지 옵션 4 개는 다음과 같습니다:

    • Shear X,Y: X 그리고/또는 Y축을 따라 피처를 기울입니다.

    • Scale X,Y: X 그리고/또는 Y축을 따라 피처를 지정한 백분율로 확대하거나 축소합니다.

    • Rotation: 피처의 중심점을 기준으로 피처를 회전시킵니다.

    • Translate X,Y: X 그리고/또는 Y축을 기준으로 지정한 거리에 따라 피처의 위치를 변경합니다.

    ../../../_images/transform.png

    그림 14.25 그리기 효과: 변형 대화창

하나 이상의 그리기 효과를 동시에 줄 수 있습니다. 효과 목록에 있는 체크박스를 통해 어떤 효과를 활성화/비활성화시켜보십시오. selectString Effect type 옵션을 이용하면 선택한 효과 유형을 변경할 수 있습니다. arrowUp Move uparrowDown Move down 버튼으로 효과의 순서를 바꿀 수 있고, signPlus Add new effectsignMinus Remove effect 버튼을 통해 효과를 추가하거나 제거할 수도 있습니다.

모든 그리기 효과 유형에 사용할 수 있는 공통 옵션이 몇 개 있습니다. OpacityBlend mode 옵션은 레이어 렌더링 에서 설명하는 옵션과 비슷하게 동작하며, 변형 효과를 제외한 모든 그리기 효과에 사용할 수 있습니다.

모든 그리기 효과에서 selectString Draw mode 옵션을 쓸 수도 있는데, 심볼을 렌더링할지 그리고/또는 수정할지를 다음 몇몇 규칙에 따라 선택할 수 있습니다:

  • 그리기 효과는 위에서 아래 순서로 렌더링합니다.

  • Render only 모드는 효과를 가시화할 것이라는 뜻입니다.

  • Modifier only 모드는 효과를 가시화하지는 않지만 적용된 변경 사항을 다음 (바로 아래에 있는) 효과로 넘길 것이라는 의미입니다.

  • Render and Modify 모드는 효과를 가시화하고 적용된 변경 사항을 다음 효과로 넘길 것입니다. 어떤 효과가 효과 목록 제일 위에 있거나 또는 바로 위에 있는 효과가 수정 모드가 아닌 경우, (소스 효과와 비슷하게) 레이어 속성에서 가져온 원본 소스 심볼에 해당 효과를 줄 것입니다.

14.1.4. 라벨 속성

labeling Labels 속성 대화창은 벡터 레이어에 대해 스마트 라벨 작업 환경을 설정하기 위해 필요한 그리고 적절한 모든 기능을 제공합니다. Layer Styling 패널에서 또는 라벨 툴바labeling Layer Labeling Options 아이콘을 통해 이 대화창을 열 수 있습니다.

먼저 드롭다운 목록에서 라벨 작업 방식을 선택합니다. 다음 4 개의 옵션을 사용할 수 있습니다:

  • labelingNone No labels: 기본값입니다. 레이어에 어떤 라벨도 표시하지 않습니다.

  • labeling Single labels: 맵 상에 라벨을 단일 속성 또는 표현식을 이용해서 표시합니다.

  • labelingRuleBased 규칙 기반 라벨 작업

  • labelingObstacle Blocking: 어떤 레이어의 라벨을 렌더링하지 않고 해당 레이어가 다른 레이어를 가리도록만 설정할 수 있습니다.

다음으로 labeling Single labels 옵션을 선택했다고 가정하겠습니다. 다음 대화창이 열립니다:

../../../_images/label_menu_text.png

그림 14.26 레이어 라벨 작업 설정 - 단일 라벨

대화창 상단에 Value 드롭다운 목록이 활성화됩니다. 이 목록에서 라벨 작업에 사용할 속성 열을 선택할 수 있습니다. 디스플레이 필드 를 기본값으로 사용합니다. 표현식을 바탕으로 라벨을 정의하고 싶다면 expression 을 클릭하십시오 – 표현식을 기반으로 라벨 정의하기 를 참조하세요.

여러 탭에 라벨을 사용자 지정할 수 있는 다음 옵션들이 표시됩니다:

라벨 설정 에서 각 속성을 설정하는 방법을 설명하고 있습니다.

14.1.4.1. 자동화된 배치 엔진 설정하기

자동화된 배치 설정을 사용하면 라벨의 프로젝트 수준 및 자동화된 습성 환경을 설정할 수 있습니다. Labels 탭 우상단에 있는 autoPlacement Automated placement settings (applies to all layers) 버튼을 클릭하면 다음 옵션을 가지고 있는 대화창이 열립니다:

../../../_images/placement_engine.png

그림 14.27 라벨 배치 자동화 엔진

  • Number of candidates: 라인 및 폴리곤 피처의 크기를 바탕으로 배치할 수 있는 라벨의 개수를 계산해서 피처에 할당합니다. 피처가 더 길거나 넓을수록 더 많은 후보를 가지게 되므로 해당 피처의 라벨이 충돌할 위험을 덜고 더 잘 배치할 수 있습니다.

  • Text rendering: 맵 캔버스 또는 조판 을 PDF 또는 SVG로 내보낼 때 라벨 렌더링 위젯의 기본값을 설정합니다. Always render labels as text 를 선택한 경우 (잉크스케이프 같은) 외부 응용 프로그램에서 라벨을 일반 텍스트처럼 편집할 수 있습니다. 하지만 렌더링의 질이 하락하는 부작용이 있습니다. 게다가 버퍼 같은 특정 텍스트 설정이 적용된 경우 렌더링 오류가 생길 수도 있습니다. 라벨을 외곽선으로 내보내는 Always render labels as paths (recommended) 옵션을 추천하는 이유입니다.

  • checkbox Allow truncated labels on edges of map: 일부가 맵 범위 바깥으로 벗어나는 라벨을 렌더링할지 여부를 제어합니다. 이 옵션을 체크하면 (라벨을 완전히 가시 영역 안으로 배치할 방법이 없는 경우) 이런 라벨을 표시할 것입니다. 체크를 해제하면 일부만 보이는 라벨을 무시할 것입니다. 이 설정은 조판기 맵 항목 에서의 라벨 표시에는 아무 영향도 주지 않는다는 사실을 기억하십시오.

  • unchecked Show all labels for all layers (i.e. including colliding objects): 이 옵션을 레이어별로 설정할 수도 있다는 사실을 기억하십시오. (렌더링 탭 참조)

  • unchecked Show unplaced labels: 어떤 중요한 라벨이 (예를 들면 중첩 또는 다른 제약조건 때문에) 맵에서 없어졌는지 여부를 확인할 수 있습니다. 이런 라벨은 사용자 지정 색상으로 표시됩니다.

  • unchecked Show candidates (for debugging): 맵 위에 라벨 배치용으로 생성된 모든 후보를 보여주는 상자들을 그릴지 여부를 제어합니다. 옵션 명칭대로, 이 옵션은 디버깅 및 서로 다른 라벨 작업 설정이 주는 효과를 점검하는 데에만 유용합니다. 사용자가 직접 라벨 툴바 의 도구를 사용해서 더 나은 배치 작업을 하는 경우 이 옵션이 편리할 수도 있습니다.

  • Project labeling version: QGIS는 두 가지 서로 다른 라벨 배치 자동화 버전을 지원합니다:

    • Version 1: (QGIS 3.10 이하 버전이 사용하는, 그리고 이전 버전에서 생성된 프로젝트 파일을 QGIS 3.12 이후 버전에서 열었을 경우 사용되는) 이전 체계입니다. 버전 1은 라벨 및 방해물의 우선 순위를 “대강의 안내” 로만 취급하기 때문에, 이 버전에서는 우선 순위가 낮은 라벨이 우선 순위가 높은 방해물 위로 배치될 수도 있습니다. 따라서 이 버전을 사용할 경우 원하는 라벨 작업 산출물을 얻기 어렵게 되므로, 옛날 프로젝트와의 호환성만을 위해 사용하는 것을 추천합니다.

    • Version 2 (추천): QGIS 3.12 이후 버전에서 생성된 새 프로젝트에서 사용되는 기본 체계입니다. 버전 2에서는 라벨이 방해물 을 중첩할 수 있는 경우를 규정하는 논리를 재작업했습니다. 이 새로운 논리는 어떤 라벨도 스스로의 우선 순위와 비교해 더 큰 방해물 가중치를 가진 어떤 방해물도 중첩할 수 없도록 하고 있습니다. 그 결과, 이 버전은 훨씬 예상 가능하고 쉽게 이해할 수 있는 라벨 작업 산출물을 내놓습니다.

14.1.4.2. 규칙 기반 라벨 작업

규칙 기반 렌더링 에서처럼, 규칙 기반 라벨 작업으로 한 번에 여러 라벨을 환경 설정할 수 있고 표현식 필터와 축척 범위를 바탕으로 선택적으로 적용할 수 있습니다.

규칙을 생성하려면, Labels 탭에 있는 주 드롭다운 목록에서 labelingRuleBased 규칙 기반 라벨 작업 옵션을 선택한 다음 대화창 하단에 있는 signPlus 버튼을 클릭하십시오. 새 대화창이 열리면 피처를 필터링할 표현식 및 표현식에 대한 설명을 입력하십시오. 라벨 규칙이 적용돼야 할 축척 범위 를 설정할 수도 있습니다. 이 대화창에서 이용할 수 있는 다른 옵션들은 앞에서 설명했던 공통 설정 입니다.

../../../_images/label_rule_settings.png

그림 14.28 규칙 설정

주 대화창에 기존 규칙들의 요약을 표시합니다. (그림 14.29 참조) 규칙을 여러 개 추가할 수 있고, 드래그&드롭으로 규칙들을 재배열하거나 연결시킬 수도 있습니다. signMinus 버튼으로 규칙을 제거할 수도 있고, 규칙을 더블 클릭하거나 projectProperties 버튼을 클릭하면 규칙을 편집할 수도 있습니다.

../../../_images/label_rules_panel.png

그림 14.29 규칙 기반 라벨 작업 패널

14.1.4.3. 표현식을 기반으로 라벨 정의하기

단일 라벨 또는 규칙 기반 라벨 작업 가운데 어떤 유형을 선택하든, QGIS는 라벨 피처에 표현식을 이용할 수 있습니다.

Single labels 방법을 사용한다고 가정하고, 레이어 속성 대화창의 Labels 탭에 있는 Value 드롭다운 목록 옆에 있는 expression 아이콘을 클릭하십시오.

그림 14.30 은 알래스카 수목 레이어를 수목 유형 및 면적으로 라벨 작업하기 위한 표현식의 예시를 보여주고 있습니다. ‘VEGDESC’ 필드, 몇몇 설명 텍스트, 그리고 format_number() 함수와 $area 를 결합해서 라벨을 더 보기 좋게 만듭니다.

../../../_images/label_expression.png

그림 14.30 라벨 작업에 표현식 이용하기

표현식 기반 라벨 작업은 쉽습니다. 사용자가 주의해야 할 점은 다음 세 가지뿐입니다:

  • 모든 요소들(문자열, 필드, 함수)을 concat, + 또는 || 같은 문자열 연결 함수로 결합시켜야 합니다. (NULL 또는 숫자 값을 쓰는 경우) 이런 모든 도구를 써도 사용자의 필요를 충족시키지 못 하는 경우가 있을 것이라는 점을 기억하십시오.

  • 문자열은 ‘작은따옴표’ 안에 작성해야 합니다.

  • 필드는 “큰따옴표” 안에, 또는 아무 따옴표도 없이 작성해야 합니다.

예시를 몇 가지 살펴보겠습니다:

  1. ‘name’ 및 ‘place’ 필드 2개를 쉼표로 구분하는 라벨:

    "name" || ', ' || "place"
    

    다음을 반환합니다:

    John Smith, Paris
    
  2. ‘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
    
  3. ‘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
    
  4. ‘name’ 및 ‘place’ 필드 2개와 설명 텍스트를 바탕으로 하는 여러 줄의 라벨:

    concat('My name is ', "name", '\n' , 'I live in ' , "place")
    

    다음을 반환합니다:

    My name is John Smith
    I live in Paris
    
  5. 필드와 $area 함수로 장소명 및 변환 단위의 반올림된 면적을 바탕으로 하는 라벨:

    'The area of ' || "place" || ' has a size of '
    || round($area/10000) || ' ha'
    

    다음을 반환합니다:

    The area of Paris has a size of 10500 ha
    
  6. 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
    
  7. 도시의 명칭만 표시하고 다른 피처의 라벨은 표시하지 않으려면(“city” 의 맥락은 바로 앞의 예시를 참조하세요):

    CASE WHEN "population" > 50000 THEN "NAME" END
    

    다음을 반환합니다:

    Paris
    

표현식 작성기에서 볼 수 있듯이, QGIS는 사용자 데이터의 라벨을 위한 단순 및 복잡 표현식을 생성하는 데 쓸 수 있는 함수를 수백 개나 제공하고 있습니다. 표현식에 관한 자세한 정보 및 예시를 살펴보려면 표현식 을 참조하세요.

14.1.4.4. 라벨 작업에 데이터 정의 무시 이용하기

dataDefined Data defined override 기능을 통해, 속성 테이블의 항목 또는 그에 기반한 표현식이 라벨 작업 설정을 무시하게 만들 수 있습니다. 앞에서 설명한 라벨 작업 옵션 대부분의 값을 설정하는 데 이 기능을 이용할 수 있습니다.

예를 들어 알래스카 QGIS 예시 데이터셋을 사용해서 airports 레이어에 군수 목적을 나타내는 USE 를 기반으로 공항 명칭 라벨을 붙여봅시다. 이를테면 공항에 접근할 수 있는 것이:

  • 군대일 경우 회색, 크기 8로 표시하고

  • 다른 경우 파란색, 크기 10으로 표시합니다.

이렇게 하려면 레이어의 NAME 필드에 대해 라벨 작업을 활성화한 다음 (라벨 설정 참조):

  1. Text 탭을 선택하십시오.

  2. Size 속성 옆에 있는 dataDefined 아이콘을 클릭하십시오.

  3. Edit… 를 선택해서 다음과 같이 입력하십시오:

    CASE
      WHEN "USE" like '%Military%' THEN 8 -- because compatible values are 'Military'
                                          -- and 'Joint Military/Civilian'
      ELSE 10
    END
    
  4. OK 를 눌러 검증하십시오. 대화창이 닫히고, dataDefined 버튼이 규칙이 실행 중임을 뜻하는 dataDefineExpressionOn 으로 바뀝니다.

  5. 그 다음 색상 속성 옆에 있는 버튼을 클릭하고, 다음과 같이 입력한 후 검증하십시오:

    CASE
      WHEN "USE" like '%Military%' THEN '150, 150, 150'
      ELSE '0, 0, 255'
    END
    

라벨의 어떤 속성이든, 이와 같이 원하는 대로 사용자 지정할 수 있습니다. 데이터 정의 무시 설정 에서 dataDefined Data-define override 위젯의 설명 및 조작법에 대한 자세한 내용을 참조하세요.

../../../_images/label_attribute_data_defined.png

그림 14.31 공항의 속성을 기반으로 서식을 작업한 공항 라벨

데이터 정의 무시를 사용해서 다중부분 피처의 모든 부분에 라벨 붙이기

사용자의 라벨 속성과는 별개로 다중부분(multi-part) 피처용 라벨 작업을 설정할 수 있는 옵션이 존재합니다. render 렌더링, Feature options 를 선택하고, unchecked Label every part of multipart-features 옆에 있는 dataDefined Data-define override 버튼을 클릭한 다음 데이터 정의 무시 설정 에서 설명하는 대로 라벨을 정의하십시오.

라벨 툴바

Label Toolbarlabeling 라벨 또는 diagram 도표 속성을 조작할 수 있는 몇몇 도구를 제공합니다.

../../../_images/diagram_toolbar.png

그림 14.32 라벨 툴바

가독성을 위해 라벨 툴바를 설명하는 데 “라벨”이란 단어를 쓰고 있기는 해도, 도구 명칭으로 언급되는 경우 도구들이 도표와 거의 동일한 방식으로 동작한다는 점을 기억하십시오:

  • showPinnedLabels Highlight Pinned Labels and Diagrams: 라벨이 있는 벡터 레이어가 편집 가능한 상태인 경우 라벨의 핀을 초록색으로 강조합니다. 아닌 경우 핀은 파란색입니다.

  • showUnplacedLabel Toggles Display of Unplaced Labels: 어떤 중요한 라벨이 (예를 들면 중첩 또는 다른 제약조건 때문에) 맵에서 없어졌는지 여부를 확인할 수 있습니다. 이런 라벨은 사용자 지정 색상으로 표시됩니다. (자동화된 배치 엔진 설정하기 참조)

  • pinLabels Pin/Unpin Labels and Diagrams: 영역을 클릭 또는 드래그해서 라벨(들)에 핀을 꽂습니다. Shift 키를 누른 채 영역을 클릭하거나 드래그하면 라벨(들)의 핀을 뺍니다. 마지막으로 Ctrl 키를 누른 채 영역을 클릭하거나 드래그하면 라벨(들)의 핀 상태를 반전시킬 수 있습니다.

  • showHideLabels Show/Hide Labels and Diagrams: Shift 키를 누른 채 라벨을 클릭하거나 또는 영역을 클릭하거나 드래그하면 라벨을 숨깁니다. 라벨이 숨겨진 상태일 경우, 그 가시성을 복구하려면 피처를 클릭하기만 하면 됩니다. 영역을 드래그하면 해당 영역의 모든 라벨의 가시성이 복구될 것입니다.

  • moveLabel Moves a Label or Diagram: 원하는 위치로 라벨을 드래그하기만 하면 됩니다.

  • rotateLabel Rotate Label: 라벨을 클릭한 채 마우스를 움직이면 텍스트가 기울어집니다.

  • changeLabelProperties Change Label Properties: 이 아이콘을 누른 다음 라벨을 클릭하면, 해당 라벨의 속성을 변경할 수 있는 대화창이 열립니다. 라벨 그 자체, 라벨의 좌표, 각도, 글꼴, 크기, 멀티라인 정렬 등등 그 속성이 필드에 매핑돼 있는 한 해당 속성을 변경할 수 있습니다. 여기에서 피처의 모든 부분에 라벨을 붙이는 checkbox Label every part of a feature 옵션을 설정할 수 있습니다.

경고

라벨 도구는 현재 필드 값을 덮어 씁니다

라벨 작업을 사용자 지정하는 데 Label toolbar 를 사용하면 매핑된 필드에 새 속성값을 실제로 작성합니다. 따라서, 사용자가 나중에 필요할 수도 있는 데이터를 무심코 덮어 쓰지 않도록 주의하십시오!

참고

기저 데이터소스를 수정하지 않은 채 라벨 작업(위치 등등)을 사용자 지정하는 데 보조 저장소 속성 메커니즘을 사용할 수도 있습니다.

맵 캔버스에서 라벨을 사용자 지정하기

데이터 정의 무시 설정과 함께 Label Toolbar 를 이용하면, 맵 캔버스에 있는 라벨을 조작(이동, 편집, 회전)할 수 있습니다. 이제 moveLabelMove label 기능에 데이터 정의 무시 기능을 사용하는 예시를 설명하겠습니다. (그림 14.33 을 참조하세요.)

  1. QGIS 예시 데이터셋으로부터 lakes.shp 레이어를 가져옵니다.

  2. 레이어를 더블클릭해서 레이어 속성 대화창을 엽니다. Labels 탭을 선택하고 Placement 를 클릭한 다음 radioButtonOn Offset from centroid 를 선택합니다.

  3. Data defined 항목을 찾아 dataDefined 아이콘을 클릭해서 Coordinate 의 필드 유형을 정의합니다. X 값으로 xlabel 을, Y 값으로 ylabel 을 선택합니다. 이제 아이콘이 노란색으로 강조됐을 겁니다.

    ../../../_images/label_coordinate_data_defined.png

    그림 14.33 데이터 정의 무시를 통한 벡터 폴리곤 레이어의 라벨 작업

  4. 호수로 확대/축소합니다.

  5. toggleEditing Toggle Editing 버튼으로 레이어를 편집 가능한 상태로 설정합니다.

  6. 라벨 툴바의 moveLabel 아이콘을 클릭합니다. 이제 또다른 위치로 라벨을 직접 옮길 수 있습니다. (그림 14.34 를 참조하세요.) 라벨의 새 위치가 속성 테이블의 xlabelylabel 열에 저장됩니다.

  7. 다음을 사용해서 각 호수와 옮긴 라벨을 연결하는 라인을 추가할 수도 있습니다:

참고

편집할 수 있는 기저 데이터소스가 없어도 보조 저장소 속성 메커니즘을 데이터 정의 속성과 함께 사용할 수도 있습니다.

14.1.5. 도표 속성

diagram Diagrams 탭에서 벡터 레이어에 그래픽을 중첩시킬 수 있습니다. (그림 14.35 참조)

현재 도표의 핵심 구현은 다음을 지원하고 있습니다:

  • diagramNone No diagrams: 기본값입니다. 피처 위로 어떤 도표도 표시하지 않습니다.

  • piechart Pie chart: 원형 통계 그래픽인 원형 차트로, 숫자로 나타낸 비율을 보여주는 조각들로 나누어집니다. 각 조각의 원호 길이는 각 조각이 나타내는 양과 비례합니다.

  • text Text diagram: 텍스트 도표는 원을 수평으로 나누어 그 조각들 안에 통계값을 표시합니다.

  • histogram Histogram: 히스토그램은 각 속성을 표현하는 여러 색상의 막대들을 연달아 정렬한 도표입니다.

  • stackedBar Stacked bars: 누적 막대 그래프로, 각 속성을 표현하는 여러 색상의 막대들을 수직 또는 수평으로 연달아 쌓습니다.

Diagrams 탭의 우상단에 있는 autoPlacement Automated placement settings (applies to all layers) 버튼을 클릭하면 맵 상에 있는 도표 라벨의 배치 를 제어할 수 있습니다.

도표 유형을 재빨리 바꾸기

서로 다른 도표 유형들의 설정이 거의 동일하다는 점을 고려하면, 사용자가 도표를 구성할 때 도표 유형을 쉽게 변경해서 어떤 유형이 사용자 데이터를 아무 손실 없이 적절하게 표현하는지 확인할 수 있습니다.

각 도표 유형 별로, 속성은 다음과 같은 여러 탭으로 나누어져 있습니다:

14.1.5.1. 속성

Attributes 탭은 도표에 어떤 변수를 표시할지 정의합니다. signPlus add item 버튼을 이용해서 ‘Assigned Attributes’ 패널로 원하는 필드를 선택해 넣으십시오. 표현식 으로 생성한 속성도 사용할 수 있습니다.

어떤 행이든 클릭&드래그하면 위 아래로 이동시켜 속성이 표시되는 방식을 정렬시킬 수 있습니다. 항목을 더블 클릭해서 ‘Legend’ 열에 있는 라벨을 변경하거나, 속성 색상을 변경할 수도 있습니다.

이 라벨은 인쇄 조판기 또는 레이어 트리의 범례에 표시되는 기본 텍스트입니다.

../../../_images/diagram_tab.png

그림 14.35 도표 속성 - 속성 탭

14.1.5.2. 렌더링

Rendering 탭은 도표가 어떻게 보일지를 정의합니다. 이 탭은 통계값들을 건드리지 않는, 다음과 같은 일반 설정들을 제공합니다:

  • 그래픽의 투명도, 외곽선 너비 및 색상

  • 도표 유형에 따라:

    • 히스토그램과 누적 막대 그래프의 경우, 막대의 너비 및 막대 사이의 간격을 설정할 수 있습니다. 누적 막대의 경우 간격을 0 으로 설정하는 편이 좋습니다. 여기에, 라인 심볼 속성 을 사용하면 Axis line symbol 을 맵 캔버스에 보이게 하고 사용자 지정할 수 있습니다.

    • 텍스트 도표의 경우, 원의 배경 색상 및 텍스트 용 글꼴 을 설정할 수 있습니다.

    • 원형 차트의 경우, 첫 번째 조각의 Start angle 과 그 (시계 방향 또는 반시계 방향) Direction 을 설정할 수 있습니다.

  • 그래픽에 그리기 효과 의 사용

이 탭에서 도표의 가시성을 서로 다른 옵션들을 통해 관리 및 미세 조정할 수 있습니다:

  • Diagram z-index: 도표들이 어떤 순서로 그려지는지, 그리고 라벨 위에 그려질지 여부를 제어합니다. 높은 인덱스를 가진 도표가 다른 도표 및 라벨 위에 그려집니다.

  • checkbox Show all diagrams: 서로 중첩되더라도 모든 도표를 표시합니다.

  • Show diagram: 특정 도표만 렌더링되도록 할 수 있습니다.

  • Always Show: 특정 도표가 다른 도표 또는 맵 라벨과 중첩하더라도 언제나 렌더링되도록 선택합니다.

  • 축척에 따른 가시성 을 설정합니다.

../../../_images/diagram_tab_appearance.png

그림 14.36 도표 속성 - 렌더링 탭

14.1.5.3. 크기

Size 탭은 선택한 통계를 어떻게 표현할지 설정합니다. 도표의 크기 단위 는 ‘Millimeters’, ‘Points’, ‘Pixels’, ‘Map Units’ 또는 ‘Inches’ 입니다. 다음 가운데 하나를 선택할 수 있습니다:

  • Fixed size: 모든 피처의 그래픽을 유일한 크기로 표현합니다. (히스토그램에는 적용되지 않습니다.)

  • Scaled size: 레이어 속성을 이용하는 표현식을 기반으로 크기를 결정합니다:

    1. Attribute 란에서 필드를 선택하거나 표현식을 작성한 다음

    2. Find 를 눌러 해당 속성의 Maximum value 를 반환받거나, 위젯에 사용자 지정 값을 입력하십시오.

    3. 히스토그램과 누적 막대 그래프의 경우, 속성의 Maximum value 를 나타내는 데 사용되는 Bar length 값을 입력하십시오. 각 피처 별로 이 비율을 유지하기 위해 막대 길이를 선형적으로 축척 조정할 것입니다.

    4. 원형 차트와 텍스트 도표의 경우, 속성의 Maximum value 를 나타내는 데 사용되는 Size 값을 입력하십시오. 각 피처 별로 이 비율을 (0 에서부터) 유지하기 위해 원의 면적 또는 지름을 선형적으로 축척 조정할 것입니다. 하지만 작은 도표의 경우 Minimum size 를 설정할 수 있습니다.

../../../_images/diagram_tab_size.png

그림 14.37 도표 속성 - 크기 탭

14.1.5.4. 배치

Placement 탭에서 도표의 위치를 정의합니다. 레이어 도형 유형에 따라, 배치를 위한 서로 다른 옵션을 제공하고 있습니다(자세한 내용은 배치 참조):

  • Around point 또는 Over point: 포인트 도형 용입니다. 전자는 적용할 반경도 설정해야 합니다.

  • Around line 또는 Over line: 라인 도형 용입니다. 포인트 객체와 마찬가지로, 전자는 어느 한 쪽으로의 거리를 설정해야 합니다. 사용자는 객체를 기준으로 (라인의 ‘above’, ‘on’ 그리고/또는 ‘below’) 도표 배치를 지정할 수 있습니다. 한 번에 여러 옵션을 함께 선택할 수도 있습니다. 이 경우, QGIS가 도표의 최적 위치를 찾을 것입니다. 라인 방향을 이용해서 도표의 위치를 설정할 수도 있다는 점을 기억하십시오.

  • Around centroid (설정된 Distance 에), Over centroid, Using perimeterInside polygon: 폴리곤 객체 용 옵션입니다.

Coordinate 그룹: 피처 별로 도표 배치를 직접 제어할 수 있습니다. 피처의 속성 또는 표현식을 사용해서 XY 좌표를 설정합니다. 라벨 및 도표 이동 도구를 사용해서 좌표 정보를 채울 수도 있습니다.

Priority 부분에서 각 도표의 배치 우선 순위를 정의할 수 있습니다. 예를 들어 서로 다른 도표 또는 라벨 후보들이 동일 위치에 존재하는 경우, 더 높은 우선 순위를 가진 항목이 표시되고 나머지 후보들은 표시되지 않을 수도 있습니다.

Discourage diagrams and labels from covering features: 방해물 로 사용할 피처를 정의합니다. 예를 들어 QGIS는 이런 피처 위로 도표든 라벨이든 배치하지 않으려 할 것입니다. 그 다음 우선 순위를 사용해서 더 높은 가중치를 가진 방해물로 인해 도표를 누락해도 될지를 평가합니다.

../../../_images/diagram_tab_placement.png

그림 14.38 도표 속성 - 배치 탭

14.1.5.5. 옵션

Options 탭에서 히스토그램과 누적 막대 그래프를 설정할 수 있습니다. 수평 및 수직 도표에 대해 Bar orientationUp, Down, Right 또는 Left 가 되어야 할지 선택할 수 있습니다.

14.1.5.6. 범례

Legend 탭에서, 레이어 패널인쇄 조판기 범례 의 레이어 심볼 옆에 도표 항목을 표시할지 여부를 선택할 수 있습니다:

  • checkbox Show legend entries for diagram attributes: 이 옵션을 체크하면 범례에 Attributes 탭에서 할당했던 ColorLegend 속성을 표시합니다.

  • 그리고 도표에 척도 크기 가 사용된 경우, Legend Entries for Diagram Size… 버튼을 클릭하면 범례에 있는 도표 심볼 속성의 환경을 설정할 수 있습니다. 이 버튼은 Data-defined Size Legend 대화창을 여는데, 데이터 정의 크기 범례 에서 이 대화창의 옵션을 설명하고 있습니다.

설정을 마치면, 인쇄 조판기 범례의 레이어 심볼 옆에도 도표 범례 항목이 (색상 및 도표 크기 속성이) 표시됩니다.

14.1.6. 마스크 속성

labelmask The Masks 탭에서 다른 모든 레이어의 심볼 레이어 또는 라벨과 중첩하는 현재 레이어 심볼을 환경 설정할 수 있습니다. 즉 중첩하는 경우 색상이 비슷해 구분하기 힘든 심볼 및 라벨의 가독성을 향상시킬 수 있다는 뜻입니다. 항목 주변에 사용자 지정한 투명 마스크를 추가해서 현재 레이어의 심볼 레이어의 일부분을 “숨깁니다”.

활성화된 레이어에 마스크를 적용하려면, 먼저 프로젝트에서 마스크 심볼 레이어 또는 마스크 라벨 을 켜야 합니다. 그 다음 Masks 탭에서 다음을 확인하십시오:

  • Masked symbol layers: 현재 레이어의 모든 심볼 레이어를 트리 구조로 목록화합니다. 이 목록에서 선택한 마스크 소스와 중첩하는 경우 투명하게 “누락” 시키고자 하는 심볼 레이어 항목을 선택할 수 있습니다.

  • Mask sources 탭: 프로젝트에 정의되어 있는 모든 마스크 라벨과 마스크 심볼 레이어들의 목록입니다. 선택한 마스크 심볼 레이어를 덮는 마스크를 생성할 항목을 선택하십시오.

../../../_images/masks_properties.png

그림 14.39 레이어 속성 - 마스크 탭

14.1.7. 3D 뷰 속성

3d 3D View 탭은 3D 맵 뷰 도구에서 묘사되어야 할 벡터 레이어를 위한 설정을 제공합니다.

더 나은 성능을 위해 배후에서 멀티스레드 작업을 통해 벡터 레이어의 데이터를 불러온 다음, 타일로 렌더링합니다. 이때 3D 뷰 탭의 Layer rendering 부분에서 타일의 크기를 제어할 수 있습니다.

  • Zoom levels count: 사분 트리(quadtree)의 깊이를 결정합니다. 예를 들면 확대/축소 수준이 1인 경우 전체 레이어를 단일 타일로 나타냅니다. 확대/축소 수준이 3이라면 잎새(leaf) 수준에서 타일이 16개가 됩니다. (모든 추가적인 확대/축소 수준은 타일 개수가 4배수가 됩니다.) 기본값은 3 이며, 최대값은 8 입니다.

  • checkbox Show bounding boxes of tiles: 표시되어야 할 타일이 표시되지 않는 문제가 있을 경우 특히 유용한 옵션입니다.

레이어를 3차원으로 표시하려면, 탭 상단에 있는 콤보박스에서 다음 가운데 하나를 선택하십시오:

  • Single symbol: 속성이 데이터 정의 되었을 수도 있고 아닐 수도 있는 공통 3D 심볼을 사용해서 피처를 렌더링합니다. 각 레이어 도형 유형에 대한 자세한 내용은 3D 심볼 설정하기 를 읽어보십시오.

  • Rule-based: 표현식 기반과 축척 범위를 기반으로 여러 심볼의 환경을 정의하고 선택적으로 적용시킬 수 있습니다. 그 방법에 대한 자세한 내용은 규칙 기반 렌더링 을 참조하세요.

../../../_images/3d_view_properties.png

그림 14.40 포인트 레이어의 3차원 속성

14.1.8. 필드 속성

sourceFields Fields 탭은 레이어 관련 필드에 대한 정보를 제공하며, 레이어 필드를 정리할 수 있습니다.

toggleEditing Toggle editing mode 버튼으로 레이어를 편집 가능 모드로 만들 수 있습니다. 레이어가 편집 가능 모드일 경우, newAttribute New fielddeleteAttribute Delete field 버튼을 사용해서 레이어 구조를 수정할 수 있습니다.

필드명을 더블클릭하면 필드를 재명명할 수도 있습니다. PostgreSQL, Oracle, 메모리 레이어 및 (OGR 데이터 유형 및 버전에 따라 달라지는) 일부 OGR 레이어와 같은 데이터 제공자만 이 기능을 지원합니다.

기저 데이터소스 또는 양식 속성 에서 설정한 경우, 필드의 별명(alias)도 표시됩니다. 별명이란 피처 양식 또는 속성 테이블에서 사용할 수 있는 사람이 읽을 수 있는 필드명입니다. 별명은 프로젝트 파일에 저장됩니다.

데이터 제공자에 따라, 예를 들면 필드 생성 시에, 필드에 코멘트를 결합시킬 수 있습니다. 데이터 제공자가 이 정보를 가져와 Comment 열에 표시하며, 이후 피처 양식에 있는 필드 라벨 위에 마우스를 가져가면 코멘트를 표시합니다.

가상 필드와 보조 저장소 를 포함하는 데이터셋에 담겨진 필드 외에도, Fields 탭은 모든 결합 레이어(joined layer) 의 필드들의 목록도 가지고 있습니다. 필드의 출처에 따라 서로 다른 배경 색상을 적용합니다.

이 대화창은 목록의 각 필드에 대해 필드의 type, type name, lengthprecision 같은 읽기 전용 특성도 목록화합니다. 레이어를 WMS 또는 WFS 로 서비스하는 경우, 여기에서 어떤 필드를 가져올 수 있는지도 확인할 수 있습니다.

../../../_images/fields_properties.png

그림 14.41 필드 속성 탭

14.1.9. 속성 양식 속성

formView Attributes Form 탭에서 새 피처를 생성하거나 기존 피처를 쿼리할 때 표시할 양식을 설정할 수 있습니다. 다음을 정의할 수 있습니다:

  • 피처 양식 또는 (라벨, 위젯, 제약조건 등등의) 속성 테이블에 있는 각 필드의 모양 및 습성

  • 양식의 구조 (사용자 지정 또는 자동 생성)

  • 양식 또는 필드 위젯과 대화형 작업을 처리하기 위한 파이썬 추가 논리

대화창 우상단에서 새 피처 생성시 양식을 기본적으로 열지 여부를 설정할 수 있습니다. Settings ► Options ► Digitizing 메뉴의 Suppress attribute form pop-up after feature creation 옵션을 통해 레이어별 또는 전체 수준으로 환경 설정할 수 있습니다.

14.1.9.1. 사용자 데이터용 양식을 사용자 지정하기

identify Identify Features 도구로 피처를 클릭하거나 또는 속성 테이블을 양식 뷰(form view) 모드로 바꾸는 경우, 기본적으로 QGIS는 기본 양식을 미리 정의된 위젯과 함께 표시합니다. (일반적으로 스핀박스(spinbox)와 텍스트 상자로 이루어집니다. 지정된 행에 각 필드를 위젯 옆에 있는 필드 라벨로 표현합니다.) 만약 레이어에 관계 가 설정돼 있다면, 양식의 하단에 내장된 프레임에 참조 레이어의 필드를 동일한 기본 구조대로 표시합니다.

이 렌더링은 Layer properties ► Attributes Form 탭에 있는 Attribute editor layout 설정의 기본값 Autogenerate 의 결과입니다. 이 속성은 서로 다른 세 가지 값을 선택할 수 있습니다:

  • Autogenerate: 양식에 대해 “1행 - 1필드” 라는 기본 구조를 유지하지만 대응하는 각 위젯을 사용자 지정할 수 있습니다.

  • Drag-and-drop designer: 위젯 사용자 지정 이외에도, 더 복잡한 양식 구조를 만들 수 있습니다. 예를 들면 위젯을 그룹 및 탭에 내장시킬 수 있습니다.

  • Provide ui file: Qt 설계자 파일을 사용할 수 있게 해줍니다. 따라서 잠재적으로 더 복잡하고 완전한 기능을 가진 템플릿을 피처 양식으로 활용할 수 있습니다.

자동 생성 양식

Autogenerate 옵션이 활성화된 경우, Available widgets 패널이 양식에 표시될 (레이어와 레이어 관계에서 나온) 필드 목록을 표시합니다. 필드를 선택하면 오른쪽 패널에서 필드의 모양 및 습성의 환경을 설정할 수 있습니다:

드래그&드롭 설계자

사용자는 드래그&드롭 설계자를 통해 속성 필드를 나타내기 위한 여러 컨테이너를 (탭 또는 그룹을) 가진 양식을 생성할 수 있습니다. 그림 14.42 의 예시를 참조하세요.

../../../_images/resulting_feature_form.png

그림 14.42 탭과 명명된 그룹을 가진 내장 양식 생성의 결과물

  1. Select attribute layout editor 콤보박스에서 Drag and drop designer 를 선택하면, Available widgets 패널 옆에 있는 Form Layout 패널을 기존 필드로 채워서 활성화합니다. 선택한 필드는 세 번째 패널에 자신의 속성 을 표시합니다.

  2. 사용자의 Form Layout 패널에서 사용하지 않을 필드를 선택하고 signMinus 버튼을 클릭하면 선택한 필드를 제거합니다. 다른 패널에서 제거한 필드를 드래그&드롭하면 다시 추가할 수 있습니다. 동일한 필드를 몇 번이고 추가할 수도 있습니다.

  3. Form Layout 패널에 있는 필드를 드래그&드롭하면 필드 위치를 재배열할 수 있습니다.

  4. 동일 카테고리에 속한 관련 필드에 컨테이너를 (탭 또는 그룹 프레임을) 추가하면 더 나은 양식 구조를 만들 수 있습니다.

    1. 먼저 signPlus 아이콘을 클릭해서 필드 및 그룹을 표시할 탭을 생성하십시오.

    2. 그리고 컨테이너의 속성을 다음과 같이 설정하십시오:

      • 명칭

      • 유형: 예를 들어 tab 또는 group in container (탭 또는 또다른 그룹에 내포된 그룹)

      • Number of columns: 내장된 필드가 배포되어야 할 열의 개수

      ../../../_images/attribute_editor_layout.png

      그림 14.43 속성 편집기 조판 으로 컨테이너를 생성하는 대화창

      이후에 항목을 선택한 다음 세 번째 패널에서 다음 설정을 하면 이 속성들과 기타 속성들을 업데이트할 수 있습니다:

      • 컨테이너의 라벨을 숨기기 또는 표시하기

      • 컨테이너를 그룹 상자로 표시하기 (탭인 경우에만 사용할 수 있습니다)

      • 컨테이너 명칭을 변경하기

      • 열의 개수를 설정하기

      • 컨테이너의 가시성을 제어하는 표현식을 입력하기. 양식의 값들이 변경될 때마다 표현식을 다시 평가하고 그에 따라 탭 또는 그룹 상자를 표시하거나 숨길 것입니다.

      • 배경 색상을 추가하기

    3. 사용자가 원하는 만큼 많은 컨테이너를 생성할 수 있습니다. 기존 탭 아래 또다른 탭 또는 그룹 프레임을 생성하려면 signPlus 아이콘을 클릭하십시오.

  5. 다음 단계는 각 컨테이너에 관련 필드를 할당하는 것입니다. 그냥 드래그&드롭하면 됩니다. 그룹 및 탭도 같은 방법으로 옮길 수 있습니다.

  6. 사용 중인 필드의 위젯을 사용자 지정 하십시오.

  7. 레이어가 일대다 또는 다대다 관계 에 속해 있는 경우, Available widgets 패널에서 Form Layout 패널로 관계명을 드래그&드롭하면 됩니다. 현재 레이어의 양식에서 지정한 위치에 관련 레이어 속성 양식을 내포시킬 것입니다. 다른 항목의 경우, 관계 라벨을 선택하면 다음 몇몇 속성을 환경 설정할 수 있습니다:

    • 관계 라벨을 숨기기 또는 표시하기

    • 링크 버튼 표시하기

    • 링크 해제 버튼 표시하기

  8. 레이어 속성 대화창의 Apply 버튼을 클릭합니다.

  9. 피처 속성 양식을 (예를 들어 identify Identify features 도구를 사용해서) 열면, 새 양식을 표시할 것입니다.

사용자 지정 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 으로 참조합니다.

14.1.9.2. 필드 습성 환경 설정

Attributes Form 의 주요 부분에서 속성 테이블 또는 피처 양식에 있는 필드의 값을 입력하거나 표시하는 데 쓰이는 위젯의 유형을 설정할 수 있습니다. 사용자가 각 필드와 값 또는 각 필드에 추가할 수 있는 값의 범위와 어떻게 대화형 작업을 할지 정의할 수 있습니다.

../../../_images/edit_widgets_dialog.png

그림 14.44 속성 열을 위한 편집 위젯을 선택할 수 있는 대화창

공통 설정

필드에 적용된 위젯의 유형에 상관없이, 필드를 편집할 수 있는지 없는지 그리고 필드를 어떻게 편집할 수 있는지를 제어하도록 설정할 수 있는 몇몇 공통 속성이 존재합니다.

위젯 표시

Show label: 양식에 필드명을 표시해야 하는지 여부를 나타냅니다. (드래그&드롭 설계자 모드에서만)

일반 옵션
  • Alias: 필드용으로 쓰이는, 사람이 읽을 수 있는 명칭입니다. 이 별명은 피처 양식, 속성 테이블 또는 Identify results 패널에 표시될 것입니다. 표현식 작성기 에서 필드명 대신 사용될 수도 있는데, 표현식을 쉽게 이해하고 검토할 수 있게 해줍니다.

  • Comment: 필드의 코멘트를 읽기전용 상태로, Fields 탭에 표시된대로 표시합니다. 이 정보는 피처 양식에 있는 필드 라벨 위에 마우스를 가져가면 툴팁으로 표시됩니다.

  • checkbox Editable: 이 설정을 선택 해제하면 레이어가 편집 모드 상태일지라도 필드를 읽기 전용으로 (사용자가 수정할 수 없도록) 설정합니다. 이 설정을 체크해도 제공자의 어떤 편집 제한도 무시하지 않는다는 사실을 기억하십시오.

  • checkbox Label on top: 피처 양식에 있는 위젯의 위 또는 옆에 필드명을 배치합니다.

기본값
  • Default value: 새 피처의 경우, 기본적으로 미리 정의된 값 또는 표현식 기반 값 으로 필드를 자동적으로 채웁니다. 예를 들어:

    • 필드 생성시 피처의 X 좌표, 길이, 면적 또는 다른 어떤 도형 정보로 필드를 자동적으로 채우려면 $x, $length, $area 를 사용하면 됩니다.

    • 새 피처를 생성할 때마다 필드를 1씩 증가하는 값으로 채우려면 maximum("field")+1 을 사용하면 됩니다.

    • 피처 생성 날짜&시간을 저장하려면 now() 를 사용하면 됩니다.

    • 표현식에 변수 를 사용하면, 예를 들어 작업자 이름(@user_full_name), 프로젝트 파일 경로(@project_path) 등등을 더 쉽게 삽입할 수 있습니다.

    산출되는 기본값의 미리보기가 위젯 하단에 표시됩니다.

    참고

    Default value 옵션은 생성 중인 피처의 다른 어떤 필드에 있는 값도 알지 못합니다. 때문에 이 값들을 결합하는 표현식을 사용하는 것은 불가능할 것입니다. 예를 들어 concat(field1, field2) 같은 표현식을 사용하면 작동하지 않을 수도 있습니다.

  • checkbox Apply default value on update: 피처 속성 또는 도형이 변경될 때마다 기본값을 다시 계산합니다. 이 옵션으로 데이터를 마지막으로 수정한 사용자, 피처가 마지막으로 변경된 시간 등과 같은 값들을 손쉽게 저장할 수 있습니다.

제약조건

필드에 삽입되는 값을 제약할 수 있습니다. 다음과 같은 제약 조건을 설정할 수 있습니다:

  • checkbox Not null: 사용자가 값을 입력해야 합니다.

  • checkbox Unique: 삽입되는 값이 필드 전체에서 유일하도록 보장합니다.

  • 사용자 지정 expression 기반: 예를 들어 col0 필드의 값이 오직 알파벳 문자만 입력받게 하려면 not regexp_match(col0,'[^A-Za-z]') 같은 표현식을 쓰면 됩니다. 사용자가 제약조건을 기억할 수 있도록 간단한 설명을 추가할 수 있습니다.

필드에 값을 추가하거나 필드값을 편집할 때마다, 기존 제약조건이 새 값을 받아서:

  • 모든 요구사항을 만족하는 경우, 양식에 있는 필드 옆에 초록색 체크 표시가 나타납니다.

  • 모든 요구사항을 만족하지 못하는 경우, 필드가 노란색 또는 주황색으로 바뀌고 그에 대응하는 가위표가 위젯 옆에 표시됩니다. 가위표 위에 마우스를 가져가면 해당 필드에 어떤 제약조건이 적용돼 있는지 알 수 있으므로 값을 수정하면 됩니다:

    • 만족하지 않는 제약조건이 강제가 아니기 때문에 “틀린” 값을 변경 사항으로 저장해도 될 때 노란색 가위표가 나타납니다.

    • 주황색 가위표는 무시할 수 없으며, 제약조건을 만족할 때까지 사용자의 수정 사항을 저장할 수 없습니다. checkbox Enforce constraint 옵션을 활성화했을 때 주황색 가위표가 나타납니다.

편집 위젯

QGIS는 필드 유형에 따라 자동적으로 기본 위젯 유형을 결정하고 필드에 할당합니다. 이후 사용자가 필드 유형과 호환되는 다른 어떤 위젯으로도 대체할 수 있습니다. 다음과 같은 위젯을 사용할 수 있습니다:

  • 체크박스(Checkbox): 그 상태가 삽입하는 값을 정의하는 체크박스를 표시합니다.

  • 범주화(Classification): 레이어에 범주 심볼 이 적용된 경우에만 사용할 수 있으며, 범주들의 값을 가지고 있는 콤보박스를 표시합니다.

  • 색상(Color): 색상을 선택할 수 있는 색상 위젯 을 표시합니다. 색상값은 속성 테이블에 HTML 서식으로 저장됩니다.

  • 날짜&시간(Date/Time): 날짜, 시간, 또는 둘 다 입력하기 위한 캘린더 위젯을 열 수 있는 한 줄짜리 텍스트 란을 표시합니다. 열이 텍스트 유형이어야만 합니다. 캘린더 팝업창 등의 사용자 지정 서식을 선택할 수 있습니다.

  • 일람표(Enumeration): 데이터베이스에서 가져온 미리 정의된 값들을 가지고 있는 콤보박스를 엽니다. 현재 PostgreSQL 제공자가 enum 유형인 필드에 대해서만 지원하고 있습니다.

  • 첨부(Attachment): 파일 경로를 상대 또는 절대 경로로 저장하기 위한 “Open file” 대화창을 사용합니다. (문서 경로를 가리키는) 하이퍼링크, 이미지 또는 웹페이지를 표시하는 데에도 사용할 수 있습니다.

  • 숨김(Hidden): 숨겨진 속성 열을 볼 수 없습니다. 사용자가 열의 내용을 확인할 수 없습니다.

  • 키/값(Key/Value): 단일 필드 안에 키/값 쌍의 집합을 저장하기 위한 열 2개짜리 테이블을 표시합니다. 현재 PostgreSQL 제공자가 hstore 유형인 필드에 대해서만 지원하고 있습니다.

  • 목록(List): 단일 필드 안에 서로 다른 값들을 추가하기 위한 열 1개짜리 테이블을 표시합니다. 현재 PostgreSQL 제공자가 array 유형인 필드에 대해서만 지원하고 있습니다.

  • 범위(Range): 특정 범위에서 숫자 값을 설정할 수 있습니다. 슬라이드 바 또는 스핀박스 위젯 가운데 선택할 수 있습니다.

  • 관계성 참조(Relation Reference): 관계 가 설정된 경우 참조하는 필드(예: 자식 레이어의 외래 키)에 할당되는 기본 위젯입니다. 자식 피처의 목록과 양식을 내장한 부모 피처의 양식에 직접 접근할 수 있습니다.

  • 텍스트 편집(Text Edit) (기본값): 간단한 텍스트 또는 여러 줄의 텍스트를 쓸 수 있는 텍스트 편집란을 엽니다. 여러 줄 유형을 선택한 경우 HTML 내용도 선택할 수 있습니다.

  • 단일값(Unique Values): 속성 테이블에서 이미 사용된 값들 가운데 하나를 선택할 수 있습니다. ‘Editable’ 설정을 체크한 경우 자동 완성을 지원하는 한 줄짜리 텍스트 편집란을 표시하며, 체크하지 않은 경우 콤보박스를 표시합니다.

  • UUID 생성기(UUID Generator): UUID(Universally Unique Identifiers) 필드가 비어 있을 경우 읽기 전용 UUID 를 생성합니다.

  • 값 지도(Value Map): 사전 정의된 항목을 가지고 있는 콤보박스를 표시합니다. 값은 속성에 저장돼 있으며, 설명은 콤보박스에 표시됩니다. 값을 직접 정의할 수도 있고, 레이어 또는 CSV 파일에서 불러올 수도 있습니다.

  • 값 관계(Value Relation): 콤보박스에 관련 테이블에서 가져온 값을 제공합니다. 레이어, 키 열, 값 열 가운데 하나를 선택할 수 있습니다. 표준 습성을 변경할 수 있는 몇몇 옵션들이 – NULL 값 허용, 값으로 정렬, 다중 선택 허용 및 자동완성 사용 – 있습니다. 이 양식은 드롭다운 목록을 표시하거나, 자동완성 체크박스를 활성화한 경우 한 줄짜리 텍스트 편집란을 표시할 것입니다.

첨부 위젯의 상대 경로

파일 탐색기를 통해 선택한 경로가 .qgs 프로젝트 파일과 동일한 디렉터리에 또는 그 아래 위치하는 경우, 해당 경로를 상대 경로로 변환합니다. 이 습성은 멀티미디어 정보가 첨부된 .qgs 프로젝트의 이동성(portability)을 향상시킵니다.

14.1.10. 결합 속성

join Joins 탭에서, 현재 레이어의 (Target layer 의) 피처와 또다른 불러온 벡터 레이어의 (또는 테이블의) 피처를 결합시킬 수 있습니다. 결합은 레이어가 공유하는 속성을 기반으로 합니다. 레이어가 (테이블이) 무(無) 도형일 수도 아닐 수도 있지만 두 레이어의 결합 속성만큼은 동일한 유형이어야 합니다.

결합을 생성하려면:

  1. signPlus Add new join 아이콘을 클릭하면 Add vector join 대화창이 열립니다.

  2. 대상 벡터 레이어와 연결하려는 Join layer 를 선택하십시오.

  3. 결합 레이어와 대상 레이어 양쪽에 공통으로 존재하는 Join fieldTarget field 를 지정하십시오.

  4. OK 를 누르면 Join 패널에 선택한 파라미터들의 요약이 추가됩니다.

../../../_images/join_attributes.png

그림 14.45 기존 벡터 레이어에 속성 테이블 결합

앞의 단계들을 통해 생성된 결합은, 결합 레이어에서 처음으로 일치하는 피처의 모든 속성을 대상 레이어의 피처에 추가시킵니다. QGIS는 이 결합을 미세 조정할 수 있는 많은 옵션을 제공하고 있습니다:

  • checkbox Cache join layer in virtual memory: 검색 속도를 향상시키기 위해, 메모리에 결합된 레이어의 (도형을 제외한) 값들을 저장할 수 있게 합니다.

  • unchecked Create attribute index on the join field: 이 옵션을 활성화하면 결합 필드에 속성 인덱스를 생성합니다.

  • unchecked Dynamic form: 결합 필드들을 Target field 를 따라서 실시간으로 동기화할 수 있습니다. 이 옵션을 활성화하면, 결합 필드에 있는 제약조건도 정확하게 업데이트됩니다. 이 옵션이 기본적으로 비활성화돼 있는 것은 피처나 결합이 많을 경우 처리 시간이 너무 오래 걸리기 때문이라는 사실을 기억하세요.

  • 대상 레이어가 편집 가능 상태인 경우, 필드에 대한 정보를 알려주기 위한 몇몇 아이콘들이 속성 테이블의 필드 옆에 표시될 것입니다:

    • joinNotEditable: 결합 레이어를 편집할 수 있도록 환경 설정되지 않았습니다. 대상 속성 테이블에서 결합 피처를 편집할 수 있도록 하고 싶다면, checkbox Editable join layer 옵션을 체크해야 합니다.

    • joinedLayerNotEditable: 결합 레이어를 편집할 수 있도록 환경 설정돼 있지만, 현재 읽기 전용 상태입니다.

    • joinHasNotUpsertOnEdit: 결합 레이어를 편집할 수 있지만, 동기화 메커니즘이 활성화되지 않았습니다. 대상 레이어에서 피처를 생성하면 결합 레이어에 피처를 자동적으로 추가하게 하려면, checkbox Upsert on edit 옵션을 체크해야 합니다. 마찬가지로, 대상 레이어에서 피처를 삭제하면 결합 레이어에서도 자동적으로 삭제하게 하려면 checkbox Delete cascade 옵션을 체크해야 합니다.

  • unchecked Joined fields: 결합된 레이어의 모든 필드를 추가하는 대신, 하위 집합을 지정할 수 있습니다.

  • unchecked Custom field name prefix: 명칭의 충돌을 방지하기 위해 결합된 필드명에 사용자 지정 접두어를 추가합니다.

QGIS는 현재 OGR(예: CSV, DBF 및 엑셀), 구분 텍스트, 그리고 PostgreSQL 제공자가 지원하는 비공간 테이블 유형들의 결합도 지원합니다.

14.1.11. 보조 저장소 속성

스타일 작업 및 라벨 작업을 사용자 지정하는 표준적인 방법은 데이터 정의 무시 설정 에서 설명하는대로 데이터 정의 속성을 사용하는 것입니다. 하지만, 기저 데이터가 읽기 전용인 경우 이 방법을 사용할 수 없을 수도 있습니다. 게다가 이런 데이터 정의 속성을 환경 설정하는 것이 너무 오래 걸리거나 또는 바람직하지 않을 수도 있고요! 예를 들어 라벨 툴바 의 맵 도구들을 완전하게 사용하고 싶다면 사용자의 원본 데이터소스에 있는 20개 이상의 (X 및 Y 위치, 회전 각도, 글꼴 스타일, 색상 등등) 필드들을 추가하고 환경 설정해주어야 합니다.

보조 저장소 메커니즘은 이런 제한 및 불편한 환경 설정을 해결할 수 있습니다. 보조 필드는 ─ 편집 가능한 결합 덕분에 ─ SQLite 데이터베이스에 이런 (라벨, 도표, 심볼 등의) 데이터 정의 속성들을 자동으로 관리하고 저장할 수 있는 우회적인 방법입니다. 즉 편집 가능 상태가 아닌 레이어의 속성들을 저장할 수 있게 해줍니다.

벡터 레이어 속성 대화창에 보조 저장소를 관리하기 위한 탭이 있습니다:

../../../_images/auxiliary_storage_tab.png

그림 14.46 보조 저장소 탭

14.1.11.1. 라벨 작업

편집 가능 상태가 아닌 데이터 정의 속성 덕분에 데이터소스를 사용자 지정할 수도 있다는 점을 고려하면, 라벨 작업을 활성화하면 언제라도 라벨 툴바 에서 설명한 라벨 작업 맵 도구들을 사용할 수 있습니다.

사실, 보조 저장소 시스템은 SQLite 데이터베이스에 (보조 저장소 데이터베이스 참조) 이 속성들을 저장하기 위해 보조 레이어를 필요로 합니다. 라벨 작업 맵 도구가 활성화된 상태에서 맵을 처음으로 클릭할 때 보조 레이어 생성 과정이 실행됩니다. 그러면 (피처를 유일하게 식별하도록 보장하기 위해) 결합 작업에 사용할 기본 키를 선택할 수 있는 창이 표시됩니다:

../../../_images/auxiliary_storage_key.png

그림 14.47 보조 레이어 생성 대화창

현재 데이터소스에서 보조 레이어의 환경을 설정하자마자, 탭에서 보조 레이어의 정보를 검색할 수 있습니다:

../../../_images/auxiliary_storage_tabkey.png

그림 14.48 보조 레이어 키

이 보조 레이어는 다음과 같은 특성을 가집니다:

  • 기본 키는 ID 이고,

  • 보조 필드를 사용하는 피처는 0 개이며,

  • 보조 필드도 0 개입니다.

이제 보조 레이어를 생성했으니, 레이어 라벨을 편집할 수 있습니다. changeLabelProperties Change Label 맵 도구를 활성화한 상태에서 라벨을 클릭하면, 크기, 색상 등의 스타일 작업 속성을 업데이트할 수 있습니다. 대응하는 데이터 정의 속성들을 다음과 같이 생성하고 가져올 수 있습니다:

../../../_images/auxiliary_storage_fields.png

그림 14.49 보조 필드

앞 그림에서 볼 수 있듯이, 라벨용으로 필드 21 개가 자동적으로 생성되고 환경 설정됐습니다. 예를 들면, 기저 SQLite 데이터베이스에서 FontStyle 보조 필드의 유형은 String 이며 명칭은 labeling_fontstyle 입니다. 또 현재 보조 필드를 사용하고 있는 필드가 1 개있습니다.

Labels 속성 탭에 dataDefineOn 아이콘이 표시된 것을 눈치채셨나요? 데이터 정의 무시 옵션이 정확하게 설정되었다는 의미입니다:

../../../_images/auxiliary_storage_dd.png

그림 14.50 자동적으로 생성된 데이터 정의 속성들

그 외에도, dataDefined data-defined override 버튼으로 특정 속성을 위한 보조 필드를 생성할 수 있는 또다른 방법이 있습니다. Store data in the project 를 클릭하면, Opacity 필드를 위한 보조 필드를 자동적으로 생성합니다. 아직 보조 레이어를 생성하지 않은 상태에서 이 버튼을 클릭했다면, 보조 레이어 생성 대화창 창이 먼저 표시되어 결합 작업을 위한 기본 키를 선택해야 합니다.

14.1.11.2. 심볼

앞에서 설명한 라벨 사용자 지정 작업을 위한 방법처럼, 보조 필드를 사용해서 심볼 및 도표의 스타일도 작업할 수 있습니다. 그러려면 먼저 dataDefined Data-defined override 를 클릭한 다음 특정 속성을 위해 Store data in the project 를 선택하십시오. 예를 들어 Fill color 필드의 경우:

../../../_images/auxiliary_storage_symbol.png

그림 14.51 심볼을 위한 데이터 정의 속성 메뉴

각 심볼을 위한 서로 다른 (예를 들어 채우기 스타일, 채우기 색상, 획 색상 등등) 속성들이 있으므로, 속성을 표현하는 각 보조 필드에는 충돌을 피하기 위한 유일한 명칭이 필요합니다. Store data in the project 를 선택하면 필드의 Type 을 표시하고 보조 필드용 유일 명칭을 입력하도록 하는 창이 열립니다. 예를 들면, Fill color 보조 필드를 생성할 때 다음과 같은 창이 열립니다:

../../../_images/auxiliary_storage_symbol_name.png

그림 14.52 심볼을 위한 보조 필드의 명칭

보조 필드를 생성하고 나면, 보조 저장소 탭에서 해당 필드를 검색할 수 있습니다:

../../../_images/auxiliary_storage_symbol_field.png

그림 14.53 보조 필드 심볼

14.1.11.3. 속성 테이블 및 위젯

속성 테이블 을 사용해서 보조 필드를 편집할 수 있습니다. 하지만, 모든 보조 필드가 처음부터 속성 테이블에 나타나지는 않습니다.

레이어의 심볼, 라벨, 모양, 또는 도표 속성을 표현하는 보조 필드들은 속성 테이블에 자동적으로 나타납니다. 그 예외는 라벨 툴바 를 사용해서 수정할 수 있는 속성으로, 기본적으로 숨겨져 있습니다. Color 를 표현하는 보조 필드는 기본적으로 색상 위젯을 보유하도록 설정되는데, 그 외의 보조 필드는 기본적으로 텍스트 편집 위젯으로 설정됩니다.

라벨 툴바 를 사용해서 수정할 수 있는 속성을 표현하는 보조 필드는 기본적으로 속성 테이블에서 숨겨져(Hidden) 있습니다. 이런 필드를 가시화하려면, 속성 양식 속성 탭 을 열고 보조 필드의 Widget TypeHidden 에서 다른 관련 값으로 변경하십시오. 예를 들어, auxiliary_storage_labeling_sizeText Edit 으로 변경하거나 또는 auxiliary_storage_labeling_colorColor 위젯으로 변경하십시오. 이제 필드가 속성 테이블에서 가시화될 것입니다.

속성 테이블에 있는 보조 필드는 다음 그림처럼 나타날 것입니다:

../../../_images/auxiliary_storage_widgets.png

그림 14.54 보조 필드를 보유한 양식

14.1.11.4. 관리

Auxiliary Layer 메뉴에서 보조 필드를 관리할 수 있습니다:

../../../_images/auxiliary_storage_actions.png

그림 14.55 보조 레이어 관리

이 경우 첫 항목 Create 가 비활성화돼 있습니다. 보조 레이어가 이미 생성됐기 때문입니다. 그러나 처음부터 작업하는 경우, 이 액션을 사용해서 보조 레이어를 생성할 수 있습니다. 라벨 작업 에서 설명했듯이, 기본 키가 필요할 것입니다.

Clear 액션은 모든 보조 필드를 유지하면서 그 내용들은 제거할 수 있습니다. 이렇게 하면 이 필드들을 사용하는 피처의 개수가 0 으로 떨어질 것입니다.

Delete 액션은 보조 레이어를 완전히 제거합니다. 다시 말해, 기저 SQLite 데이터베이스에서 대응하는 테이블을 삭제합니다. 사용자 지정한 속성들이 사라집니다.

마지막으로 Export 액션은 보조 레이어를 새 벡터 레이어 로 저장할 수 있습니다. 보조 저장소는 도형을 저장하지 않는다는 사실을 기억하십시오. 하지만 이 경우, 원본 데이터소스에서 도형들도 내보냅니다.

14.1.11.5. 보조 저장소 데이터베이스

사용자 프로젝트를 .qgs 포맷으로 저장하는 경우, 보조 저장소용으로 사용한 SQLite 데이터베이스도 동일한 위치에 저장되며 그 확장자는 .qgd 입니다.

사용자 편의를 위해, .qgz 압축 포맷을 대신 사용할 수도 있습니다. 이 경우 .qgd.qgs 파일 둘 다 압축 파일에 들어갑니다.

14.1.12. 액션 속성

action QGIS는 객체의 속성을 기반으로 하는 액션을 수행할 수 있는 기능을 제공하고 있습니다. 예를 들면 객체의 속성에서 생성한 인자(argument)와 함께 프로그램을 실행하거나 또는 웹 보고 도구에 파라미터를 전달하는 등의 수많은 액션을 수행할 수 있습니다.

../../../_images/action_dialog.png

그림 14.56 몇몇 예시 액션을 담고 있는 오버뷰 액션 대화창

외부 응용 프로그램을 자주 실행하거나 사용자 벡터 레이어에 있는 하나 이상의 값들을 기반으로 웹 페이지를 보려 하는 경우 액션이 유용합니다. 액션은 6개의 유형으로 나뉘며, 다음과 같이 사용할 수 있습니다:

  • 외부 프로세스를 구동하는 일반, 맥, 윈도우 및 유닉스 액션

  • 파이썬 표현식을 실행하는 파이썬 액션

  • 어디에서나 볼 수 있는 일반 및 파이썬 액션

  • 각각 대응하는 플랫폼 상에서만 볼 수 있는 맥, 윈도우 및 유닉스 액션 (예를 들어, 편집기를 여는 ‘편집’ 액션을 3개 정의해도 사용자는 편집기를 실행하는 플랫폼의 전용 ‘편집’ 액션만을 보고 실행할 수 있습니다.)

이 대화창은 예시를 몇 개 포함하고 있습니다. Create Default Actions 버튼을 클릭하면 이 예시 액션들을 불러올 수 있습니다. 예시 액션을 편집하려면, 해당 행을 더블클릭하십시오. 예시 가운데 하나는 속성값을 기반으로 검색을 수행합니다. 다음 항에서 이 개념을 사용합니다.

checkbox Show in Attribute Table 옵션을 활성화하면 속성 테이블 대화창에 체크한 피처 범위(feature-scoped) 액션들을 Combo Box 또는 Separate Buttons 가운데 하나로 표시할 수 있습니다. (열 환경 설정하기 참조)

14.1.12.1. 액션 정의하기

속성 액션을 정의하려면, 벡터 Layer Properties 대화창을 열고 Actions 탭을 선택하십시오. Actions 탭에서 signPlus Add a new action 을 클릭하면 Edit Action 대화창이 열립니다.

Type 옵션으로 액션 유형을 선택하고 액션을 설명하는 명칭을 부여하십시오. 액션 자체의 명칭이 액션을 작동시켰을 때 실행될 응용 프로그램의 명칭을 포함해야만 합니다. 하나 이상의 속성 필드를 응용 프로그램에 대한 인자로서 추가할 수 있습니다. 액션을 작동시켰을 때, 필드명 앞의 % 로 시작하는 어떤 문자 집합도 해당 필드의 값으로 대체될 것입니다. 특수 문자열 %% 는 식별 결과 또는 속성 테이블에서 선택한 필드의 값으로 대체될 것입니다. (다음 액션 사용하기 항을 참조하세요.) 큰따옴표로 여러 텍스트를 묶으면 프로그램, 스크립트 또는 명령어에 대한 단일 인자로 만들 수 있습니다. 큰따옴표 앞에 역 슬래시가 있을 경우 이를 무시할 것입니다.

Action Scopes어디에서 액션을 사용할 수 있어야 하는지를 정의할 수 있습니다. 다음 4개 가운데 선택할 수 있습니다:

  1. Feature Scope: 속성 테이블에 있는 셀을 오른쪽 클릭하면 액션을 사용할 수 있습니다.

  2. Field Scope: 속성 테이블에 있는 셀, 피처 양식, 그리고 메인 툴바의 기본 액션 버튼을 오른쪽 클릭하면 액션을 사용할 수 있습니다.

  3. Layer Scope: 속성 테이블 툴바에 있는 액션 버튼으로 액션을 사용할 수 있습니다. 이 액션 유형은 단일 피처가 아니라 레이어 전체를 대상으로 한다는 점을 유의하십시오.

  4. Canvas: 툴바에 있는 메인 액션 버튼으로 액션을 사용할 수 있습니다.

필드명이 다른 필드명의 하위 문자열인 경우 (예: col1col10) 필드명(과 % 문자)을 꺾쇳괄호로 묶어서 (예: [%col10]) 그 사실을 나타내야 합니다. 이렇게 하면 필드명 %col10 을 뒤에 0이 붙은 %col1 필드명과 혼동하는 일을 피할 수 있습니다. QGIS가 % 문자열을 필드값으로 대체할 때 괄호를 제거할 것입니다. 대체된 필드값이 꺾쇠괄호로 묶여 있길 바란다면, [[%col10]] 처럼 괄호를 두 번 치십시오.

Identify Features 도구를 사용하면 Identify Results 대화창을 열 수 있습니다. 이 대화창에 레이어 유형에 관련된 정보를 담은 (Derived) 항목이 있습니다. 이 파생 필드의 명칭을 (Derived). 로 처리하면 다른 필드에 접근하는 것과 비슷한 방식으로 이 항목의 값에 접근할 수 있습니다. 예를 들어 포인트 레이어는 XY 필드를 보유하고 있는데, %(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 으로 다시 작성하면 됩니다. 이렇게 하면 액션을 작동시켰을 때 캉커러 응용 프로그램이 확실하게 실행될 것입니다.

두 번째 예시는 %% 기호를 사용하는데, 특정 필드에서 그 값을 불러오지 않는다는 뜻입니다. 액션을 작동시켰을 때, %% 기호는 식별 결과 또는 속성 테이블에서 선택한 필드의 값으로 대체될 것입니다.

14.1.12.2. 액션 사용하기

QGIS는 사용자가 레이어 상에 활성화시킨 액션들을 실행시킬 수 있는 방법을 여러 개 제공하고 있습니다. 액션 설정에 따라, 다음과 같이 실행시킬 수 있습니다:

  • Attributes toolbar 또는 Attribute table 대화창의 actionRun Run Feature Action 버튼의 드롭다운 메뉴를 통해

  • identify Identify Features 도구로 피처를 오른쪽 클릭했을 때 (자세한 내용은 피처 식별 참조)

  • Identify Results 패널의 Actions 부분에서

  • Attribute Table 대화창에 있는 Actions 열의 항목으로

%% 표기를 사용하는 액션을 작동시키는 경우, Identify Results 대화창 또는 Attribute Table 대화창에서 응용 프로그램 또는 스크립트에 전달하려는 필드값을 오른쪽 클릭하십시오.

배시(bash) 및 echo 명령어를 이용해 (따라서 nix 또는 아마도 osx 에서만 동작할 겁니다) 벡터 레이어에서 데이터를 추출해서 파일로 삽입하는 또다른 예시가 있습니다. 이 레이어는 수종명 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 가 검색어입니다. 이 정보를 가지고 다음 단계로 넘어가겠습니다:

  1. lakes 레이어를 불러왔는지 확인합니다.

  2. 범례에 있는 레이어를 더블클릭하거나, 또는 오른쪽 클릭한 다음 컨텍스트 메뉴에서 Properties 를 선택해서 Layer Properties 대화창을 엽니다.

  3. Actions 탭을 클릭합니다.

  4. signPlus Add a new action 아이콘을 클릭합니다.

  5. Open 액션 유형을 선택합니다.

  6. 액션명을, 예를 들어 Google Search 를 입력합니다.

  7. Short Name, 또는 Icon 도 따로 추가할 수 있습니다.

  8. 액션의 Scope 를 선택하십시오. 더 자세한 내용은 액션 정의하기 를 참조하세요. 이 예시의 경우 기본 설정을 유지합니다.

  9. 액션이 실행할 외부 프로그램의 명칭을 지정해야 합니다. 이 경우, 파이어폭스를 이용하겠습니다. 이 프로그램이 사용자 경로에 없을 경우, 전체 경로를 입력해야 합니다.

  10. 외부 응용 프로그램 명칭 뒤에, 구글 검색 용 URL https://www.google.com/search?q= 를 추가합니다. 검색어는 포함시키지 않습니다.

  11. Action 란에 있는 텍스트가 이제 https://www.google.com/search?q= 여야 합니다.

  12. lakes 레이어의 필드명을 담고 있는 드롭다운 박스를 클릭합니다. Insert 버튼 바로 왼쪽에 있습니다.

  13. 드롭다운 박스에서 ‘NAMES’ 를 선택한 다음 Insert 를 클릭합니다.

  14. 이제 사용자 액션 텍스트가 다음과 같이 보일 겁니다:

    https://www.google.com/search?q=[%NAMES%]

  15. 액션 생성을 완료하고 추가하려면, OK 버튼을 클릭합니다.

../../../_images/add_action_edit.png

그림 14.57 예시 액션 환경을 설정한 액션 편집 대화창

이렇게 액션을 완성했습니다. 이제 사용할 준비가 끝났습니다. 최종 액션 텍스트는 다음과 같아야 합니다:

https://www.google.com/search?q=[%NAMES%]

이제 액션을 사용할 수 있습니다. Layer Properties 대화창을 닫은 다음 관심 지역으로 확대하십시오. lakes 레이어가 활성화돼 있는지 확인한 다음 호수를 식별하십시오. 식별 결과 창에 생성한 액션이 다음과 같이 추가된 것을 확인할 수 있습니다:

../../../_images/action_identifyaction.png

그림 14.58 객체 선택 및 액션 선택

이 액션을 클릭하면, 파이어폭스를 구동시켜 URL https://www.google.com/search?q=Tustumena 로 이동합니다. 이 액션에 더 많은 속성 필드를 추가할 수도 있습니다. 액션 텍스트 마지막에 + 를 추가하고, 또다른 필드를 선택한 다음 Insert Field 버튼을 클릭하면 됩니다. 그런데 이 예제에는 검색할 의미가 있는 다른 필드가 없네요.

레이어 하나에 액션을 여러 개 정의할 수 있고, 각각의 액션이 Identify Results 대화창에 표시될 겁니다.

속성 테이블에서 행을 하나 선택하고 오른쪽 클릭한 다음, 컨텍스트 메뉴에서 액션을 선택해서 액션을 작동시킬 수도 있습니다.

액션의 쓸모는 무궁무진합니다. 예를 들면, 이미지 또는 사진의 위치를 파일명과 함께 담고 있는 포인트 레이어가 있을 경우, 이미지를 표시할 뷰어를 실행시키는 액션을 생성할 수 있습니다. 또는 구글 검색 예제에서와 동일한 방법으로 설정해서 속성 필드 또는 필드 결합에 대한 웹 기반 보고를 수행하는 액션을 사용할 수도 있습니다.

훨씬 복잡한 예제도 만들어볼 수 있습니다. 예를 들어, 파이썬 액션을 이용해서 말이죠.

외부 응용 프로그램으로 파일을 여는 액션을 생성하는 경우 보통 절대 경로를 사용합니다만, 가끔 상대 경로를 쓰기도 하죠. 후자의 경우 외부 프로그램 실행 파일의 위치가 경로의 기준이 됩니다. 하지만 선택한 (Shapefile 또는 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 ] )

이 액션이 파이썬 유형 가운데 하나이며 commandimagerelpath 변수를 사용자 필요에 맞춰 변경해야 한다는 점만 기억하면 됩니다.

그런데 상대 경로의 기준이 (저장한) 프로젝트 파일 위치여야 하는 경우는 또 어떨까요? 이 경우 파이썬 액션의 코드는 다음처럼 변합니다:

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 ] )

파이썬 액션의 또다른 예시는 프로젝트에 새 레이어를 추가할 수 있게 해주는 액션입니다. 예를 들어, 다음 예시 코드들은 프로젝트에 각각 벡터와 래스터를 추가할 것입니다. 프로젝트에 추가되는 파일명 및 레이어에 할당되는 명칭은 데이터를 기반으로 합니다. (filenamelayername 은 액션이 작동한 벡터의 속성 테이블에 있는 열들의 명칭입니다.)

qgis.utils.iface.addVectorLayer('/yourpath/[% "filename" %].shp',
  '[% "layername" %]', 'ogr')

래스터를 (이 예제에서는 TIF 이미지를) 추가하려면 다음 코드를 사용합니다:

qgis.utils.iface.addRasterLayer('/yourpath/[% "filename" %].tif',
  '[% "layername" %]')

14.1.13. 표시 속성

display Display 탭에서 피처 식별에 사용되는 필드의 환경을 설정할 수 있습니다:

  • Display name: 필드 또는 표현식 을 기반으로 하는 표시명입니다:

    • 식별 도구 의 결과에서 피처 정보 최상단에 나타나는 라벨

    • 모든 레이어에서 피처를 찾을 때 위치 탐색란 에서 쓰이는 필드

    • 속성 테이블 양식 뷰 의 피처 식별자

    • 맵 또는 조판을 GeoPDF 같은 레이어화된 산출 포맷으로 내보내는 경우의 피처 식별자

    • 맵 도움말(map tip) 정보, 예를 들어 mapTips Show Map Tips 아이콘을 누른 상태에서 활성화된 레이어의 피처 위에 마우스를 가져갔을 때 맵 캔버스에 표시되는 메시지

  • HTML Map Tip 은 맵 도움말을 위해 특별히 생성됩니다. 이 도움말은 필드, 표현식, 그리고 HTML 태그(여러 줄, 글꼴, 이미지, 하이퍼링크 등등)을 섞은 더 복잡하고 풍성한 HTML 텍스트입니다.

../../../_images/display_html.png

그림 14.59 맵 도움말 용 HTML 코드

맵 도움말을 활성화하려면, View ► Show Map Tips 메뉴 옵션을 선택하거나 Attributes Toolbar 에 있는 mapTips Show Map Tips 아이콘을 클릭하십시오. 맵 도움말은 교차 세션(cross-session) 기능으로, 한 번 활성화시키면 다시 비활성화시키기 전까지는 계속 활성화 상태로 ─ 심지어 QGIS를 종료하고 다시 시작(새 세션)해도 ─ 모든 프로젝트의 모든 레이어에 적용된다는 뜻입니다.

../../../_images/map_tip.png

그림 14.60 HTML 코드로 생성된 맵 도움말

14.1.14. 렌더링 속성

14.1.14.1. 축척에 따른 가시성

Maximum (inclusive)Minimum (exclusive) 축척을 설정해서 피처가 보이게 될 축척 범위를 정의할 수 있습니다. 이 범위를 벗어나면, 피처를 숨깁니다. mapIdentification Set to current canvas scale 버튼을 클릭하면 현재 맵 캔버스의 축척을 가시성 범위의 한계값으로 설정할 수 있습니다. 자세한 내용은 축척에 따른 렌더링 을 참조하세요.

14.1.14.2. 도형 단순화

QGIS는 실시간 피처 단순화를 지원합니다. 이 기능은 소축척에서 여러 복잡 피처를 그릴 때 렌더링 시간을 단축시켜 줍니다. 레이어 설정에서 checkbox Simplify geometry 옵션으로 이 기능을 활성화하거나 비활성화할 수 있습니다. 새로 추가하는 레이어에 대해 기본적으로 단순화를 활성화시키는 전체 수준 설정도 있습니다. (자세한 정보는 전체 수준 단순화 를 참조하세요.)

../../../_images/simplify_rendering.png

그림 14.61 레이어 도형 단순화 대화창

참고

피처 단순화는 어떤 경우 사용자의 렌더링된 산출물에 오류를 남길 수도 있습니다. 폴리곤들 사이의 조각이거나, 오프셋 기반 심볼 레이어를 이용한 경우 부정확한 렌더링의 결과일 수도 있습니다.

극도로 세밀한 레이어(예: 수많은 노드를 지닌 폴리곤 레이어)를 렌더링하는 경우, 내보낸 파일에 수많은 노드가 전부 포함돼야 하기 때문에 조판기가 내보낸 PDF/SVG 포맷 파일의 용량이 터무니없이 커질 수도 있습니다. 또다른 프로그램에서 해당 파일을 열거나 편집할 때 아주 느려질 수도 있습니다.

checkbox Force layer to render as raster 를 활성화하면 이런 레이어를 강제로 래스터화해서 내보내기 파일이 해당 레이어가 담고 있는 모든 노드를 포함할 필요가 없도록 합니다. 따라서 렌더링 속도도 향상됩니다.

조판기에서 래스터로 내보내도록 강제해도 동일한 결과를 얻을 수 있지만, 이 방법은 모든 레이어를 래스터화하기 때문에 마지막 수단으로 남겨두어야 합니다.

Refresh layer at interval (seconds): 개별 레이어들을 자동으로, 일치하는 시간 간격으로 새로고침하도록 설정합니다. 하나 이상의 레이어에 자동 업데이트 간격을 설정한 경우 여러번 새로고침하지 않도록 캔버스 업데이트를 연기합니다.

데이터 제공자(예: PostgreSQL)에 따라, QGIS 외부에서 데이터소스에 변경 사항이 생겼을 경우 QGIS에 알림을 전송할 수 있습니다. checkbox Refresh layer on notification 옵션을 사용해서 업데이트를 촉발하십시오. 특정 메시지에만 레이어를 새로고침하도록 checkbox Only if message is 텍스트란에 메시지를 설정할 수도 있습니다.

14.1.15. 변수 속성

expression Variables 탭은 레이어 수준에서 쓸 수 있는 모든 변수들의 목록을 표시합니다. (전체 및 프로젝트 수준의 모든 변수를 포함합니다.)

또한 사용자가 레이어 수준 변수를 관리할 수도 있습니다. signPlus 버튼을 클릭해서 새 사용자 지정 레이어 수준 변수를 추가합니다. 마찬가지로, 목록에서 사용자 지정 레이어 수준 변수를 선택한 다음 signMinus 버튼을 클릭해서 제거합니다.

일반 도구 장의 값을 변수로 저장 절에서 변수에 관한 더 자세한 정보를 살펴볼 수 있습니다.

14.1.16. 메타데이터 속성

editMetadata Metadata 탭은 사용자 레이어에 대한 메타데이터 보고서를 생성하고 편집할 수 있는 옵션들을 제공합니다. 채워야 할 정보는 다음과 같습니다:

  • 데이터 Identification: 데이터의 기본 속성(페어런트, 식별자, 타이틀, 요약, 언어 등등)

  • 데이터가 속한 Categories: ISO 범주들과 함께 사용자 지정 범주도 추가할 수 있습니다.

  • Keywords: 데이터 및 관련 개념을 표준 어휘를 따라 검색하기 위한 키워드

  • Access: 데이터셋에 접근하기 위한 정보(라이선스, 권한, 비용 및 제약조건)

  • Extent: 데이터셋의 공간(좌표계, 맵 범위, 고도) 또는 시계열 범위

  • Contact: 데이터셋 소유자(들)의 정보

  • Links: 보조 리소스 및 관련 정보를 가리키는 링크

  • History: 데이터셋의 이력

Validation 탭에서 이렇게 채워진 정보를 요약해서 제공하며 양식과 관련된 잠재적인 문제점들을 식별할 수 있습니다. 그 다음 문제점을 해결하거나 무시할 수 있습니다.

메타데이터는 현재 프로젝트 파일에 저장됩니다. 메타데이터를 파일 기반 레이어와 함께 .qmd 파일로 저장할 수도 있고, 또는 원격 레이어(예: PostGIS)의 경우 로컬 .sqlite 데이터베이스에 저장할 수도 있습니다.

14.1.17. 의존성 속성

dependencies Dependencies 탭에서 레이어 사이의 데이터 의존성을 선언할 수 있습니다. 레이어에서 ─ 사용자가 직접 수정하지 않고 ─ 데이터가 수정되면 다른 레이어의 데이터가 수정될 수도 있는 경우 데이터 의존성이 발생합니다. 예를 들면 레이어의 도형을 수정한 후 데이터베이스 트리거 또는 사용자 지정 PyQGIS 스크립트 작업이 또다른 레이어의 도형을 업데이트하는 경우를 말합니다.

Dependencies 탭에서 현재 레이어의 데이터를 외부적으로 변경할 수도 있는 어떤 레이어도 선택할 수 있습니다. 의존 레이어를 정확하게 지정하면, 의존 레이어가 변경됐을 때 QGIS가 선택한 레이어의 캐시를 무효화할 수 있습니다.

14.1.18. 범례 속성

legend Legend 속성 탭은 레이어 패널 그리고/또는 인쇄 조판기 범례 를 위한, 다음과 같은 옵션을 포함하는 고급 설정을 제공합니다:

  • checkbox Text on symbols: 몇몇 경우 범례에 있는 심볼에 추가 정보를 추가하는 것이 유용할 수 있습니다. 이 프레임을 통해 레이어 심볼에서 사용되는 어떤 심볼이든, Layers 패널 및 인쇄 조판기 범례 양쪽에 있는 심볼 위에 텍스트를 표시하도록 할 수 있습니다. 테이블 위젯에 있는 심볼 옆에 텍스트를 입력하거나 Set Labels from Expression 버튼으로 테이블을 채우면 심볼과 텍스트를 매핑할 수 있습니다. Text Format 버튼의 글꼴 위젯과 색상 선택기 위젯을 통해 텍스트의 모양을 설정합니다.

../../../_images/text_legend_symbols.png

그림 14.62 심볼 위에 텍스트 설정(좌), Layers 패널에서 텍스트 렌더링 설정(우)

  • 레이어 패널에 있는 레이어 트리 안에 삽입할 수 있는 위젯 목록 가운데 위젯을 선택할 수 있습니다. 레이어 작업 시 자주 쓰이는 몇몇 액션(투명도, 필터링, 선택, 스타일, 기타 등등의 설정)에 빨리 접근하기 위한 방법으로 사용됩니다.

    QGIS가 기본적으로 투명도 위젯을 제공하고는 있지만, 자체 위젯을 등록하고 플러그인이 관리하는 레이어에 사용자 지정 액션을 할당하는 플러그인으로 위젯 목록을 확장할 수 있습니다.

14.1.19. QGIS 서버 속성

overlay QGIS Server 탭은 Description, Attribution, MetadataURL, 그리고 LegendUrl 부분으로 이루어져 있습니다.

Description 부분에서 요청에 있는 레이어를 참조하는 데 사용된 Short name 을 변경할 수 있습니다. (단축명에 대해 더 알고 싶다면, 레이어, 그룹 및 프로젝트를 위한 약칭 을 읽어보십시오.) 여기에서 레이어에 대한 TitleAbstract 를 추가하고 편집할 수 있고, Keyword list 를 정의할 수도 있습니다. 이 키워드 목록은 메타데이터 카탈로그에서 이용할 수 있습니다. XML 메타데이터 파일에서 제목을 사용하려 하는 경우, DataUrl 란에 링크를 입력해야 합니다.

XML 메타데이터 카탈로그에서 속성 데이터를 얻으려면 Attribution 부분을 이용하십시오.

MetadataUrl 부분에서 XML 메타데이터 카탈로그를 가리키는 일반 경로를 정의할 수 있습니다. 이 정보는 향후 세션을 위해 QGIS 프로젝트 파일에 저장되며, QGIS 서버에서 사용될 것입니다.

LegendUrl 부분에서는 URL 란에 범례 이미지의 URL을 입력할 수 있습니다. Format 드롭다운 옵션을 이용해서 해당 이미지의 적절한 포맷을 적용시키십시오. 현재 PNG, JPG 및 JPEG 이미지 포맷을 지원하고 있습니다.

../../../_images/vector_server_properties.png

그림 14.63 벡터 레이어 속성 대화창의 QGIS 서버 탭

QGIS 서버에 대해 더 알고 싶다면, QGIS 서버 지침서 을 읽어보십시오.

14.1.20. 디지타이즈 작업 속성

digitizing Digitizing 탭은 디지타이즈한 도형의 질을 보장하도록 하는 옵션들을 제공합니다.

../../../_images/vector_digitizing_properties.png

그림 14.64 벡터 레이어 속성 대화창의 QGIS 디지타이즈 작업 탭

14.1.20.1. 자동 수정

Automatic Fixes 부분의 옵션들은 추가 또는 수정되는 모든 도형의 꼭짓점에 직접 영향을 줍니다. checkbox Remove duplicate nodes 옵션을 체크하면, 바로 앞뒤에 위치하며 정확히 동일한 좌표를 가진 모든 두 꼭짓점을 제거할 것입니다. Geometry precision 을 설정하면, 모든 꼭짓점이 환경 설정한 도형 정밀도의 가장 가까운 배수로 반올림될 것입니다. 이 반올림은 레이어 좌표 참조 시스템에서 일어납니다. Z 및 M값은 반올림되지 않습니다. 디지타이즈 작업 도중 캔버스 상에 그리드가 여러 맵 도구들과 함께 나타납니다.

14.1.20.2. 도형 점검

Geometry checks 부분에서 도형별 기반으로 추가적인 유효성 확인 작업을 활성화시킬 수 있습니다. 어떤 도형이든 수정 직후 이 점검을 통과하지 못하는 경우 도형 유효성 확인 패널에 보고 메시지를 표시합니다. 점검을 통과하지 못하는 한, 레이어를 저장할 수는 없습니다. checkbox Is valid 옵션을 체크하면 도형에 대해 자체 교차 같은 기본 유효성 점검을 실행할 것입니다.

14.1.20.3. 위상 점검

Topology checks 부분에서 추가적인 위상 유효성 점검을 활성화시킬 수 있습니다. 사용자가 레이어를 저장할 때 위상 점검을 실행할 것입니다. 도형 유효성 확인 패널에 점검 오류 보고 메시지를 표시할 것입니다. 유효성 오류가 존재하는 한, 레이어를 저장할 수는 없습니다. 위상 점검은 수정한 피처의 경계상자 영역 안에서 실행됩니다. 동일한 영역에 다른 피처가 존재할 수도 있기 때문에, 현재 편집 세션에서 발생한 오류는 물론 이런 피처와 관련된 위상적 오류도 보고 메시지에 포함됩니다.

위상 점검 옵션

실제 예시

checkbox Gap: 인접한 폴리곤들 사이의 틈을 점검할 것입니다.

../../../_images/gapcheck.png

checkbox Overlap: 인접한 폴리곤들 사이의 중첩을 점검할 것입니다.

../../../_images/overlapcheck.png

checkbox Missing vertex: 인접한 폴리곤들이 경계선을 공유하는데 한쪽 경계에 있는 꼭짓점이 다른쪽 경계에 없는 경우 빠진 꼭짓점을 점검할 것입니다.

../../../_images/missingvertexcheck.png

틈 점검의 예외

틈만 없다면 폴리곤으로 완전히 덮히는 폴리곤 레이어의 영역 안에 있는 틈을 유지하는 것이 바람직한 경우가 종종 있습니다. 예를 들어 토지 이용 레이어는 호수를 나타내는, 받아들일 수 있는 구멍을 가지고 있을 수도 있습니다. 영역이 틈 점검에서 무시당하도록 정의할 수도 있습니다. 이런 영역 안에서는 틈이 허용되기 때문에, 이런 틈을 허용된 틈(Allowed Gap) 영역이라고 부르도록 하겠습니다.

Allowed Gaps 아래 있는 틈 점검을 위한 옵션에서, 허용된 틈 레이어(Allowed Gaps layer) 의 환경을 설정할 수 있습니다.

틈 점검을 실행할 때마다, 허용된 틈 레이어 에서 하나 또는 그 이상의 폴리곤으로 덮혀 있는 틈은 위상 오류로 보고되지 않습니다.

추가적인 Buffer 를 설정할 수도 있습니다. 이 버퍼는 허용된 틈 레이어 상의 각 폴리곤에 적용됩니다. 이렇게 버퍼를 설정하면 틈 경계의 외곽선을 자잘하게 변경하더라도 틈 점검이 민감하게 잡아내지 않도록 할 수 있습니다.

허용된 틈 을 활성화하면, 디지타이즈 도중 발생한 틈을 보고하는 도형 유효성 확인 도크(dock)에서 탐지된 틈 오류를 위한 추가 버튼(Add Allowed Gap)을 사용할 수 있습니다. Add Allowed Gap 버튼을 누르면, 허용된 틈 레이어 에 탐지된 틈의 도형을 가진 새 폴리곤을 삽입합니다. 이렇게 하면 한번에 틈을 허용할 수 있습니다.