14.3. 라벨 설정

라벨은 벡터 피처 또는 맵 위에 표시할 수 있는 텍스트 정보를 말합니다. 심볼로는 표현할 수 없는 세부 정보를 추가합니다. QGIS는 두 가지의 텍스트 관련 항목을 사용할 수 있습니다.

  • Text Format: 글꼴, 크기, 색상, 음영, 배경, 버퍼 등등 텍스트의 모양을 정의합니다.

    주로 글꼴 위젯을 통해, 맵 위에 놓일 텍스트(조판/맵 제목, 장식, 축척 막대 등등)를 렌더링하는 데 이런 옵션들을 사용할 수 있습니다.

    Text Format 항목을 생성하려면:

    1. styleManager Style Manager 대화창을 열고

    2. Text format 탭을 선택한 다음

      ../../../_images/stylemanager_textformat.png

      그림 14.21 스타일 관리자 대화창의 텍스트 서식

    3. symbologyAdd Add item 버튼을 클릭하면 됩니다. 환경 설정 을 위한 Text Format 대화창이 열립니다. 다른 속성과 마찬가지로, 이 속성들을 데이터 정의 할 수 있습니다.

  • Label Settings: 텍스트 서식 설정을 위치 또는 다른 텍스트 또는 피처와의 상호 작용과 관련된 속성(호출, 배치, 중첩, 축척에 따른 가시성, 마스크 등등)으로 확장합니다.

    이 속성들은 벡터 레이어 Layer Properties 대화창의 labelingSingle Labels 탭이나 Layer Styling 패널, 또는 라벨 툴바labelingSingle Layer Labeling Options 버튼을 통해 벡터 레이어를 위한 스마트 라벨 작업을 환경 설정하는 데 사용됩니다.

    Label Settings 항목을 생성하려면:

    1. styleManager Style Manager 대화창을 열고

    2. Label Settings 탭을 선택한 다음

      ../../../_images/stylemanager_labelsettings.png

      그림 14.22 스타일 관리자 대화창에서 라벨 설정

    3. symbologyAdd Add item 메뉴를 클릭하고 사용자가 라벨을 추가하려는 피처의 도형 유형에 해당하는 항목을 선택하십시오.

    다음과 같은 속성과 함께 Label Settings 대화창이 열립니다. 다른 속성과 마찬가지로, 이 속성들을 데이터 정의 할 수 있습니다.

14.3.1. 라벨 텍스트 서식 설정

Text Format 항목을 환경 설정하든 또는 Label Settings 항목을 환경 설정하든, 다음 옵션들을 설정하게 됩니다:

속성 탭

텍스트 서식

라벨 설정

Text

checkbox

checkbox

Formatting

checkbox

checkbox

Buffer

checkbox

checkbox

Mask

checkbox

Background

checkbox

checkbox

Shadow

checkbox

checkbox

Callout

checkbox

Placement

checkbox

Rendering

checkbox

14.3.1.1. 텍스트 탭

../../../_images/label_text.png

그림 14.23 라벨 설정 - 텍스트 탭

text Text 탭에서 다음 항목을 설정할 수 있습니다:

  • Font: 사용자 컴퓨터에서 사용할 수 있는 글꼴 가운데 선택할 수 있습니다.

  • Style: 일반적인 글꼴 스타일은 물론, 밑줄 또는 취소선도 설정할 수 있습니다.

  • Size: 텍스트의 크기를 모든 지원 단위 로 설정할 수 있습니다.

  • Color: 텍스트의 색상을 설정할 수 있습니다.

  • the Opacity: 텍스트의 불투명도를 설정할 수 있습니다.

  • Allow HTML Formatting: HTML 서식 옵션은 라벨을 사용자 지정하기 위해 몇몇 HTML 태그를 적절히 렌더링할 수 있게 해줍니다. 다음과 같은 HTML 태그를 지원합니다:

    • color(색상), applicable to text(텍스트에 적용 가능), underline(밑줄), strikethrough(취소선) 및 overline(윗줄)

    • 글꼴 속성 (글꼴 계열, 글꼴 크기, 굵은 글꼴 및 기울임 글꼴)

    HTML 서식을 이용하려면, Value 란에 HTML 코드를 입력해야 합니다. 표현식을 파싱하고, 지원하는 모든 HTML 태그는 라벨 속성에 있는 대응하는 설정을 무시합니다. 라벨의 다른 배경, 음영, 버퍼 등등의 속성과도 잘 결합합니다.

    다음은 (동일한 라벨에 서로 다른 색상 및 밑줄을 적용한) HTML 기반 표현식과 렌더링의 예시입니다:

    format(
      '<span style="color:blue">%1</span> ( <span style="color:red"><u>%2 ft</u></span> )',
      title( lower( "Name" ) ),
      round($length)
    )
    
    ../../../_images/label_HTML_formatting.png

    그림 14.24 HTML 서식을 활성화한 라벨 작업

탭 하단에 있는 위젯은 사용자의 스타일 관리자 데이터베이스 에 저장된 호환 가능한 항목들을 필터링 가능한 목록으로 보여줍니다. 이를 통해 기존 서식 또는 설정을 바탕으로 현재 텍스트 서식 또는 라벨 설정을 쉽게 환경 설정할 수 있고, 스타일 데이터베이스에 새 항목을 추가할 수도 있습니다. Save format… 또는 Save settings… 버튼을 누르고 이름 및 태그(들)를 입력하면 됩니다.

참고

Label Settings 항목을 환경 설정하는 이 위젯에서 텍스트 서식 항목도 설정할 수 있습니다. 항목을 선택하면 라벨의 현재 텍스트 속성 을 한번에 덮어씁니다. 마찬가지로 텍스트 서식을 생성하거나 덮어쓸 수 있습니다.

14.3.1.2. 서식 탭

../../../_images/label_formatting.png

그림 14.25 라벨 설정 - 서식 탭

labelformatting Formatting 탭에서 다음 항목을 설정할 수 있습니다:

  • 텍스트의 대소문자 스타일을 변경하려면 Type case 옵션을 사용하십시오. 텍스트를 다음과 같이 렌더링할 수 있습니다:

    • No change: 변경 사항 없음

    • All uppercase: 모두 대문자로 변경

    • All lowercase: 모두 소문자로 변경

    • Title case: 원본 텍스트가 대/소문자만 사용하는 경우, 각 단어의 첫 문자를 대문자로, 다른 문자들을 소문자로 조정합니다. 원본 텍스트가 대/소문자를 섞어 사용하는 경우, 첫 문자를 제외한 다른 문자들은 변경하지 않습니다.

    • Force first letter to capital: 텍스트의 각 단어의 첫 문자를 대문자로 변경하고, 다른 문자들은 변경하지 않습니다.

  • 단어들 사이의 여백, 개별 문자 사이의 여백을 변경하려면 Spacing 옵션을 사용하십시오.

  • Stretch 비율: 인자를 통해 텍스트를 수평 방향으로 늘리거나 좁힐 수 있습니다. 라벨에 약간의 추가적인 텍스트를 맞추기 위해 글꼴 너비를 정밀 조정하는 데 편리합니다.

  • checkbox Enable kerning: 텍스트 글꼴의 장식 꼬리(f, y 등 활자의 몸체에서 돌출한 부분)를 활성화합니다.

  • Text orientation: 텍스트의 방향을 Horizontal 수평 또는 Vertical 수직으로 설정할 수 있습니다. 라벨 설정 시 (예를 들어, 라인 피처를 평행 배치 모드로 적절히 라벨 작업하기 위해) Rotation-based 를 선택할 수도 있습니다.

  • 사용자 라벨이 밑에 있는 맵 객체와 어떻게 혼합될지 설정하려면 Blend mode 옵션을 사용하십시오. (자세한 내용은 혼합 모드 를 참조하세요.)

  • unchecked Apply label text substitutes: 이 옵션은 객체 수준에 따라 라벨 텍스트를 대체할 (예를 들어 도로 유형을 축약한다던지 하는) 텍스트 목록을 지정할 수 있습니다. 맵 상에 라벨을 표시할 때 대체 텍스트를 사용합니다. 대체 텍스트를 재사용하거나 쉽게 공유하기 위해 대체 텍스트 목록을 내보내거나 가져올 수도 있습니다.

  • Multiple lines 환경 설정:

    • Wrap on character 옵션을 통해 강제로 텍스트를 줄바꿈하는 문자를 정의할 수 있습니다.

    • Wrap lines to 옵션을 사용하면 자동 줄바꿈을 위한 이상적인 행 길이를 설정할 수 있습니다. 행 길이는 Maximum line length 또는 Minimum line length 가운데 하나로 표현할 수 있습니다.

    • Line Height 결정: 줄 높이 값을 Millimeters, Points, Pixels, Percentage, 또는 Inches 단위 가운데 하나로 설정할 수 있습니다. 줄 높이를 백분율로 설정하면, 해당 글꼴 계열의 기본 텍스트 줄 간격의 백분율을 의미합니다. 줄 높이는 일반적으로 텍스트 크기의 1.2에서 1.5배입니다.

    • Alignment 서식: 사용할 수 있는 전형적인 값은 Left 왼쪽 정렬, Right 오른쪽 정렬, Justify 양쪽 정렬, 그리고 Center 가운데 정렬입니다.

      포인트 라벨 속성을 설정할 때, Follow label placement 옵션을 선택하면 라벨 배치에 따라 텍스트를 정렬할 수도 있습니다. 이 경우, 포인트에 대한 라벨의 최종 배치에 따라 텍스트를 정렬할 것입니다. 예를 들어 라벨이 포인트 왼쪽에 위치한다면 라벨 텍스트를 오른쪽 정렬하고, 오른쪽에 위치한다면 왼쪽 정렬할 것입니다.

    참고

    곡선 기반 라벨 배치 는 아직 Multiple lines 서식을 지원하지 않습니다. 지원하게 될 때 이 옵션은 비활성화될 것입니다.

  • 라인 라벨의 경우 라인의 방향을 결정할 수 있는 Line direction symbolLeft 또는 Right 를 가리키는 심볼로 포함시킬 수 있습니다. Placement 탭에서 이 심볼을 Curved 또는 Parallel 배치 옵션과 함께 사용하면 더 좋습니다. 심볼 위치를 설정할 수 있는 옵션, 그리고 방향을 역전시킬 수 있는 Reverse direction 옵션도 존재합니다

  • 숫자 텍스트 서식을 설정하려면 Formatted numbers 옵션을 활성화시키십시오. Decimal places 를 통해 소수점 숫자 개수를 설정할 수 있습니다. 기본값은 소수점 이하 3 자리입니다. checkbox Show plus sign 을 활성화하면 양수 앞에 플러스 표시를 추가할 수 있습니다.

14.3.1.3. 버퍼 탭

../../../_images/label_buffer.png

그림 14.26 라벨 설정 - 버퍼 탭

라벨 주위에 버퍼(테두리)를 생성하려면, labelbuffer Buffer 탭에서 checkbox Draw text buffer 체크박스를 활성화하십시오. 다음을 설정할 수 있습니다:

  • Size: 버퍼의 크기를 모든 지원 단위 로 설정할 수 있습니다.

  • Color: 버퍼의 색상을 설정할 수 있습니다.

  • checkbox Color buffer’s fill: 버퍼는 라벨의 외곽선으로부터 바깥쪽으로 확장하기 때문에 이 옵션을 활성화하면 라벨 내부를 채웁니다. 라벨 텍스트 밑에 뭐가 있는지 볼 수 있게 해주는 투명도 값을 가진 라벨 또는 특수한 혼합 모드를 사용하고 있을 경우 이 채우기 옵션이 의미가 있을 수도 있습니다. 완전히 투명한 라벨을 사용하는 동안 이 체크박스를 비활성화시키면, 외곽선으로 표시된 텍스트 라벨을 생성할 수 있습니다.

  • Opacity: 버퍼의 투명도를 선택할 수 있습니다.

  • Pen join style 적용: Round 원호, Miter 직각 또는 Bevel 경사 가운데 하나를 선택할 수 있습니다.

  • 사용자 라벨의 버퍼가 밑에 있는 맵 객체와 어떻게 혼합될지 설정하려면 Blend mode 옵션을 사용하십시오. (자세한 내용은 혼합 모드 를 참조하세요.)

  • 고급 paintEffects 그리기 효과 를 추가하려면 unchecked Draw effects 옵션을 체크하십시오. 외곽 빛내기(glow)나 흐리기(blur) 등을 통해 텍스트 가독성을 향상시킬 수 있습니다.

14.3.1.4. 배경 탭

labelbackground Background 탭에서 각 라벨 밑에 위치한 형태를 환경 설정할 수 있습니다. 배경을 추가하려면, unchecked Draw Background 체크박스를 활성화한 다음 Shape 유형을 선택하십시오. 다음 가운데 하나를 선택할 수 있습니다:

  • Rectangle, Square, Circle 또는 Ellipse: 채우기 심볼 의 완전한 속성을 사용하는 직사각형, 정사각형, 원, 또는 타원 같은 정규 형태

  • SVG: 파일 또는 URL로 불러오는, 또는 프로젝트 또는 스타일 데이터베이스에 내장된 (자세한 내용은 내장 파일 선택기 참조) SVG 심볼

  • 심볼 라이브러리 에서 생성하거나 선택할 수 있는 Marker Symbol

../../../_images/label_background.png

그림 14.27 라벨 설정 - 배경 탭

선택한 형태에 따라 다음 속성 가운데 일부를 환경 설정해야 합니다:

  • Size type: 프레임의 크기 유형을 선택할 수 있습니다:

    • Fixed: 텍스트 크기에 상관없이 모든 라벨에 동일한 크기를 적용합니다.

    • Buffer: 또는 텍스트의 경계 상자 위에 버퍼를 적용합니다.

  • Size: 프레임의 크기를 X 및 Y 방향으로, 모든 지원 단위 로 설정합니다.

  • Rotation: 배경의 기울기를 Sync with label, Offset of label 그리고 Fixed 가운데 하나로 설정합니다. 뒤의 두 옵션은 도 단위로 각도를 지정해줘야 합니다.

  • Offset X,Y: 배경 항목을 X 그리고/또는 Y 방향으로 이동시킵니다.

  • Radius X,Y: 배경 형태의 모서리를 둥글게 만듭니다. (직사각형 및 정사각형 형태에만 적용할 수 있습니다.)

  • Opacity: 배경의 투명도를 설정할 수 있습니다.

  • Blend mode: 렌더링 시 배경과 다른 항목을 혼합할 수 있습니다. (혼합 모드 참조)

  • SVG 심볼의 경우, 기본 속성(Load symbol parameters)을 이용하거나 사용자 지정 Fill color, Stroke colorStroke width 를 설정할 수 있습니다.

  • unchecked Draw effects: 텍스트 가독성을 향상시키기 위한 고급 paintEffects 그리기 효과 를 추가할 수 있습니다.

14.3.1.5. 그림자 탭

../../../_images/label_shadow.png

그림 14.28 라벨 설정 - 음영 탭

텍스트에 그림자를 추가하려면, labelshadow Shadow 탭을 선택한 다음 checkbox Draw drop shadow 옵션을 활성화하십시오. 다음을 설정할 수 있습니다:

  • Draw under 옵션으로 그림자를 생성할 항목을 지정하십시오. Text 자체, Buffer 또는 Background 와 같은 특정 요소, 또는 Lowest label component 가운데 하나를 선택할 수 있습니다.

  • 그림자가 질 항목으로부터의 Offset 을 다음 가운데 설정하십시오:

    • 각도: 그림자가 질 각도를 기저 항목의 방향에 따라 시계 방향으로 설정합니다.

    • 그림자가 질 항목으로부터의 그림자 오프셋 거리를 설정합니다.

    • 오프셋 거리의 단위를 선택합니다.

    checkbox Use global shadow 체크박스를 체크하면, 각도의 영점이 라벨 항목의 방향을 따르지 않고 언제나 북쪽을 향하도록 고정됩니다.

  • Blur radius: 그림자의 모양을 조정할 수 있습니다. 사용자가 선택한 단위의 숫자를 높이면 그림자가 옅어집니다.

  • Opacity: 그림자의 투명도를 선택할 수 있습니다.

  • Scale 인자를 사용해서 그림자의 크기를 재조정할 수 있습니다.

  • Color: 그림자의 색상을 선택할 수 있습니다.

  • 사용자 라벨의 그림자가 밑에 있는 맵 객체와 어떻게 혼합될지 설정하려면 Blend mode 옵션을 사용하십시오. (자세한 내용은 혼합 모드 를 참조하세요.)

14.3.2. 라벨의 상호 작용을 환경 설정하기

앞에서 설명한 텍스트 서식 설정 이외에도, 라벨이 다른 라벨 또는 피처와 어떻게 상호 작용할지 설정할 수 있습니다.

14.3.2.1. 마스크 탭

labelmask Mask 탭에서 라벨 주위에 마스크 영역을 정의할 수 있습니다. 사용자가 심볼 및 라벨을 비슷한 색상으로 덮으면서 라벨이 잘 보이도록 하려 하는 경우 이 기능이 아주 유용합니다.

../../../_images/label_mask.png

그림 14.29 라벨 설정 - 마스크 탭 (텍스트 예시가 또다른 레이어가 제외되어 있음을 나타내는 녹색 배경을 보여주고 있습니다)

라벨에 마스크 효과를 생성하려면:

  1. labelmask 탭에서 checkbox Enable mask 체크박스를 활성화하십시오.

  2. 그러면 다음을 설정할 수 있습니다:

    • Size: 마스크의 크기를 지원 단위 로 설정할 수 있습니다.

    • Opacity: 라벨 주위의 마스크 영역의 투명도를 설정할 수 있습니다.

    • Pen Join Style

    • checkbox Draw effects 체크박스를 체크하면 그리기 효과 를 설정할 수 있습니다.

  3. 중첩하는 레이어의 속성 가운데 labelmask Mask 탭에서 이 마스크 형태를 마스크 소스로 선택하십시오. (마스크 속성 참조)

14.3.2.2. 호출 탭

복잡한 맵 위에 라벨을 배치할 때 흔히 호출(callout) 을 사용하곤 합니다. 관련 피처에서 떨어진 (또는 외부에 배치된) 라벨을 피처와 라벨을 연결하는 동적 라인으로 식별합니다. 두 종단점 가운데 하나를 (라벨 또는 피처 가운데 하나가) 이동시키면, 연결자(connector)의 형태를 다시 계산합니다.

../../../_images/label_callouts.png

그림 14.30 다양한 호출 설정을 가진 라벨

라벨에 호출을 추가하려면, labelcallout Callouts 탭을 선택한 다음 checkbox Draw callouts 옵션을 활성화하십시오. 다음을 설정할 수 있습니다:

  1. 연결자의 Style 을 다음 가운데 선택합니다:

    • Simple lines: 직선, 최단 경로

    • Manhattan style: 90° 꺾인 라인

    • Curved lines: 만곡 라인

    • Balloons: 라벨을 감싸고 피처를 가리키는 말풍선. 모서리를 둥글게 만들 수 있습니다.

  2. 라인 기반 호출의 경우:

    1. 레이어 효과 및 데이터 정의 설정을 포함한, 라인 심볼 의 완전한 성능을 가진 Line style 을 선택하십시오.

    2. 만곡 라인의 경우, 다음도 정의하십시오:

      • Curvature: 연결 라인의 곡률 (백분율)

      • 만곡 라인의 Orientation: 라벨에서 시작해서 피처로 향하는 라인의 방향은 시계 방향(Clockwise), 반시계 방향(Counter-clockwise), 또는 자동 방향(Automatic) 가운데 하나일 수 있습니다. (자동 방향은 각 라벨의 최적 방향으로 결정됩니다.)

    3. Minimum length: 호출 하인의 최단 길이를 설정합니다.

    4. checkbox Draw lines to all feature parts: 피처 라벨로부터 피처의 모든 부분으로 라인을 그릴지 여부를 선택합니다.

    5. Label anchor point: 연결자 라인이 라벨 텍스트의 어디에 결합할지 제어합니다. 다음 옵션 가운데 선택할 수 있습니다:

      • Closest point: 가장 가까운 포인트에 연결합니다.

      • Centroid: 중심점

      • 가장자리에 있는 고정 위치(Top left, Top center, Top right, Left middle, Right middle, Bottom left, Bottom center and Bottom right)에 연결합니다.

    6. Offset from label area: 이 옵션은 (호출 라인이 끝나는) 라벨 고정점으로부터의 거리를 제어할 수 있습니다. 텍스트에 밀착하는 호출 라인을 그리는 일을 피할 수 있습니다.

  3. 말풍선 호출의 경우, 다음을 설정해야 합니다:

    • Fill style: 레이어 효과 및 데이터 정의 설정을 포함한, 채우기 심볼 의 완전한 성능을 가진 채우기 스타일을 설정하십시오.

    • Corner radius: 말풍선 모서리의 둥글리기 반경을 설정하십시오.

    • Wedge width: 말풍선에서 피처를 가리키는 연결 부위를 얼마나 크게 만들어야 할지 설정하십시오.

    • Margins: 라벨 텍스트 주변에 적용할 여백을 설정하십시오.

  4. Offset from feature: 이 옵션은 호출 라인이 끝나는 지점에서 피처(또는 폴리곤인 경우 고정점(anchor point))로부터의 거리를 제어할 수 있습니다. 예를 들어 피처의 경계에 밀착하는 호출 라인을 그리는 일을 피할 수 있습니다.

  5. Feature anchor point: (폴리곤) 피처의 고정점을 (연결 라인의 종단점을) 설정하십시오. 다음 가운데 하나를 선택할 수 있습니다:

    • Pole of inaccessibility: 도달불능극

    • Point on exterior: 외곽 포인트

    • Point on surface: 표면 포인트

    • Centroid: 중심점

  6. Blend mode 를 설정하십시오. 호출의 혼합 모드 를 제어합니다.

Data defined placement 프레임에서, 호출의 (라벨 쪽) Origin 그리고/또는 (피처 쪽) Destination 포인트 좌표를 제어할 수 있습니다. 라벨 작업 툴바 에 있는 moveLabel Move Label, Diagram or Callout 도구로도 호출의 배치를 직접 제어할 수 있습니다. 이런 방법으로 각 호출의 시작점 및 종단점을 이동시킬 수 있습니다. 마우스 커서를 가까이 가져가면 노드가 강조될 것입니다. 필요한 경우, 호출을 이동시키는 동안 Shift 키를 누르고 있으면 두 호출 포인트 사이의 각도가 15도씩 늘어나는 방식으로 포인트를 스냅시킬 것입니다.

14.3.2.3. 배치 탭

라벨 배치 및 라벨 작업 순서를 환경 설정하려면 labelplacement Placement 탭을 선택하십시오. 포인트, 라인 또는 폴리곤과 같은 벡터 레이어 유형에 따라 배치 옵션이 달라지며, 이는 전체 수준 PAL 설정 의 영향을 받는다는 점을 기억하십시오.

포인트 레이어에서의 배치

사용할 수 있는 포인트 라벨 배치 모드는 다음과 같습니다:

  • Cartographic: 이상적인 지도 제작법의 배치 규칙을 따라 포인트 피처와 시각적으로 더 잘 어울리는 위치에 포인트 라벨을 생성합니다. 라벨을 다음과 같이 배치할 수 있습니다:

    • 포인트 피처 자체로부터 또는 (Distance offset from 옵션에서 설정하는) 피처를 표현하는 데 쓰인 심볼의 경계로부터 지원 단위 로 설정한 Distance 에 라벨을 배치할 수 있습니다. 심볼 크기가 고정되지 않은 경우, 예를 들어 데이터 정의 크기로 설정됐거나 또는 범주 렌더링 작업자에서 서로 다른 심볼을 사용하는 경우 심볼 경계를 기준으로 하는 옵션이 매우 유용합니다.

    • 우선 순위 위치의 데이터 정의 목록을 통해 개별 피처마다 사용자 정의 또는 설정할 수 있는 Position priority 옵션으로 배치할 수 있습니다. 이런 방법으로 특정 위치만 이용하도록 할 수도 있는데, 예를 들면 해안 피처의 경우 라벨이 육지 위로 올라오지 않도록 예방할 수 있습니다.

      기본적으로, 제도 제작법 모드 배치의 우선 순위는 (크리지어와 우드의 논문(Krygier and Wood, 2011)의 지침 및 다른 지도 제작법 교과서들을 따르는) 다음 순서대로 입니다:

      1. 우상단

      2. 좌상단

      3. 우하단

      4. 좌하단

      5. 우중단

      6. 좌중단

      7. 약간 우측으로 쏠린 상단

      8. 약간 좌측으로 쏠린 하단

  • Around Point: 라벨을 피처 주위의 (Distance 에서 설정하는) 동일 반경 원 안에 배치할 수 있습니다. 배치 우선 순위는 “우상단” 에서 시계 방향으로 내려갑니다. 데이터 정의 Quadrant 옵션을 이용하면 라벨의 배치를 더 제약할 수도 있습니다.

  • Offset from Point: 포인트 피처에서 다양한 단위의 Offset X,Y 거리에, 또는 가급적 피처 위로 라벨을 배치할 수 있습니다. 배치를 제약하기 위해 데이터 정의 Quadrant 옵션을 사용할 수 있고, 라벨에 Rotation 을 할당할 수 있습니다.

라인 레이어에서의 배치

라인 레이어 용 라벨 모드는 다음을 포함합니다:

  • Parallel: 피처를 표현하는 일반화된 라인에 평행하게 라벨을 그립니다. 라인 가운데 좀 더 직선에 가까운 부분 위로 들어가는 배치를 선호합니다. 다음을 정의할 수 있습니다:

    • Allowed positions: Above line, On line, Below lineLine orientation dependent position (라인의 좌측 또는 우측에 라벨 배치). 동시에 여러 옵션을 선택할 수 있습니다. 이런 경우, QGIS가 최적의 라벨 위치를 찾을 것입니다.

    • Distance: 라벨과 라인 사이의 거리

  • Curved: 라인 피처의 곡률에 따라 라벨을 그립니다. Parallel 모드에서 사용할 수 있는 파라미터는 물론, 라벨을 내부에 그릴지 또는 외부에 그릴지, 그리고 Maximum angle between curved characters polygon 을 통해 각 문자 사이의 최대 각도도 정의할 수 있습니다.

  • Horizontal: 라인 피처의 길이를 따라 라벨을 수평으로 그립니다.

../../../_images/line_label_placement.png

그림 14.31 라인 피처의 라벨 배치 예시

배치 모드 이외에도 다음을 설정할 수 있습니다:

  • Repeating Labels Distance: 피처의 길이에 걸쳐 라벨을 여러 번 표시합니다. 라벨 사이의 거리를 Millimeters, Points, Pixels, Meters at scale, Map UnitsInches 단위로 정의할 수 있습니다.

  • A Label Overrun Distance (수평 모드에서는 사용할 수 없음): 라인 피처의 종단(또는 시작)을 넘어 연장할 수 있는 라벨의 최대 허용 거리를 지정합니다. 이 값을 늘리면 짧은 라인 피처에 라벨을 표시할 수 있게 됩니다.

  • Label Anchoring: 라벨이 지시하는 라인 피처에서의 라벨의 배치를 제어합니다. Settings … 를 클릭하면 다음 가운데 선택할 수 있습니다:

    • 라벨이 가까이 배치될 라인에서의 위치를 (비율로) 선택합니다. 데이터 정의를 할 수 있으며, 선택할 수 있는 값은 다음과 같습니다:

      • labelAnchorCenter Center of Line

      • labelAnchorStart Start of Line

      • labelAnchorEnd End of Line

      • 또는 labelAnchorCustom Custom…

    • Clipping: 라인 상에서 라벨 배치를 어떻게 계산할지를 결정합니다. 기본적으로 라인의 가시 영역만 사용하지만, 좀 더 일관적인 결과를 내기 위해 전체 영역을 사용할 수도 있습니다.

    • Anchor text: 텍스트의 어느 (시작, 중앙, 또는 종단) 부분을 고정점에 정렬시킬지를 제어합니다. Automatic 앵커를 사용한다면:

      • 라인의 시작점에 가깝게 (0~25%) 고정된 라벨의 경우 라벨 텍스트의 시작 부분에 앵커를 배치할 것입니다.

      • 라인의 종단점에 가깝게 (75~100%) 고정된 라벨의 경우 라벨 텍스트의 종단 부분에 앵커를 배치할 것입니다.

      • 라인의 중앙에 가깝게 (25~75%) 고정된 라벨의 경우 라벨 텍스트의 중앙 부분에 앵커를 배치할 것입니다.

    • Placement Behavior: Preferred Placement Hint 를 사용해서 라벨 고정점을 라벨 배치를 위한 힌트 정도로만 취급할 수 있습니다. Strict 를 선택하면 라벨을 라벨 고정점에 정확히 배치합니다.

폴리곤 레이어에서의 배치

폴리곤의 라벨을 배치하는 데 다음 모드 가운데 하나를 선택할 수 있습니다:

../../../_images/polygon_label_placement.png

그림 14.32 폴리곤 피처의 라벨 배치 예시

  • Offset from Centroid: 라벨을 피처의 중심점에, 또는 피처의 중심점에서 (지원 단위 의) 고정 Offset X,Y 거리에 배치합니다. 맵 캔버스에 렌더링된 폴리곤의 부분을 기반으로 (visible polygon) 또는 사용자가 볼 수 있느냐에 상관 없이 폴리곤 전체를 기반으로 (whole polygon) 참조 중심점을 결정할 수 있습니다. 또한:

    • 중심점 포인트를 해당 폴리곤의 내부로 강제할 수 있고

    • 지정 사분면 내부에 라벨을 배치할 수 있으며

    • 기울기를 할당할 수 있습니다.

    • Allow placing labels outside of polygons: 라벨을 폴리곤 내부에 배치할 수 없는 경우 폴리곤 외부에 라벨을 배치합니다. 데이터 정의 속성 덕분에 외부 라벨을 허용할 수도, 방지할 수도, 또는 피처 별로 외부 라벨을 강제할 수도 있습니다.

  • Around Centroid: 중심점 주변으로 사전 설정한 거리 안에 라벨을 배치합니다. 정확히 중심점에 배치하는 것을 선호합니다. 역시, 중심을 visible polygon 또는 whole polygon 기반으로 정의할 수 있으며, 중심점 포인트를 폴리곤 내부로 강제할지 여부도 정의할 수 있습니다.

  • Horizontal: 폴리곤 내부의 최적 위치에 수평 라벨을 배치합니다. 폴리곤 경계에서 가장 먼 위치에 배치하는 것을 선호합니다. Allow placing labels outside of polygons 옵션으로 라벨을 폴리곤 외부에 배치할 수도 있습니다.

  • Free (Angled): 폴리곤 내부의 최적 위치에 기울인 라벨을 배치합니다. 기울기는 폴리곤의 방향을 따르며, 폴리곤 경계에서 가장 먼 위치에 배치하는 것을 선호합니다. Allow placing labels outside of polygons 옵션으로 라벨을 폴리곤 외부에 배치할 수도 있습니다.

  • Using Perimeter: 폴리곤 경계선을 표현하는 일반화된 라인에 평행하게 라벨을 그립니다. 경계선 가운데 좀 더 직선에 가까운 부분 위로 들어가는 배치를 선호합니다. 다음을 정의할 수 있습니다:

    • Allowed positions: Above line, On line, Below lineLine orientation dependent position (폴리곤 경계선의 좌측 또는 우측에 라벨 배치). 동시에 여러 옵션을 선택할 수 있습니다. 이런 경우, QGIS가 최적의 라벨 위치를 찾을 것입니다.

    • Distance: 라벨과 폴리곤 외곽선 사이의 거리

    • the Repeating Labels Distance: 경계선의 길이에 걸쳐 라벨을 여러 번 표시합니다.

  • Using Perimeter (Curved): 폴리곤 경계선의 곡률에 따라 라벨을 그립니다. Using Perimeter 모드에서 사용할 수 있는 파라미터는 물론, 라벨을 내부에 그릴지 또는 외부에 그릴지, 그리고 Maximum angle between curved characters polygon 을 통해 각 문자 사이의 최대 각도도 정의할 수 있습니다.

  • Outside Polygons: 항상 폴리곤의 외부의 설정한 Distance 에 라벨을 배치합니다.

공통 배치 설정

몇몇 라벨 배치 설정을 모든 레이어 도형 유형에 대해 사용할 수 있습니다:

도형 생성기

Geometry Generator 프레임에서, 사용자는 표현식 을 이용해서 라벨을 배치하고 렌더링하는 데 쓰이는 기저 도형을 수정할 수 있습니다. 도형을 동적으로 이동시키거나, 또다른 도형(유형)으로 변환시키는 데 유용할 수 있습니다.

도형 생성기를 사용하려면:

  1. checkbox Geometry generator 옵션을 체크하십시오.

  2. 도형 생성에 사용할 표현식을 입력하십시오.

  3. 관련이 있는 경우, 표현식이 산출할 도형 유형을 선택하십시오: 배치 또는 렌더링 같은 도형 기반 라벨 설정을 새로운 도형 유형의 케이퍼빌리티와 일치하도록 업데이트합니다.

다음은 몇몇 활용 사례입니다:

  • 또다른 필드인 “label_position” 에 저장되어 있는 도형을 사용

  • 라벨 작업에 심볼로부터 생성된 도형 도 사용

  • 확대/축소 수준과 상관없이 거리/크기를 계산하기 위해 @map_scale 변수를 사용

  • 만곡 배치 모드와 결합, 포인트 피처를 둘러싼 원호 라벨을 생성:

    exterior_ring(make_circle($geometry, 20))
    
  • 라인 피처의 시작점과 종단점에 라벨을 추가:

    collect_geometries( start_point($geometry), end_point($geometry) )
    
  • 라벨 배치를 위한 공간을 확보하기 위해 강을 나타내는 라인을 평활화:

    smooth( $geometry, iterations:=30, offset:=0.25, min_length:=10 )
    
데이터 정의

Data Defined 그룹은 라벨 배치에 대해 피처 별로 직접 제어할 수 있는 기능을 제공합니다. 데이터 정의는 라벨의 속성 또는 다음을 설정할 표현식에 의존적입니다:

  • XY 좌표

  • 앞에서 설정한 사용자 지정 위치에서의 텍스트 정렬:

    • Horizontal: Left, Center 또는 Right 가운데 하나를 선택할 수 있습니다.

    • Vertical: Bottom, Base, Half, Cap 또는 Top 가운데 하나를 선택할 수 있습니다.

  • Rotation: 텍스트를 기울일 수 있습니다. 라벨 기울기에 대해 서로 다른 (예: degrees, minutes of arc, turns) 단위를 정의할 수 있습니다. 라벨이 고정되어 있는지 여부에 상관없이 관련 필드에 기울기 값을 유지하고 라벨에 적용하고 싶다면 Preserve data rotation values 옵션을 체크하십시오. 이 옵션을 체크하지 않은 경우, 라벨을 고정 해제하면 기울기가 리셋되고 속성 테이블에서 기울기 값을 지웁니다.

    참고

    폴리곤 피처의 데이터 정의 기울기는 현재 Around centroid 배치 모드에서만 지원합니다.

참고

데이터 정의 라벨 배치를 위한 라벨 맵 도구(예: Rotate labelMove label 도구)와 함께 표현식을 사용할 수는 없습니다. 위젯이 해당 보조 저장소 필드 로 재설정될 것입니다.

우선 순위

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

우선 순위는 더 높은 가중치를 가진 방해물 피처 때문에 라벨이 누락되어도 될지 평가하는 데에도 쓰입니다.

방해물

어떤 맥락에서는 (예를 들어 라벨이 높은 밀도로 모여 있는 경우, 피처와 중첩하는 경우 등등) 라벨이 관계 없는 다른 피처를 중첩하는 위치에 배치될 수도 있습니다.

방해물이란 QGIS가 그 위로 다른 피처의 라벨 또는 도표를 배치하지 않도록 하는 피처를 말합니다. Obstacles 부분에서 이 기능을 제어할 수 있습니다:

  1. 레이어의 피처가 (동일 레이어에 있는 다른 피처의 항목을 포함한) 모든 라벨 및 도표의 방해물로서 동작해야 하는지 여부를 결정하려면 checkbox Features act as obstacles 옵션을 활성화하십시오.

    이 옵션 옆에 있는 dataDefine Data-defined override 제어를 이용하면, 방해물로 사용할 피처 하위 집합을 전체 레이어 대신 선택할 수 있습니다.

  2. 방해물의 가중치를 조정하려면 Settings 버튼을 사용하십시오.

    • 모든 잠재적인 방해물 피처에 대해 Obstacle weight 를 할당할 수 있습니다: 이 값보다 높은 배치 우선 순위를 가진 모든 라벨 또는 도표 는 방해물을 중첩할 수 있습니다. 이보다 낮은 우선 순위를 가진 라벨 또는 도표는, 다른 위치에 배치가 불가능한 경우, 누락될 것입니다.

      이 가중치도 데이터 정의할 수 있습니다. 즉 동일 레이어 안에서 특정 피처가 다른 피처보다 중첩될 가능성이 높게 만들 수 있습니다.

    • 폴리곤 레이어의 경우, 피처가 어떤 유형의 방해물인지 선택할 수 있습니다:

      • Over the feature’s interior: 폴리곤 내부에 라벨이 배치되지 않도록 합니다. (라벨을 완전히 폴리곤 바깥에 배치하거나 폴리곤 내부에 살짝만 걸치도록 배치하는 것을 선호합니다.)

      • Over the feature’s boundary: 폴리곤의 경계선을 가로질러 라벨이 배치되지 않도록 합니다. (라벨을 폴리곤 바깥에 또는 완전히 폴리곤 내부에 배치하는 것을 선호합니다.) 이 옵션은 피처가 전체 영역을 덮고 있는 (행정 구역, 범주 커버리지 등의) 레이어에 유용합니다. 이런 경우 피처 내부에 라벨을 배치해야 하고, 라벨이 피처들 사이의 경계선을 가로질러 배치되는 일을 피해야 더 보기에도 좋습니다.

14.3.2.4. 렌더링 탭

render Rendering 탭에서, 언제 라벨을 렌더링할 수 있는지 그리고 어떻게 다른 라벨 및 피처와 상호작용하는지를 조정할 수 있습니다.

라벨 옵션

Label options 에서는:

  • 축척에 따라 그리고 픽셀 크기에 따라 가시성을 설정할 수 있는 축척 기반Pixel size-based 옵션이 있습니다.

  • Label z-index 옵션은 라벨 렌더링 순서는 물론, 다른 레이어의 라벨과의 관계를 설정하는 것처럼 (데이터 정의 무시 표현식을 이용해서) 동일 레이어에 있는 다른 피처 라벨과의 관계성도 결정합니다. 더 낮은 Z 인덱스를 가진 (모든 레이어의) 라벨 위에 더 높은 Z 인덱스를 가진 라벨을 렌더링합니다.

    여기에, 라벨 2 개가 일치하는 Z 인덱스를 가지도록 논리가 수정됐을 경우:

    • 동일 레이어의 라벨인 경우, 더 큰 라벨 위에 더 작은 라벨을 그립니다.

    • 서로 다른 레이어의 라벨인 경우, 레이어 자체의 우선 순위(예를 들어 맵 범례에서의 순서)를 따릅니다.

    참고

    이 설정은 다른 레이어의 피처 아래에 라벨을 그리도록 하는 것이 아니라, 그저 모든 레이어의 피처 위에 라벨을 어떤 순서로 렌더링할지 제어할 뿐입니다.

  • Allow inferior fallback placements: QGIS는 기본적으로 라벨을 사용자 설정에 따라 최적의 위치에 렌더링하려 시도합니다. 이 모드를 체크하면, 예를 들어 만곡 라벨 텍스트를 맞추기에는 라인이 너무 짧아서 피처 중심 포인트 바로 위에 라벨을 수평으로 배치할 수도 있는 경우처럼, 다른 선택지가 없는 경우 피처를 더 보기 안 좋은 위치로 배치하게 할 수도 있습니다.

  • Show labelAlways Show 에서 데이터 정의 표현식을 이용하면, 어떤 라벨을 렌더링해야 하는지를 미세 조정할 수 있습니다.

  • Show upside-down labels: 라벨을 위아래로 뒤집어 표시할 수 있습니다. Never, When rotation defined 또는 Always 가운데 선택할 수 있습니다.

  • Overlapping labels 프레임에서는 레이어에 있는 피처에 대해 라벨이 겹쳐져도 되는지 여부를 그리고 각각의 라벨을 어떻게 처리해야 할지를 제어할 수 있습니다.

    • Never overlap: 라벨 일부가 누락되는 한이 있더라도 레이어의 라벨들을 절대로 겹치게 배치하지 않습니다.

    • Allow overlaps if required: 라벨을 다른 방식으로는 배치할 수 없는 경우, 겹치는 라벨을 렌더링합니다. 이 모드는 가능한 경우 라벨을 조금 덜 이상적인 위치로 이동시킬 것입니다. 예를 들어 라벨을 라인 또는 폴리곤의 중심으로부터 더 멀리 이동시켜 다른 라벨과 겹치지 않게 할 수 있다면, 그렇게 할 것입니다. 그러나 가능한 위치가 달리 없는 경우 라벨을 겹치게 렌더링합니다.

    • Allow overlaps without penalty: 한 라벨이 다른 라벨과 겹치거나 또는 가려도 아무 문제없습니다. 라벨을 좀 더 먼 위치로 이동시켜 서로 겹치지 않게 할 수 있더라도, 항상 최적의 배치를 (예를 들어 가장 중심에 가까운 배치를) 사용할 것입니다.

    겹치는 라벨과 차선의 배치를 둘 다 허용하면, 라벨이 레이어의 모든 피처에 표시되도록 보장할 것입니다… 가장 보기 좋은 렌더링이 아닐지라도 말이죠!

피처 옵션

Feature options 에서는:

  • 다중 부분 피처의 모든 부분에 라벨을 그리는 Label every part of a multi-part features 옵션을 선택할 수도 있고, Limit number of features to be labeled to 옵션을 선택해서 라벨을 그릴 피처의 개수를 제한할 수도 있습니다.

  • 라인 및 폴리곤 레이어 둘 다 라벨을 그릴 피처의 최소 크기를 설정할 수 있는 Suppress labeling of features smaller than 옵션을 제공합니다.

  • 폴리곤 피처의 경우, 라벨이 피처 내부에 완전히 들어가는지 여부를 바탕으로 표시할 라벨을 필터링할 수도 있습니다.

  • 라인 피처의 경우, Merge connected lines to avoid duplicate labels 옵션을 선택하면 배치 탭 에 있는 Distance 또는 Repeat 옵션과 결합해서 훨씬 보기 좋은 맵을 렌더링할 수 있습니다.