WMS는 원격 서버에서 호스팅되는 서비스입니다. 웹사이트와 비슷하게, 서버에 연결되어 있는 한 WMS에 접근할 수 있습니다. QGIS를 사용하면 사용자의 기존 맵에 직접 WMS를 불러올 수 있습니다.
예를 들면, 플러그인에 대한 강의에서 구글에서 새 래스터 이미지를 불러올 수 있었다는 사실을 기억하실 겁니다. 하지만 그건 1회용 전송이었습니다. 한번 이미지를 다운로드하면, 바뀌지 않는다는 뜻이죠. WMS는 사용자가 맵을 이동하거나 확대/축소할 경우 자동적으로 그 뷰를 새로 고치는 라이브 서비스라는 점이 다릅니다.
이 강의의 목표: WMS를 사용하고 그 한계를 이해하기.
이 실습에서 이 강의를 시작할 때 만들었던 기본 맵을 사용할 수도 있고, 새 맵을 시작해서 몇몇 기존 레이어를 불러올 수도 있습니다. 이번 예제의 경우, 새 맵을 시작하고 원래 places 와 landuse 레이어를 불러온 다음 다음과 같이 심볼을 조정하겠습니다.
새 맵에 해당 레이어들을 불러오거나, 기본 맵에서 이 레이어들만 보이도록 설정하십시오.
WMS 레이어를 추가하기 전에, 먼저 “실시간” 투영을 비활성화하십시오. 그러면 레이어들이 제대로 겹쳐지지 않을 수도 있지만 걱정하지 마십시오. 이후에 해결할 것입니다.
WMS 레이어를 추가하려면 다음 Add WMS Layer 버튼을 클릭하십시오.
강의 초반에 어떻게 SpatiaLite 데이터베이스에 접속했는지 떠올려보십시오. landuse, places, water 레이어들이 그 데이터베이스 안에 있었습니다. 해당 레이어들을 사용하기 위해 먼저 데이터베이스에 접속해야 했죠. WMS도 비슷합니다. 레이어가 원격 서버에 있다는 점만 빼면 말입니다.
WMS로의 새 연결을 생성하려면 New 버튼을 클릭하십시오.
계속하려면 WMS 주소가 필요합니다. 인터넷에는 사용 가능한 몇몇 무료 WMS 서버가 있습니다. 그 가운데 하나가 OpenStreetMap 데이터셋을 사용하는 terrestris 입니다.
이 WMS를 사용하려면, 현재 대화 창을 다음과 같이 설정하십시오.
Name 항목의 값이 terrestris 여야 합니다.
URL 항목의 값이 http://ows.terrestris.de/osm/service 여야 합니다.
OK 를 클릭하십시오. 새 WMS 서버가 목록에 나타날 것입니다.
Connect 를 클릭하십시오. 아래에 있는 목록에서 새 항목들을 볼 수 있을 것입니다.
해당 WMS 서버가 호스팅하고 있는 레이어들입니다.
OSM-WMS 레이어를 한 번 클릭하십시오. 해당 레이어의 Coordinate Reference System 을 표출할 것입니다.
여러분의 맵이 WGS 84 를 사용하지 않으므로, 선택할 수 있는 모든 CRS들을 보도록 합시다.
Change 버튼을 클릭하십시오. 표준 Coordinate Reference System Selector 대화 창이 나타납니다.
투영된 CRS가 필요하므로, WGS 84 / Psuedo Mercator 를 선택합시다.
:guilabel:`OK`를 클릭하십시오.
Add 를 클릭하면 사용자의 맵에 OSM-WMS 라는 명칭으로 새 레이어를 추가합니다.
Layers list 에서 해당 레이어를 클릭 & 드래그해서 목록의 맨 밑으로 옮기십시오.
사용자 레이어의 위치가 정확하지 않다는 사실을 알아차렸을 겁니다. “실시간” 투영을 비활성화했기 때문입니다. 이 기능을 다시 활성화하되, OSM-WMS 레이어와 동일한 투영체, 즉 WGS 84 / Pseudo Mercator 를 사용하도록 설정하겠습니다.
“실시간” 투영을 활성화하십시오.
(Project Properties 대화 창에 있는) CRS 탭에서, Filter 란에 pseudo 를 입력하십시오.
목록에서 WGS 84 / Pseudo Mercator 를 선택합니다.
:guilabel:`OK`를 클릭하십시오.
이제 Layers list 에 있는 사용자의 레이어 가운데 하나를 오른쪽 클릭하고 Zoom to layer extent 를 클릭합니다. 다음과 같이 Swellendam 지역을 볼 수 있을 것입니다.
어떻게 WMS 레이어의 도로와 사용자의 도로가 겹쳐지는지 살펴보십시오. 좋은 징조군요!
지금쯤이면 이 WMS 레이어가 실제로 많은 피처들을 담고 있다는 사실을 알아차렸을 겁니다. 도로, 강, 자연 보호 구역 등을 담고 있습니다. 더우기, 벡터로 이루어져 있는 것으로 보이지만 사용자가 심볼을 변경할 수 없는 래스터 같기도 합니다. 어째서일까요?
이것이 WMS가 작동하는 방식이기 때문입니다. 마치 종이 지도처럼, 사용자는 이 맵을 이미지로 받게 됩니다. 보통은 QGIS가 맵으로 렌더링하는 벡터 레이어를 이용합니다. 그러나 WMS를 사용하면, 이 벡터 레이어들이 WMS 서버 상에 있기 때문에 레이어를 맵으로 렌더링해서 사용자에게 이미지 형식으로 맵을 전송합니다. QGIS는 이 이미지를 표출할 수 있지만 그 심볼을 변경할 수는 없습니다. 모든 작업이 서버에서 이루어지기 때문입니다.
사용자가 심볼에 대해 걱정할 필요가 없다는 점에서 몇몇 강점이 있습니다. 능숙하게 설계된 WMS라면 이미 모든 작업이 이루어져 보기 좋은 맵을 전송하기 때문입니다.
다른 한 편으로는 사용자 마음에 들지 않아도 심볼을 변경할 수 없으며, WMS 서버에서 무언가를 변경하면 사용자 맵에서도 동일하게 변경됩니다. 때때로 WMS 스타일의 맵의 일부로서가 아니라 사용자에게 벡터 레이어를 개별적으로 전송하는 WFS(Web Feature Service)를 이용하는 편이 나은 이유입니다.
하지만 WMS에 대해서는 다음 상의에서 배울 것입니다. 그 전에, terrestris WMS 서버에서 다른 WMS 레이어를 추가해봅시다.
Layers list 에서 OSM-WSM 레이어를 비활성화하십시오.
http://196.33.85.22/cgi-bin/ZAF_CGS_Bedrock_Geology/wms URL을 이용해 “ZAF CGS 1M Bedrock Lithostratigraphy” WMS 서버를 추가하십시오.
맵 상에 BEDROCKGEOLOGY 레이어를 불러오십시오. (이전과 마찬가지로 Add WMS Layer 버튼을 이용합니다.) 사용자의 맵과 동일한 WGS 84 / World Mercator 투영체를 사용하도록 설정하는 것을 잊지 마십시오!
더 빠르게 불러오기 위해 Encoding 을 JPEG 으로, Tile size 옵션을 200 × 200 으로 설정할 수도 있습니다.
배경에서 필요도 없이 렌더링되는 일을 막기 위해 다른 모든 WMS 레이어를 비활성화하십시오.
http://ogc.gbif.org:80/wms URL을 이용해 “OGC” WMS 서버를 추가하십시오.
bluemarble 레이어를 추가합니다.
WMS를 이용하는 데 어려운 점 가운데 하나는 좋은 (무료) 서버를 찾는 일입니다.
Find a new WMS at spatineo.com (or elsewhere online). It must not have associated fees or restrictions, and must have coverage over the Swellendam study area.
WMS를 이용하는 데 필요한 것은 URL(그리고 어떤 형태의 설명이 있으면 좋습니다)뿐이라는 것을 기억하십시오.
WMS를 사용하면, 고정된 맵을 사용자의 기존 맵 데이터의 배경으로 추가할 수 있습니다.
이제 고정된 맵을 배경으로 추가해봤으니, (이전에 추가했던 다른 벡터 레이어 같은) 피처도 추가할 수 있다는 사실을 알면 기쁠 겁니다. WFS(Web Feature Service)를 이용하면 원격 서버에서 피처를 추가할 수 있습니다. 이것이 다음 강의의 주제입니다.