심볼은 맵 상에 레이어를 시각적으로 표현하는 방법입니다. 공간 성격을 가지는 데이터를 표현하는 다른 방법들에 비해, GIS의 강점은 사용자가 작업하는 데이터의 역동적인 시각적 표현을 할 수 있다는 것입니다.
따라서 맵의 (개별 레이어의 심볼에 의존하는) 시각적 표현이 매우 중요합니다. 여러분이 생산한 맵의 최종 이용자는 맵이 나타내는 내용을 쉽게 알아볼 수 있어야 합니다. 마찬가지로 여러분이 작업할 때 데이터를 탐색할 수 있어야 하는데, 훌륭한 심볼이 큰 도움이 됩니다.
즉 적절한 심볼을 갖추는 일은 그냥 그러면 좋다 정도의 일이 아니라는 겁니다. 여러분이 GIS를 제대로 사용하려면, 사람들이 이용할 수 있는 맵과 정보를 생산하려면, 심볼이 필수적입니다.
이 강의의 목표: 벡터 레이어에 대해 사용자가 원하는 심볼을 생성하기.
레이어의 심볼을 변경하려면 해당 레이어의 Layer Properties 를 여십시오. 먼저 landuse 레이어의 색상을 바꿔봅시다.
레이어 목록에서 landuse 레이어를 오른쪽 클릭합니다.
메뉴에서 Properties 항목을 선택합니다.
주석
레이어 목록에서 레이어를 더블 클릭해도 레이어 속성에 접근할 수 있습니다.
Properties 창에서,
가장 왼쪽에 있는 Style 탭을 선택하십시오.
Color 레이블 옆에 있는 색상 선택 버튼을 클릭하십시오.
표준 색상 대화 창이 나타납니다.
회색을 선택한 다음 OK 를 클릭합니다.
다시 Layer Properties 창의 OK 를 클릭하면 레이어의 색상이 변경되는 것을 볼 수 있습니다.
색상만 제대로 바꿔도 맵이 괜찮아지지만, 레이어의 심볼에는 색상만 있는 것이 아닙니다. 이제 서로 다른 토지이용구역 사이의 라인을 제거해서 맵이 너무 조밀하게 보이지 않도록 해보겠습니다.
landuse 레이어의 Layer Properties 창을 엽니다.
Style 탭을 선택하면 이전과 같은 대화 창이 보일 것입니다. 하지만 이번에는 색상 변경 이상의 작업을 해보겠습니다.
Symbol Layers 패널에서 (필요하다면) Fill 드롭다운 메뉴를 펼친 다음 Simple fill 옵션을 선택하십시오.
Border style 드롭다운 메뉴를 클릭하십시오. 지금은 짧은 라인과 Solid Line 이라는 텍스트가 보일 겁니다.
이것을 No Pen 으로 바꾸십시오.
OK 를 클릭합니다.
이제 landuse 레이어의 구역 사이에 있던 라인들이 사라질 것입니다.
이제 water 레이어의 심볼을 변경해서 진한 파란색 외곽선이 보이도록 해보십시오.
rivers 레이어의 심볼을 변경해서 수로를 합리적으로 표현해보십시오.
가끔 레이어가 특정 축척에서 잘 맞지 않는다고 느껴질 때가 있습니다. 예를 들면 전 대륙을 담은 데이터셋은 상세함이 부족해서 마을 수준에서는 정확하지 않을 수도 있습니다. 이런 경우 부적절한 축척에서 해당 데이터셋을 숨기는 편이 좋습니다.
강의로 돌아와서, 소축척에서 건물을 보이지 않게 하려 한다고 가정합시다. 예를 들면 이 맵은...
... 별로 쓸모가 없습니다. 이 축척에서 건물을 식별하기란 거의 불가능합니다.
축척 기반 렌더링을 활성화하려면,
buildings 레이어의 Layer Properties 대화 창을 엽니다.
General 탭을 선택합니다.
Scale dependent visibility 라는 체크박스를 클릭해서 축척 기반 렌더링을 활성화합니다.
Minimum 값을 1:10,000 으로 변경합니다.
OK 를 클릭합니다.
그 결과 맵이 어떻게 변하는지 줌인/줌아웃해보십시오. buildings 레이어가 언제 사라지고 언제 나타나는지 아시겠습니까?
이제 레이어에서 단순한 심볼을 변경하는 방법을 알았으니, 다음으로 좀 더 복잡한 심볼을 생성해볼 차례입니다. QGIS에서는 심볼 레이어를 이용합니다.
( Symbol layers 패널에 있는 Simple fill 을 클릭해서) landuse 레이어의 심볼 속성 패널로 돌아가십시오.
이 예제의 현재 심볼에는 윤곽선이 없습니다. (즉 No Pen 경계선 스타일을 사용하고 있습니다.)
Symbol layers 패널에 있는 Fill 을 선택합니다. 그 다음 Add symbol layer 버튼을 클릭합니다.
대화 창이 다음과 같이 변할 것입니다.
(색상 등이 조금 다르게 나타날 수도 있지만 여러분이 곧 바꾸게 될 것입니다.)
이제 두 번째 심볼 레이어가 나타납니다. 단색이기 때문에, 당연히 이전 심볼 유형을 완전히 가리게 됩니다. 또 이 레이어는 Solid Line 경계선 스타일을 사용하는데, 당연히 이 심볼을 바꿔야 합니다.
주석
맵 레이어와 심볼 레이어를 착각하지 않는 것이 중요합니다. 맵 레이어는 맵에 로드된 벡터(또는 래스터)입니다. 심볼 레이어는 맵 레이어를 표현하는 데 쓰이는 심볼의 일부입니다. 이 강의에서는 착각하지 않도록 맵 레이어를 보통 그냥 레이어로 부르지만, 심볼 레이어는 언제나 심볼 레이어라고 부릅니다.
새 Simple Fill 레이어를 선택한 다음,
이전처럼 경계선 스타일을 No Pen 으로 설정합니다.
면 스타일을 다음과 같이 Solid 또는 No brush 이외의 것으로 변경합니다.
OK 를 클릭합니다. 이제 그 결과를 보고 필요한 대로 수정할 수 있습니다.
복수의 심볼 레이어를 추가한 다음 같은 방법으로 사용자 레이어에 필요한 텍스처 유형을 생성할 수 있습니다.
재미있죠! 그러나 실제 맵에 사용하기에는 색상이 너무 많을지도 모르겠군요...
필요한 경우 줌인해서, 앞에서 설명한 방업으로 buildings 레이어에 간단하지만 보기 쉬운 텍스처를 생성하는 작업을 잊지 마십시오.
서로 다른 맵 레이어를 렌더링할 때와 마찬가지로 심볼 레이어도 순차적으로 렌더링됩니다. 즉 하나의 심볼에 많은 심볼 레이어를 사용할 경우 기대하지 않은 결과가 나올 수도 있다는 이야기입니다.
(앞에서 설명한 방법대로) roads 레이어에 심볼 레이어를 추가합니다.
기본 라인의 Pen width 를 0.3 으로, 색상을 흰색으로 설정하고, Pen Style 드롭다운 메뉴에서 Dashed Line 을 선택합니다.
이 새로운, 맨 위의 레이어의 두께를 1.3 으로 설정하고, Solid Line 인지 확인합니다.
그러면 이렇게 보입니다.
이러려는 게 아니었는데 말이죠!
이런 일이 일어나지 않게 하려면, 심볼 레이어의 순서를 바꿔 서로 다른 심볼 레이어들이 렌더링 되는 순서를 조정해야 합니다.
심볼 레이어의 순서를 변경하려면, Symbol layers 패널에서 Line 레이어를 선택한 다음, 윈도우의 우하단에 있는 Advanced –> Symbol levels... 를 클릭하십시오. 다음과 같은 대화창이 나타날 것입니다.
Enable symbol levels 를 선택하면, 수준 수자를 입력해서 해당하는 각 심볼 레이어의 순서를 설정할 수 있습니다. 0은 맨 아래 레이어를 의미합니다.
이 경우 다음과 같이 순서를 반대로 조정합니다.
이렇게 하면 굵고 검은 선 위에 흰 점선이 렌더링됩니다.
OK 를 두 번 클릭해서 맵으로 돌아갑니다.
이제 맵이 다음과 같이 보이게 됩니다.
또 이제 도로들이 만나는 지점이 “합쳐져”, 어떤 도로가 다른 도로 위로 렌더링되지 않는다는 점도 살펴보십시오.
작업이 끝난 후 향후 다시 심볼을 변경하더라도 여러분의 작업을 잃어버리는 일이 없도록 심볼 자체를 저장하는 것도 잊지 마십시오. Layer Properties 대화 창의 Style 탭에 있는 Save Style ... 버튼을 클릭하면 현재 심볼 스타일을 저장할 수 있습니다. 보통 QGIS Layer Style File 형식으로 저장해야 합니다.
exercise_data/styles 디렉터리에 사용자 스타일을 저장하십시오. Load Style ... 버튼을 클릭하면 언제라도 이전에 저장했던 스타일을 로드할 수 있습니다. 저장하지 않은 스타일을 변경할 경우 해당 스타일을 잃어버리게 된다는 점을 기억하십시오.
roads 레이어의 모양을 다시 바꿔봅시다.
도로의 모양이 연한 노랑색의 가느다란 외곽선 안의 좁은 회색 라인으로 보일 것입니다. Advanced ‣ Symbol levels... 대화창에서 레이어 렌더링 순서를 바꿔야 할 수도 있다는 점을 기억하십시오.
심볼 수준을 (복수의 심볼을 갖춘 레이어 같은) 범주화된 레이어에도 적용할 수 있습니다. 아직 범주화에 대해서는 배우지 않았기 때문에, 지금은 범주화하지 않은 기본적인 데이터를 작업할 것입니다.
새 맵을 생성하고 roads 데이터셋만 추가하십시오.
exercise_data/styles 디렉터리에 있는 advanced_levels_demo.qml 스타일을 적용합니다.
Swellendam 지역으로 줌인합니다.
심볼 레이어를 이용해서 다음 그림처럼 레이어의 윤곽선이 서로 이어지도록 만드십시오.
면 색을 설정하거나 미리 정의된 패턴을 사용하는 것을 넘어, 완전히 다른 심볼 레이어 유형을 사용할 수 있습니다. 지금까지 사용했던 유형은 모두 단순한 채우기 유형이었습니다. 더 고급의 심볼 레이어 유형을 사용하면 사용자의 심볼을 마음대로 지정할 수 있습니다.
벡터의 각 (포인트, 라인, 폴리곤) 유형은 각각 고유한 심볼 레이어 유형 그룹을 갖추고 있습니다. 먼저 포인트에 사용할 수 있는 유형들을 살펴보겠습니다.
basic_map 프로젝트를 여십시오.
places 레이어의 심볼 속성을 변경합니다.
Symbol layers 패널에 있는 Simple marker 레이어를 선택한 다음, Symbol layer type 드롭다운 메뉴를 클릭하면 다양한 심볼 레이어 유형들을 선택할 수 있습니다.
사용할 수 있는 다양한 옵션들을 살펴보고, 사용자가 적합하다고 생각하는 스타일의 심볼을 선택하십시오.
고르기 힘든 경우, 둥근 Simple marker 를 선택한 다음 경계선은 흰색, 면색은 엷은 녹색, size 는 3,00 으로, Outline width 는 0.5 로 설정하십시오.
라인 데이터에 쓸 수 있는 다양한 옵션들을 보려면,
roads 레이어의 최상위 심볼 레이어 유형을 Marker line 으로 바꿉니다.
Symbol layers 패널에 있는 Simple marker 레이어를 선택합니다. 심볼 속성을 다음 대화 창과 일치하도록 변경합니다.
간격을 1,00 으로 바꿉니다.
스타일을 적용하기 전에 (앞에서 이용했던 Advanced –> Symbol levels 대화창을 통해) 심볼 레벨이 정확한지 확인하십시오.
스타일을 적용한 다음, 맵 상에 스타일이 어떻게 표현되는지 살펴보십시오. 이 심볼들은 도로를 따라 기울기가 바뀌지만, 언제나 그런 것은 아닙니다. 이는 어떤 목적에는 부합하지만, 다른 목적에는 아닐 수도 있습니다. 원한다면 해당 심볼 레이어를 원래대로 다시 바꿀 수 있습니다.
폴리곤 레이어에 쓸 수 있는 다양한 옵션들을 보려면,
이전과 마찬가지로 water 레이어의 심볼 레이어 유형을 바꿉니다.
목록에 있는 서로 다른 옵션들이 각각 어떤 작용을 하는지 살펴보십시오.
여러분이 어울린다고 생각하는 옵션을 하나 선택하십시오.
고르기 힘든 경우, Point pattern fill 을 선택하고, 다음 옵션을 적용합니다.
일반적인 Simple fill 로 새 심볼 레이어를 추가합니다.
아두운 파란색 경계선을 가진 동일한 밝은 파란색으로 변경합니다.
Move down 버튼을 이용해 Point pattern 심볼 레이어 아래로 이동시킵니다.
이제 water 레이어에 텍스처 심볼이 적용됐습니다. 이렇게 하면 사용자가 텍스처를 구성하는 개별 점들의 크기, 형태, 밀도를 마음대로 설정할 수 있습니다.
주석
이 예제를 하기 위해서는, 무료 벡터 편집 소프트웨어 Inkscape 가 설치되어 있어야 합니다.
Inkscape 프로그램을 실행하십시오.
다음 인터페이스를 보게 될 것입니다.
Corel 같은 다른 벡터 이미지 편집 프로그램을 사용해본 적이 있다면 이 화면이 익숙할 것입니다.
먼저 캔버스 크기를 작은 텍스처에 적당하도록 변경합니다.
메뉴에서 File ‣ Document Properties 항목을 클릭하십시오. Document Properties 대화 창이 나타날 것입니다.
Units 를 px 로 바꿉니다.
Width 와 Height 을 100 으로 바꿉니다.
변경이 끝났으면 대화 창을 닫습니다.
메뉴에서 View ‣ Zoom ‣ Page 항목을 클릭해서 여러분이 작업할 페이지를 보십시오.
Circle 도구를 선택한 다음,
페이지 위에서 클릭&드래그해서 타원을 그리십시오. 이 원을 그리려면, Ctrl 버튼을 누른 채 클릭&드래그하십시오.
방금 그린 원을 오른쪽 클릭해서 Fill and Stroke 옵션 대화창을 여십시오. 다음과 같이 원의 렌더링을 조정할 수 있습니다.
Fill 색상을 좀더 연한 청회색으로 변경합니다.
Stroke paint 탭에서 외곽선 색상을 더 진한 색으로 지정합니다.
마지막으로 Stroke style 탭에서 외곽선 너비를 줄입니다.
Pencil 도구를 사용해서 라인을 그리십시오.
선분을 시작하려면 한 번 클릭합니다. 선이 15도 간격으로 꺾이도록 하려면 키보드의 ctrl 자판을 누르고 있어야 합니다.
QGIS로 돌아와서,
You may also wish to update the svg layer’s border (see below):
Once you validate the dialog, features in landuse layer should now be covered by a set of symbols, showing a texture like the one on the following map. If textures are not visible, you may need to zoom in the map canvas or set in the layer properties a bigger Texture width.
서로 다른 레이어에 대한 심볼들을 변경하는 작업이 한 무리의 벡터 파일로 저장되었고, 맵도 판독 가능해졌습니다. 여러분이 작업에 익숙해진 것은 물론, 보기 좋은 맵이 되기까지 했군요!
전체 레이어의 심볼을 변경하는 작업은 유용하지만, 이 맵을 읽는 사람이 각 레이어 안에 담긴 정보에 접근할 수는 없습니다. 거리명은 무엇인가? 특정 지역이 속한 행정구역은 어디인가? 이 농장의 상대표면적은 얼마나 되나? 이 모든 정보가 아직 숨겨져 있습니다. 다음 강의에서 여러분이 만든 맵에 이런 데이터를 어떻게 표현하는지에 대해 설명하겠습니다.
주석
지금 여러분의 맵을 저장해야 할 때라는 건 잊지 않으셨죠?