중요

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

10.1. 수업: WMS(Web Mapping Service)

WMS는 원격 서버에서 호스팅되는 서비스입니다. 웹사이트와 비슷하게, 서버에 연결되어 있는 한 WMS에 접근할 수 있습니다. QGIS를 사용하면 사용자의 기존 맵에 직접 WMS를 불러올 수 있습니다.

예를 들면, 플러그인에 대한 강의에서 구글에서 새 래스터 이미지를 불러올 수 있었다는 사실을 기억하실 겁니다. 하지만 그건 1회용 전송이었습니다. 한번 이미지를 다운로드하면, 바뀌지 않는다는 뜻이죠. WMS는 사용자가 맵을 이동하거나 확대/축소할 경우 자동적으로 그 뷰를 새로 고치는 실시간 서비스라는 점이 다릅니다.

이 수업의 목표: WMS를 사용하고 그 한계를 이해하기.

10.1.1. ★☆☆ 따라해보세요: WMS 레이어 불러오기

여러분은 이 예제를 위해 이 교재의 처음에서 만들었던 기본 맵을 사용해도 되고, 또는 새 맵을 시작해서 기존 레이어들을 몇 개 불러와도 됩니다. 이번에는 새 맵을 시작해서 원본 places, landuse, 그리고 protected_areas 레이어를 불러온 다음 심볼을 변경합니다:

../../../_images/new_map.png
  1. 새 맵에 이 레이어들을 불러오거나, 기본 맵에서 이 레이어들만 보이도록 설정하십시오.

  2. WMS 레이어를 추가하기 전에, “실시간(on-the-fly)” 투영을 비활성화시키십시오. (Project ► Properties… ► CRS 탭에서 No CRS (or unknown/non-Earth projection) 옵션을 체크하십시오.) 이렇게 하면 레이어들이 더 이상 제대로 중첩하지 않을 수도 있지만 걱정하지 마십시오. 나중에 수정할 것입니다.)

  3. WMS 레이어를 추가하려면, dataSourceManager 버튼을 클릭해서 Data Source Manager 대화창을 연 다음 addWmsLayer WMS/WMTS 탭을 선택하십시오.

    ../../../_images/datasourcemanager_wms.png

    이 교재를 시작할 때 SpatiaLite 또는 GeoPackage 데이터베이스에 어떻게 연결했는지 기억하십니까? landuse, buildings, 그리고 roads 레이어는 데이터베이스에 저장되어 있습니다. 이 레이어들을 사용하려면, 먼저 해당 데이터베이스를 연결해야 합니다. WMS를 사용하는 것도 비슷합니다. 레이어들이 원격 서버에 있다는 사실만 제외하면 말이죠.

  4. WMS로의 새 연결을 생성하려면 New 버튼을 클릭하십시오.

    계속하려면 WMS 주소가 필요할 것입니다. 인터넷 상에는 무료로 사용할 수 있는 WMS 서버들이 몇 개 존재합니다. 그중 하나가 OpenStreetMap 데이터셋을 사용해서 만들어진 terrestris 입니다.

  5. 이 WMS를 사용하려면, 현재 대화창을 다음과 같이 설정하십시오:

    ../../../_images/new_wms_connection.png
    • Name 필드의 값이 terrestris 여야 합니다.

    • URL 필드의 값이 https://ows.terrestris.de/osm/service 여야 합니다.

  6. OK 를 클릭하십시오. 새 WMS 서버가 목록에 나타날 것입니다.

    ../../../_images/new_connection_listed.png
  7. Connect 를 클릭하십시오. 아래에 있는 목록에서 새 항목들을 볼 수 있을 것입니다.

    ../../../_images/new_wms_entries.png

    이 항목들이 해당 WMS 서버가 호스팅하고 있는 레이어들입니다.

  8. OSM-WMS 레이어를 한 번 클릭하십시오. 사용 중인 기본 Coordinate Reference System 과 해당 데이터셋이 지원하는 좌표계들의 개수를 보게 될 것입니다:

    ../../../_images/osm_wms_selected.png

    여러분의 맵이 EPSG:4326 - WGS 84 를 사용하지 않기 때문에, 필요에 걸맞는 좌표계를 찾아봅시다.

    1. setProjectionSelect CRS 버튼을 클릭하십시오. 이 데이터와 함께 공개된 모든 좌표계를 보여주는 표준 Coordinate Reference System Selector 대화창이 열릴 것입니다.

    2. 우리는 투영 좌표계를 원하기 때문에, EPSG:3857WGS 84 / Pseudo-Mercator 를 선택합시다. 최상단에 있는 search Filter 위젯을 사용해도 됩니다.

      ../../../_images/pseudo_mercator_selected.png
      1. OK 를 클릭하십시오. 해당 항목과 연결된 좌표계가 변경됐습니다.

  9. Layer name 을 사용해서 프로젝트에 레이어를 불러오려면 Add 를 클릭하십시오. (기본값은 OpenStreetMap WMS - by terrestris 입니다.)

  10. 대화창이 자동으로 닫히지 않는 경우 Data Source Manager 대화창을 닫으십시오.

  11. Layers 패널에서 OpenStreetMap WMS 레이어를 목록 맨 아래로 클릭&드래그하십시오.

  12. 레이어들의 전체 뷰를 보려면 축소하십시오. 레이어들이 정확하게 배치되지 않았다는 사실을 (아프리카 서쪽에 있다는 사실을) 알 수 있을 것입니다. 그 이유는 “실시간” 투영을 비활성화시켰기 때문입니다.

    ../../../_images/reprojection_off.png
  13. OpenStreetMap WMS 레이어와 동일한, 즉 WGS 84 / Pseudo Mercator 투영체를 사용해서 재투영을 다시 활성화시켜봅시다.

    1. Project ► Properties… ► CRS 탭을 여십시오.

    2. No CRS (or unknown/non-Earth projection) 옵션을 체크 해제하십시오.

    3. 목록에서 WGS 84 / Pseudo Mercator 를 선택합니다.

      ../../../_images/enable_projection.png
    4. :guilabel:`OK`를 클릭하십시오.

  14. 이제 Layers 패널에서 여러분의 레이어들 가운데 하나를 오른쪽 클릭하고 Zoom to layer(s) 를 선택하십시오. Swellendam 지역을 보게 될 것입니다:

    ../../../_images/wms_result.png

WMS 레이어의 도로와 여러분의 도로가 어떻게 겹쳐지는지 살펴보십시오. 좋은 징조군요!

WMS의 본질과 한계

지금쯤이면 이 WMS 레이어가 실제로 많은 피처들을 담고 있다는 사실을 알아차렸을 겁니다. 도로, 강, 자연 보호 구역 등을 담고 있습니다. 더우기, 벡터로 이루어져 있는 것으로 보이지만 사용자가 심볼을 변경할 수 없는 래스터 같기도 합니다. 어째서일까요?

이것이 WMS가 작동하는 방식이기 때문입니다. 마치 종이 지도처럼, 사용자는 이 맵을 이미지로 받게 됩니다. 보통은 QGIS가 맵으로 렌더링하는 벡터 레이어를 이용합니다. 그러나 WMS를 사용하면, 이 벡터 레이어들이 WMS 서버 상에 있기 때문에 레이어를 맵으로 렌더링해서 사용자에게 이미지 형식으로 맵을 전송합니다. QGIS는 이 이미지를 표출할 수 있지만 그 심볼을 변경할 수는 없습니다. 모든 작업이 서버에서 이루어지기 때문입니다.

사용자가 심볼에 대해 걱정할 필요가 없다는 점에서 몇몇 장점이 있습니다. 능숙하게 설계된 WMS라면 이미 모든 작업이 이루어져 보기 좋은 맵을 전송하기 때문입니다.

다른 한 편으로는 사용자 마음에 들지 않아도 심볼을 변경할 수 없으며, WMS 서버에서 무언가를 변경하면 사용자 맵에서도 동일하게 변경됩니다. 때때로 WMS 스타일이 적용된 맵의 일부로써가 아니라 사용자에게 벡터 레이어를 개별적으로 전송하는 WFS(Web Feature Service)를 이용하는 편이 나은 이유입니다.

하지만 WFS에 대해서는 다음 수업에서 배울 것입니다. 그 전에, 또다른 WMS 레이어를 추가해봅시다.

10.1.2. ★☆☆ 혼자서 해보세요:

  1. https://maps.eatlas.org.au/maps/wms URL에 있는 eAtlas WMS 서버를 추가하십시오.

  2. World: Hillshading 레이어를 맵으로 불러오십시오.

  3. 이 레이어의 EncodingJPEG 으로 그리고 Tile size 옵션을 200 x 200 으로 설정하길 원할 수도 있습니다. 불러오기 시간이 더 빨라지기 때문입니다.

  4. 여러분의 맵이 다음과 같이 보여야 합니다(레이어들의 순서를 다시 정렬하고 몇몇 레이어에 투명도를 적용해야 할 수도 있습니다):

    ../../../_images/world_hillshading_result.png

10.1.3. ★★★ 혼자서 해보세요:

WMS를 이용하는 데 어려운 점 가운데 하나는 좋은 (무료) 서버를 찾는 일입니다.

  • directory.spatineo.com (또는 다른 온라인 안내 사이트)에서 새 WMS를 찾으십시오. 절대로 관련 비용 또는 제약이 있어서는 안 되며, Swellendam 연구 지역을 커버해야만 합니다.

    WMS를 이용하는 데 필요한 것은 URL뿐이라는 것을 (그리고 어떤 형태의 설명이 있으면 좋습니다) 기억하십시오.

10.1.4. ★★★ 혼자서 해보세요:

  • MapServer Demonstration Server 에서 bluemarble 레이어를 추가하십시오. 우리 연구 지역에 적합한 데이터셋인가요?

10.1.5. 결론

WMS를 사용하면, 고정된 맵을 사용자의 기존 맵 데이터의 배경으로 추가할 수 있습니다.

10.1.6. 더 읽어볼 거리

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

이제 고정된 맵을 배경으로 추가해봤으니, (이전에 추가했던 다른 벡터 레이어 같은) 피처도 추가할 수 있다는 사실을 알면 기쁠 겁니다. WFS(Web Feature Service)를 사용하면 원격 서버에서 피처를 추가할 수 있습니다. 이것이 다음 수업의 주제입니다.