중요

번역은 여러분이 참여할 수 있는 커뮤니티 활동입니다. 이 페이지는 현재 100.00% 번역되었습니다.

3.2. 수업: 라벨

어떤 객체에 대한 어떤 정보를 보이기 위해 맵에 라벨을 추가할 수 있습니다. 라벨은 어떤 벡터 레이어와도 연결될 수 있습니다. 이때 라벨의 내용은 해당 레이어의 속성 데이터를 따릅니다.

이 수업의 목표: 레이어에 유용하고 보기 좋은 라벨을 추가하기.

3.2.1. ★☆☆ 따라해보세요: 라벨 사용하기

먼저, GUI에 labelingSingle 버튼이 보이는지 확인하십시오:

  1. View ► Toolbars 메뉴 항목을 선택하십시오.

  2. Label Toolbar 항목 옆에 체크 표시가 되어 있는지 확인하십시오. 체크가 되어 있지 않은 경우, Label Toolbar 항목을 클릭해서 활성화시키십시오.

  3. Layers 패널에 있는 places 레이어를 클릭해서 강조되게 하십시오.

  4. labelingSingle 툴바 버튼을 클릭해서 Layer Styling 패널의 Labels 탭을 여십시오.

  5. No Labels 에서 labelingSingle Single Labels 로 전환하십시오.

    라벨에 속성에 있는 필드들 가운데 어떤 필드를 사용할 것인지 선택해야 합니다. 이전 수업에서, 이 목적에 가장 적합한 것은 name 필드라고 결론내렸죠.

  6. 값 목록에서 name 을 선택하십시오:

    ../../../_images/select_label_with.png
  7. Apply 를 클릭하십시오.

이제 맵 상에 다음과 같은 라벨이 보일 것입니다:

../../../_images/first_place_names.png

3.2.2. ★☆☆ 따라해보세요: 라벨 옵션 변경하기

이전 수업들에서 여러분의 맵을 위해 선택했던 스타일에 따라, 라벨 서식이 제대로 되어 있지 않거나, 라벨의 포인트 마커와 중첩하거나 또는 너무 멀리 떨어져 있을 수도 있습니다.

참고

앞에서는 Layer Styling 패널을 열기 위해 Label Toolbar 에 있는 labelingSingle 버튼을 사용했습니다. Symbology 와 마찬가지로, Layer Styling 패널과 Layer Properties 대화창 둘 다를 통해 동일한 라벨 옵션들을 사용할 수 있습니다. 여기에서는 Layer Properties 대화창을 사용할 것입니다.

  1. places 레이어를 더블 클릭해서 Layer Properties 대화창을 여십시오.

  2. labelingSingle Labels 탭을 선택하십시오.

  3. 왼쪽 옵션 목록에서 Text 를 선택한 다음, 다음과 같이 텍스트 서식 옵션을 변경하십시오:

    ../../../_images/label_formatting_options.png
  4. Apply 를 클릭하십시오.

    저 글꼴이 여러분에게 더 크고 더 익숙하게 보일 수도 있지만, 그 가독성은 아직도 어떤 레이어가 라벨 아래 렌더링되는지에 달려 있습니다. 이 문제를 해결하기 위해, Buffer 옵션을 살펴봅시다.

  5. 왼쪽 옵션 목록에서 Buffer 를 선택하십시오.

  6. Draw text buffer 옆의 체크박스를 체크한 다음, 다음과 같이 텍스트 서식 옵션을 변경하십시오:

    ../../../_images/buffer_options.png
  7. Apply 를 클릭하십시오.

    places 라벨에 색상 버퍼 또는 윤곽선이 추가되어 맵 상에서 더 잘 보이는 것을 알 수 있습니다:

    ../../../_images/buffer_results.png

    이제 라벨을 상응하는 포인트 마커에 맞춰 배치할 수 있습니다.

  8. 왼쪽 옵션 목록에서 Placement 를 선택하십시오.

  9. Around point 를 선택한 다음, Distance 의 값을 2.0 밀리미터로 변경하십시오:

    ../../../_images/offset_placement_settings.png
  10. Apply 를 클릭하십시오.

    이제 라벨이 포인트 마커와 중첩하지 않는다는 사실을 알 수 있습니다.

3.2.3. ★★☆ 따라해보세요: 레이어 심볼 대신 라벨 사용하기

많은 경우에, 포인트의 위치는 그리 구체적일 필요가 없습니다. 예를 들면 places 레이어의 포인트들 대부분은 도시(town) 또는 교외(suburb) 전체를 가리키기 때문에, 이런 피처들과 연관된 특정 포인트는 대축척 상에서 구체적이지 않습니다. 사실을 말하자면 포인트의 위치를 너무 구체적으로 지정하는 것은 맵을 읽는 사람들을 혼란시키는 경우가 많습니다.

다음과 같은 예를 들어봅시다. 세계 지도 상에서 유럽 연합을 나타내는 포인트가 폴란드 근처에 위치할 수도 있습니다. 이런 맵을 읽을 때 유럽 연합 이라는 라벨을 가진 포인트가 폴란드에 있다면 유럽 연합의 수도가 폴란드에 있다고 착각할 수 있습니다.

따라서 이런 종류의 오해를 피하기 위해 포인트 심볼을 비활성화하고 대신 라벨만을 보이게 하는 작업도 유용합니다.

QGIS에서는 라벨의 위치를 상응하는 포인트 바로 위로 변경해서 렌더링하는 방법을 사용할 수 있습니다.

  1. places 레이어의 Layer Properties 대화창에 있는 labelingSingle Labels 탭을 여십시오.

  2. 옵션 목록에서 Placement 옵션을 선택하십시오.

  3. Offset from point 버튼을 클릭하십시오.

    포인트 마커를 기준으로 라벨의 위치를 설정할 수 있는 Quadrant 옵션이 나타날 것입니다. 이 예제의 경우, 라벨의 중심을 포인트 마커기준으로 라벨의 위치를 설정할 수 있는 Quadrant 옵션이 나타날 것입니다. 이 예제의 경우, 라벨의 중심을 포인트 마커에 맞추고자 하기 때문에 사분면의 중심을 선택하십시오.

    ../../../_images/quadrant_offset_options.png
  4. 평소와 같이 레이어의 Symbology 를 편집해서 Marker 의 크기를 0.0 으로 설정, 포인트 심볼을 숨기십시오:

    ../../../_images/hide_point_marker.png
  5. Apply 를 클릭하면 맵이 다음과 같이 보일 것입니다:

    ../../../_images/hide_point_marker_results.png

여러분이 맵을 축소하는 경우, 대축척에서 중첩을 피하기 위해 라벨들 가운데 몇 개가 사라지는 것을 보게 될 것입니다. 포인트를 많이 가지고 있는 데이터셋을 처리할 때 이런 습성을 원할 경우도 있지만, 이 방식으로는 유용한 정보를 보지 못하게 될 수도 있습니다. 이런 경우를 처리할 수 있는 또다른 가능성이 존재합니다. 이에 대해서는 이 수업의 다른 예제에서 설명할 것입니다. 지금은 맵을 축소한 다음 툴바에 있는 showUnplacedLabel 버튼을 클릭하고 맵이 어떻게 변하는지 살펴보십시오.

3.2.4. ★★☆ 혼자서 해보세요: 라벨 사용자 정의하기

  • 포인트 마커를 사용하고 라벨 오프셋이 2.0 밀리미터가 되도록 라벨 및 심볼 설정을 리셋하십시오.

  • 맵 축척을 1:100000 로 설정하십시오. 상태 바에 있는 Scale 란에 이 숫자를 입력하면 됩니다. 여러분의 라벨이 이 축척에 적합하도록 수정하십시오.

3.2.5. ★★☆ 따라해보세요: 라인 라벨 작업하기

이제 라벨 작업을 어떻게 하는지 알게 됐지만, 또 다른 문제가 있습니다. 포인트와 폴리곤의 라벨 작업은 쉽습니다. 하지만 라인은 어떨까요? 라인 라벨을 포인트의 경우와 똑같이 작업하면, 다음과 같은 결과를 얻게 됩니다:

../../../_images/bad_street_labels.png

이제 roads 레이어의 라벨 서식을 수정해서 좀 더 이해하기 쉽게 만들어보겠습니다.

  1. places 레이어가 혼란을 주지 않도록 숨기십시오.

  2. 이전 places 레이어와 마찬가지로 roads 레이어의 labelingSingle Single Labels 를 활성화시키십시오.

  3. 라벨을 더 많이 볼 수 있도록 글꼴 Size10 으로 설정하십시오.

  4. Swellendam 도시 지역으로 확대하십시오.

  5. Labels 탭의 Placement 탭에서 다음 설정들을 선택하십시오:

    ../../../_images/street_label_settings.png

    텍스트 스타일 작업이 기본값을 사용하기 때문에 그 결과 라벨을 읽기가 힘들지도 모릅니다. TextColor 를 진한 회색 또는 검은색으로 설정하고 BufferColor 를 밝은 노란색으로 설정하십시오.

    축척에 따라 다르지만, 사용자 맵이 다음처럼 보일 것입니다.

    ../../../_images/street_label_formatted.png

    몇몇 도로 이름이 반복적으로 나타나는데, 반드시 필요하지는 않습니다. 이렇게 반복되지 않게 하려면:

  6. Layer Properties 대화창의 Labels 탭에서 Rendering 옵션을 선택한 다음 다음과 같이 Merge connected lines to avoid duplicate labels 를 선택하십시오:

    ../../../_images/merge_lines_option.png
  7. OK 를 클릭하십시오.

    알아차리기에는 너무 짧은 피처에 라벨이 붙는 일을 막기 위한 유용한 기능도 있습니다.

  8. 동일한 Rendering 패널에서, Suppress labeling of features smaller than … 의 값을 5.00 mm 로 설정한 다음 Apply 를 클릭해서 그 결과를 살펴보십시오.

    다른 Placement 설정들도 시험해보십시오. 앞에서 본 것처럼, 이 경우 Horizontal 옵션은 좋은 생각이 아닙니다. 따라서 대신 Curved 옵션을 사용해봅시다.

  9. Labels 탭의 Placement 패널에서 Curved 옵션을 선택하십시오.

결과는 다음과 같습니다:

../../../_images/final_street_labels.png

보면 알 수 있듯이, 이전에는 보이던 몇몇 라벨이 보이지 않게 되었습니다. 이런 라벨들이 이리저리 굽어지는 도로 라인들을 따라가면서도 가독성을 유지시키는 일이 어렵기 때문입니다. 다른 라벨들은 도로 사이에 떠 있다기보다 도로를 따라 굽어지기 때문에 더욱 유용합니다. 여러분은 어느 쪽이 더 유용한지 또는 어느 쪽이 더 보기 좋아 보이는지에 따라 이 옵션들 가운데 어떤 쪽을 사용할지를 결정할 수 있습니다.

3.2.6. ★★★ 따라해보세요: 데이터 정의 설정

  1. roads 레이어의 라벨을 비활성화시키십시오.

  2. places 레이어의 라벨을 다시 활성화시키십시오.

  3. openTable 버튼으로 places 레이어의 속성 테이블을 여십시오.

    현재 우리가 주목해야 할 필드 가 하나 있습니다 — 각 레코드 에 대해 도시 구역 유형을 정의하는 place 필드입니다. 이 데이터를 사용해서 라벨 스타일에 영향을 줄 수 있습니다.

  4. place 레이어의 Labels 패널에 있는 Text 패널로 가십시오.

  5. Style 아래 있는 기울임꼴 텍스트 버튼 옆에 있는 dataDefine 버튼을 클릭한 다음 Edit… 을 선택해서 Expression String Builder 를 여십시오:

    ../../../_images/expression_string_builder.png
  6. Fields and Values 아래에서 place 를 더블 클릭한 다음, All Unique 를 클릭하십시오. 이렇게 하면 이 레이어의 place 필드의 유일값들을 전부 목록화할 것입니다. 텍스트 편집기에 = 연산자를 추가하고 town 을 더블 클릭하십시오.

    아니면, 텍스트 편집기에 "place" = 'town' 을 직접 입력해도 됩니다.

  7. OK 버튼을 두 번 클릭하십시오:

    ../../../_images/expression_builder_settings.png

place 필드의 값이 town 인 모든 장소들의 라벨이 기울임꼴로 나타난 것을 볼 수 있습니다.

../../../_images/italic_label_result.png

3.2.7. ★★★ 혼자서 해보세요: 데이터 정의 설정 사용하기

참고

고급 라벨 작업 설정의 일부를 보여드리기 위해 조금 앞으로 뛰어넘겠습니다. 고급 수준에서는 여러분이 다음 내용을 이해한다고 가정합니다. 이해가 안 된다면 이 부분을 건너뛰어도 좋습니다. 필요한 내용을 학습한 후에 다시 시도해보십시오.

  1. places 레이어의 속성 테이블을 여십시오.

  2. toggleEditing 버튼을 클릭해서 편집 모드로 들어가십시오.

  3. newAttribute 버튼을 사용해서 새 열을 하나 추가하십시오.

  4. 새 열을 다음과 같이 환경설정합니다:

    ../../../_images/font_size_column.png
  5. 이 열을 사용해서 서로 다른 장소 유형에 대해 (place 필드에 있는 각각의 키에 대해) 각각 사용자 정의 글꼴 크기를 설정하십시오.

3.2.8. ★★★ 라벨 작업의 또다른 가능성

이 강의에서 모든 옵션을 설명할 수는 없지만, Label 탭에는 다른 유용한 기능들이 많이 있다는 사실을 기억하십시오. 축척 기반 렌더링을 설정하고 레이어에 있는 라벨들의 렌더링 우선 순위를 변경하며 레이어 속성을 사용해서 모든 라벨 옵션을 설정할 수 있습니다. (목적에 부합하는 속성 필드가 존재하는 경우) 라벨의 기울기, XY 위치, 기타 속성들까지 설정할 수 있고, 주 Layer Labeling Options 버튼 옆에 있는 도구들을 사용해서 이 속성들을 편집할 수도 있습니다:

labelingSingle showPinnedLabels pinLabels showHideLabels moveLabel rotateLabel changeLabelProperties

(필요한 속성 항목이 존재하고 여러분이 편집 모드일 경우 이 도구들이 활성화될 것입니다.)

여러분 마음대로 라벨 작업 시스템의 가능성을 탐색해보십시오.

3.2.9. 결론

이제 레이어 속성을 이용해서 동적인 라벨을 생성하는 방법을 배웠으니, 여러분의 맵을 더욱 유익하고 멋지게 만들 수 있게 됐습니다!

3.2.10. 다음은 무엇을 배우게 될까요?

이제 속성이 여러분의 맵에 어떻게 시각적인 변화를 줄 수 있는지 알게 됐으니, 객체들의 심볼 그 자체를 바꾸는 데 이용해보는 건 어떨까요? 이것이 바로 다음 수업의 주제입니다!