22. OGC / ISO 프로토콜 작업

OGC(Open Geospatial Consortium)는 전 세계 300여 개 이상의 기업, 정부 기관, 비영리 단체 및 연구소가 회원으로 참여하고 있는 국제 기구입니다. OGC 회원들은 지리공간 콘텐츠 및 서비스, GIS 데이터 공간 처리 및 교환을 위한 표준을 개발하고 구현하고 있습니다.

지리적 객체에 대한 기본 데이터 모델을 형성하면서, OGC는 상호 정보 교환이 가능한 위치 및 GIS를 비롯한 지리공간 기술에 대한 특정한 필요를 만족시키기 위해 수많은 사양을 개발해왔고, 개발하고 있습니다. https://www.ogc.org/ 사이트에서 더 자세한 정보를 찾아볼 수 있습니다.

QGIS가 지원하는 중요한 OGC 사양은 다음과 같습니다:

OGC 서비스는 서로 다른 GIS 구현 및 데이터소스 사이에 지리공간 데이터를 교환하기 위해 점점 더 많이 이용되고 있습니다. QGIS는 앞에서 소개한 사양들을 클라이언트로서, SFS 로서 (PostgreSQL/PostGIS 데이터 제공자의 지원을 통해, PostGIS 레이어 참조) 처리할 수 있습니다.

QGIS 서버, UMN MapServer 또는 GeoServer를 설치하고 웹 서버를 사용해서 WMS, WMTS, WFS, WFS-T 및 WCS 프로토콜을 통해 사용자의 맵과 데이터를 공유할 수도 있습니다.

22.1. WMS/WMTS 클라이언트

22.1.1. WMS 지원 개요

QGIS는 현재 WMS 1.1, 1.1.1 및 1.3을 알아듣는 WMS 클라이언트 역할을 할 수 있습니다. 특히, DEMIS 처럼 공개된 서버를 대상으로 검증했습니다.

WMS 서버는 클라이언트(예: QGIS)가 범위, 레이어 집합, 심볼화 스타일, 그리고 투명도를 지정해서 래스터 맵을 요청하면 그에 따라 동작합니다. WMS 서버가 요청을 받으면 서버의 로컬 데이터소스를 찾아보고, 맵을 래스터화한 다음, 클라이언트에게 래스터 포맷으로 전송합니다. QGIS의 경우, 이 포맷은 일반적으로 JPEG 또는 PNG 파일입니다.

일반적으로 WMS는 완전한 웹 서비스라기보다는 REST(Representational State Transfer) 서비스에 더 가깝습니다. 따라서, QGIS가 생성한 URL을 가져다 웹 브라우저에 입력하면 QGIS가 내부적으로 이용하는 이미지와 동일한 이미지를 받을 수 있습니다. 이 방법은 문제 해결에 유용합니다. 지금 시중에 여러 브랜드의 WMS 서버가 존재하는데, 모두 자신만의 방식으로 WMS 표준을 해석하고 있기 때문입니다.

사용자가 WMS 서버에 접근할 수 있는 URL을 알고 있고, 해당 서버로 쓸 만한 인터넷 연결이 가능하며, 서버가 HTTP를 데이터 전송 프로토콜이라고 이해하고 있는 경우, WMS 레이어를 매우 쉽게 추가할 수 있습니다.

또한, QGIS는 GetCapabilities 요청이 전송되지 않는 한 사용자의 WMS 응답(예: 이미지)을 24 시간 동안 캐시에 담아둘 것입니다. GetCapabilities 요청은 WMS 서버 기능을 받아오기 위해 WMS/WMTS 대화창에 있는 Connect 버튼을 누를 때마다 전송됩니다. 프로젝트를 불러오는 시간을 최적화하기 위한 자동 기능입니다. 프로젝트를 WMS 레이어와 함께 저장하는 경우, 24시간이 넘지 않은 한, 다음 번에 이 프로젝트를 열 때 캐시에서 대응하는 WMS 타일을 불러올 것입니다.

22.1.2. WMTS 지원 개요

QGIS는 WMTS 클라이언트 역할도 할 수 있습니다. WMTS란 지리공간 데이터의 타일셋을 배포하기 위한 OGC 표준입니다. WMTS는 WMS보다 더 빠르고 효율적으로 데이터를 배포할 수 있습니다. 왜냐하면 WMTS가 사전에 타일셋을 생성해놓기 때문에, 클라이언트가 타일셋의 전송만을 요청하지 생성을 요청하는 것이 아니기 때문입니다. 이에 반해 WMS 요청은 일반적으로 데이터의 생성 및 전송 둘 다 요구합니다. OGC 표준이 아닌 서비스 가운데 타일로 구성된 지리공간 데이터를 살펴볼 수 있는 잘 알려진 예시라면 역시 구글맵이겠죠.

사용자가 원할 수도 있는 수준에 가깝도록 데이터를 다양한 축척으로 표시하기 위해, WMTS 타일셋은 서로 다른 여러 축척 수준으로 생성되며, GIS 클라이언트가 요청하는 경우 사용할 수 있도록 준비됩니다.

다음 도표는 타일셋의 개념을 설명하고 있습니다:

../../../_images/concept_wmts.png

그림 22.1 WMTS 타일셋의 개념

QGIS는 키-값 쌍(Key-Value-Pairs; KVP) 및 RESTful을 통해 두 가지 유형의 WMTS 인터페이스를 지원합니다. 이 두 인터페이스는 서로 다르기 때문에, QGIS에서도 서로 다르게 설정해줘야 합니다.

  1. WMTS KVP 서비스에 접근하기 위해, QGIS 사용자는 WMS/WMTS 인터페이스를 열고 WMTS 타일 서비스의 URL에 다음과 같은 문자열을 추가해야만 합니다:

    "?SERVICE=WMTS&REQUEST=GetCapabilities"
    

    다음은 이런 주소 유형의 예시입니다:

    https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?service=WMTS&request=GetCapabilities
    

    이 WMTS에 있는 topo2 레이어를 검증하는 작업은 잘 진행됩니다. 이 문자열을 추가한다는 것은 WMS 웹 서비스 대신 WMTS 웹 서비스를 이용한다는 뜻입니다.

  2. RESTful WMTS 서비스는 다른 형태의, 복잡하지 않은 URL을 이용합니다. OGC가 추천하는 서식은 다음과 같습니다:

    {WMTSBaseURL}/1.0.0/WMTSCapabilities.xml
    

    이 서식으로 해당 URL이 RESTful 주소라는 사실을 알 수 있습니다. QGIS의 WMS 설정 양식에 있는 URL 란에 RESTful WMTS 주소를 추가하는 것만으로도 RESTful WMTS 웹서비스에 접근할 수 있습니다. 오스트리아의 기본도(basemap)의 경우, 이런 주소 유형의 예시는 다음과 같습니다:

    https://maps.wien.gv.at/basemap/1.0.0/WMTSCapabilities.xml
    

참고

지금도 WMS-C라는 구식 서비스를 몇 개 찾을 수 있습니다. 이 서비스는 WMTS와 매우 비슷합니다. (목적은 동일하지만 작동 방식이 약간 다릅니다.) WMTS 서비스를 관리하는 것과 동일한 방식으로 이 서비스를 관리할 수 있습니다. URL 끝에 ?tiled=true 문자열만 추가하면 됩니다. 이 서비스의 사양에 대해 더 알고 싶다면 타일 맵 서비스 사양 을 참조하세요.

사용자 입장에서는 WMTS와 WMS-C를 종종 헷갈릴 수도 있습니다.

22.1.3. WMS/WMTS 서버 선택하기

처음으로 QGIS에서 WMS/WMTS 기능을 사용하는 경우, 정의돼 있는 서버가 없을 겁니다.

그러면 사용자가 원하는 서버에 대해 연결을 생성해야 합니다:

  1. 다음 가운데 한 방법으로 Data Source Manager 대화창의 wms WMS/WMTS 탭으로 가십시오:

    • dataSourceManager Open Data Source Manager 버튼(또는 Ctrl+L 키)을 누른 다음 탭을 활성화합니다.

    • 레이어 관리 툴바에 있는 addWmsLayer Add WMS layer 버튼을 클릭합니다.

    • 또는 Layer ► Add Layer ► addWmsLayer Add WMS/WMTS Layer… 메뉴를 선택합니다.

  2. Layers 탭에서 New… 버튼을 누르십시오. Create a New WMS/WMTS Connection… 대화창이 열립니다.

    탐색기 패널 에서 wms WMS/WMTS 항목을 오른쪽 클릭한 다음 New Connection… 을 선택해도 Create a New WMS/WMTS Connection… 대화창이 열립니다.

  3. 이제 사용자가 원하는 WMS 서버에 연결하기 위한 파라미터를 다음에 나열한 순서대로 입력하십시오:

    ../../../_images/add_connection_wms.png

    그림 22.2 WMS 서버에 연결 생성하기

    • Name: 해당 연결을 위한 이름입니다. 사용자가 다른 WMS 서버와 구별할 수 있도록, Server Connections 드롭다운 목록에 이 이름을 추가할 것입니다.

    • URL: 데이터를 제공하는 서버의 URL입니다. 이 URL은 분해할 수 있는 호스트명 – 사용자가 텔넷 연결을 열거나 또는 호스트를 핑하기 위해 사용할 URL과 동일한, 예를 들면 기본 URL만 있는 서식이어야만 합니다. 예를 들어, 사용자 URL에 request=GetCapabilities 또는 version=1.0.0 같은 부가 문자열이 있어서는 안 됩니다.

    • Authentication (선택적): 저장된 환경 설정 또는 UsernamePassword 를 가진 기본 인증을 사용합니다.

      경고

      Authentication 탭에서 사용자명비밀번호 를 입력하면 연결 환경 설정에 보안되지 않은 인증 정보를 유지하게 됩니다. 예를 들면, 다른 사용자와 프로젝트 파일을 공유하는 경우, 이런 인증 정보가 노출될 것입니다. 따라서 인증 환경 설정 (Configurations 탭)에 사용자 인증 정보를 대신 저장하는 편이 좋습니다. 더 자세한 내용은 인증 시스템 을 참조하세요.

    • HTTP Referer

    • DPI-Mode: all, off, QGIS, UMNGeoServer 옵션 가운데 선택할 수 있습니다.

    • unchecked Ignore GetMap/GetTile/GetLegendGraphic URI reported in capabilities: 이 옵션을 체크하면, 위에 있는 URL 필드에서 지정한 URI를 사용합니다.

    • unchecked Ignore GetFeatureInfo URI reported in capabilities: 이 옵션을 체크하면, 위에 있는 URL 필드에서 지정한 URI를 사용합니다.

    • unchecked Ignore axis orientation (WMS 1.3/WMTS)

    • unchecked Ignore reported layer extents: (특히 데이터 범위보다 공간을 더 차지하는 심볼을 가진 WMS 서버의 경우) 래스터 레이어가 보고한 영역이 렌더링할 수 있는 실제 면적보다 작을 수도 있기 때문에, 이 옵션을 체크하면 래스터 레이어를 보고된 영역대로 잘라 레이어 경계선에 잘린 심볼을 산출하는 일을 피할 수 있습니다.

    • unchecked Invert axis orientation

    • unchecked Smooth pixmap transformation

  4. OK 를 클릭하십시오.

새 WMS/WMTS 서버 연결을 생성하고 나면, 향후 QGIS 세션을 위해 새 연결을 보존합니다.

인터넷에서 WMS 서비스를 받아올 수 있으려면 프록시 서버를 설정해야 하는 경우, 옵션에서 사용자 프록시 서버를 추가할 수 있습니다. Settings ► Options 메뉴를 선택하고 Network 탭을 선택하십시오. 이 탭에서 사용자의 프록시 설정을 추가한 다음 checkbox Use proxy for web access 옵션을 체크하면 프록시 서버를 활성화시킬 수 있습니다. Proxy type selectString 드롭다운 목록에서 올바른 프록시 유형을 선택했는지 확인해야 합니다.

22.1.4. WMS/WMTS 레이어 불러오기

사용자 파라미터를 성공적으로 입력하고 나면, Connect 버튼을 클릭해서 선택한 서버의 기능(capability)을 받아올 수 있습니다. 이 기능은 이미지 인코딩, 레이어, 레이어 스타일 그리고 투영체를 담고 있습니다. 네트워크 작업이기 때문에, WMS 서버에 연결된 사용자 네트워크의 품질에 따라 응답 속도가 달라집니다. WMS 서버에서 데이터를 다운로드하는 동안, 메인 QGIS 대화창 좌하단에 다운로드 진행 상태를 표시합니다.

사용자의 스크린이 이제 그림 22.3 과 비슷하게 보일 것입니다. 이 그림은 WMS 서버의 응답을 보여주고 있습니다.

../../../_images/connection_wms.png

그림 22.3 사용할 수 있는 레이어를 필터링해서 WMS 서버를 추가하는 대화창

대화창의 Layers 탭 상단에는 서버가 서비스하는 관련 이미지 스타일(들)을 가진 레이어들을 내장하고 있는 레이어 그룹들을 포함할 수 있는 트리 구조가 표시됩니다. 각 항목은 다음으로 식별됩니다:

  • ID

  • Name

  • Title

  • 그리고 Abstract

우상단에 있는 search 위젯을 사용해서 이 목록을 필터링할 수 있습니다.

이미지 인코딩

Image encoding 옵션은 클라이언트와 서버 둘 다 지원하는 이미지 포맷들을 표시합니다. 사용자의 이미지 정확도 요구 사항에 따라 하나를 선택하십시오.

이미지 인코딩

WMS 서버는 일반적으로 JPEG 또는 PNG 이미지 인코딩 가운데 하나를 선택할 수 있는 옵션을 제공하고 있습니다. JPEG은 손실 압축 포맷인 반면, PNG는 원시(raw) 래스터 데이터를 충실히 재현합니다.

WMS 데이터가 본질적으로 사진 같기를 기대하고, 그리고/또는 이미지 품질이 약간 떨어져도 괜찮다면 JPEG을 선택하십시오. PNG와 비교하면 데이터 전송 요구 사항이 일반적으로 1/5로 줄어듭니다.

원본 데이터를 정확히 재현하기를 원하고 데이터 전송 요구 사항이 늘어나도 괜찮다면 PNG를 선택하십시오.

옵션

대화창의 옵션 부분에서 WMS 요청을 환경 설정합니다. 다음을 정의할 수 있습니다:

  • WMS 요청을 여러 요청으로 나누기 위해 타일 크기를 설정하려는 경우 (예: 256x256) Tile size 에서 타일 크기를 설정할 수 있습니다.

  • Request step size: 타일 경계에서의 라벨 자르기 효과를 줄이기 원한다면, 이 단계 크기를 늘릴수록 요청은 커지고 타일 및 경계는 줄어들 것입니다. 기본값은 2,000입니다.

  • Maximum number of GetFeatureInfo results: 서버로부터 전송되는 GetFeatureInfo 산출물의 최대 개수를 설정할 수 있습니다.

  • WMS 서버의 케이퍼빌리티에 따라 각 WMS 레이어를 여러 개의 좌표계로 표현할 수 있습니다. 목록에서 WMS를 선택하면 웹 서버가 제공하는 기본 투영법을 가진 필드가 나타납니다. WMS 기본 투영법을 WMS 서버가 지원하는 또다른 좌표계로 대체하려면 setProjection Select CRS 위젯을 클릭하십시오.

    그림 10.3 과 비슷한 대화창이 뜰 것입니다. WMS 버전 대화창과 가장 다른 점은 WMS 서버가 지원하는 좌표계들만 표시될 것이라는 사실입니다.

  • 마지막으로 WMS 서버가 해당 기능을 지원하는 경우 checkbox Use contextual WMS Legend 옵션을 활성화할 수 있습니다. 이 옵션을 활성화하면 사용자의 현재 맵 뷰 범위에 관련이 있는 범례만 표시할 것입니다. 즉 사용자가 현재 맵에서 볼 수 없는 항목에 대한 범례 항목은 담지 않는다는 뜻입니다.

대화창의 하단에 있는 Layer name 텍스트 필드가 선택한 항목의 Title 을 표시합니다. 사용자 마음대로 이 제목을 변경할 수 있습니다. Add 버튼을 눌러 레이어(들)를 QGIS로 불러오면 Layers 패널에 이 이름이 나타날 것입니다.

한 번에 여러 레이어를 선택할 수 있지만, 레이어 하나 당 이미지 스타일 하나만 선택할 수 있습니다. 여러 레이어를 선택한 경우, WMS 서버에서 레이어들을 하나로 결합한 다음, 한 번에 단일 레이어를 QGIS로 전송합니다. 기본 이름은 원래 레이어 제목을 슬래시(/)로 구분한 목록입니다. 하지만 checkbox Load as separate layers 옵션을 선택해서 개별 레이어로 불러올 수도 있습니다.

레이어 정렬

Layer Order 탭은 현재 연결된 WMS 서버에서 사용할 수 있는 레이어들 가운데 선택한 레이어의 목록을 담고 있습니다.

WMS 서버는 레이어를 Layers 탭에 있는 목록의 순서대로, 목록의 맨 위에서 맨 아래 순서로 중첩시켜 렌더링합니다. 이 중첩 순서를 변경하고 싶다면, Layer Order 탭의 UpDown 버튼을 사용해서 목록 순서를 변경할 수 있습니다.

투명도

Layer Properties 에 있는 Global transparency 설정은 적용할 수 있는 경우라면 언제 어디서든 활성화돼 있도록 하드 코딩돼 있습니다.

22.1.5. 타일셋

WMTS (캐시된 WMS) 서비스를 이용할 때 서버가 제공하는 Tilesets 탭을 통해 타일셋을 탐색할 수 있습니다. 이 테이블은 타일 크기, 포맷, 그리고 지원하는 좌표계 같은 추가적인 정보 목록을 담고 있습니다.

# example of WMTS service

https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?service=WMTS&request=GetCapabilities

불러올 레이어를 선택하면, QGIS의 일반적인 래스터 렌더링 작업자 를 이용해서 스타일 작업을 할 수 있는 단일 밴드 부동소수점 유형의 래스터 레이어로 변환하는 해석 방법 을 적용할 수도 있습니다.

이 기능과 함께, View ► Panels (또는 kde Settings ► Panels) 메뉴 옵션을 클릭한 다음 Tile Scale Panel 을 선택하면 타일 축척 슬라이드 바를 이용할 수 있습니다. 이렇게 하면 타일 서버에서 사용할 수 있는 축척들을 도킹된 멋진 슬라이드 바를 통해 알 수 있습니다.

22.1.6. 식별 도구 이용하기

WMS 서버를 추가한 후에 그리고 WMS 서버에 쿼리 가능한 레이어가 있는 경우, identify Identify 도구를 사용해서 맵 캔버스 상에 있는 픽셀을 선택할 수 있습니다. 각 픽셀을 선택할 때마다 WMS 서버로 쿼리를 전송합니다. 쿼리 결과는 평문 텍스트로 반환됩니다. 이 텍스트의 서식은 어떤 WMS 서버와 연결 중이냐에 따라 달라집니다.

포맷 선택

서버가 여러 출력 포맷을 지원하는 경우, 식별 결과 대화창에 지원 포맷을 담은 콤보박스가 자동적으로 추가되며, 프로젝트에 레이어에 대해 선택한 포맷을 저장할 수도 있습니다.

GML 포맷 지원

identify Identify 도구는 WMS 서버 응답(GetFeatureInfo)을 GML 포맷으로 지원합니다. (현재 맥락의 QGIS GUI 내에서는 이 GML을 객체라고 부르겠습니다.) 서버가 “객체” 포맷을 지원하고 선택한 경우, 식별 도구의 결과는 일반 벡터 레이어에서 나온 벡터 객체입니다. 트리에서 단일 객체를 선택한 경우, 맵에서 해당 객체가 강조되며 클립보드로 복사해서 다른 벡터 레이어로 붙여넣을 수 있습니다. UMN 맵서버가 GetFeatureInfo 를 GML 포맷으로 지원하도록 설정하는 다음 예시를 참조하세요.

# in layer METADATA add which fields should be included and define geometry (example):

"gml_include_items"   "all"
"ows_geometries"      "mygeom"
"ows_mygeom_type"     "polygon"

# Then there are two possibilities/formats available, see a) and b):

# a) basic (output is generated by Mapserver and does not contain XSD)
# in WEB METADATA define formats (example):
"wms_getfeatureinfo_formatlist" "application/vnd.ogc.gml,text/html"

# b) using OGR (output is generated by OGR, it is sent as multipart and contains XSD)
# in MAP define OUTPUTFORMAT (example):
OUTPUTFORMAT
    NAME "OGRGML"
    MIMETYPE "ogr/gml"
    DRIVER "OGR/GML"
    FORMATOPTION "FORM=multipart"
END

# in WEB METADATA define formats (example):
"wms_getfeatureinfo_formatlist" "OGRGML,text/html"

22.1.7. 속성 살펴보기

WMS 서버를 추가하고 나면, 범례에서 서버를 오른쪽 클릭하고 Properties 메뉴 항목을 선택하면 서버 속성을 살펴볼 수 있습니다. WMS/WMTS 레이어 속성은 래스터 레이어 속성과 꽤 비슷하기 때문에 래스터 속성 대화창 에서 자세한 설명을 찾아 볼 수 있습니다. 하지만 몇몇 차이점이 존재하는데, 이를 이제부터 설명할 것입니다.

22.1.7.1. 정보 속성

메타데이터 탭

Metadata 탭은 WMS 서버에 관한 풍부한 정보를 표시합니다. 일반적으로 해당 서버가 반환한 기능 선언문에서 수집한 정보입니다. WMS 표준 사양(참고 문헌 및 웹사이트 에 있는 OPEN-GEOSPATIAL-CONSORTIUM을 참조하세요)을 읽어보면 많은 정의들을 얻을 수 있지만, 사용자의 편의를 위해 다음 정의들을 모아봤습니다:

  • 서버 속성

    • WMS Version ─ 서버가 지원하는 WMS 버전입니다.

    • Image Formats ─ 맵 렌더링 시 서버가 응답할 수 있는 MIME 유형의 목록입니다. QGIS는 기저 Qt 라이브러리와 함께 빌드된 어떤 포맷이든 지원하고 있습니다. 일반적으로, 최소한 image/pngimage/jpeg 유형은 지원합니다.

    • Identity Formats ─ 식별 도구 사용 시 서버가 응답할 수 있는 MIME 유형의 목록입니다. QGIS는 현재 text-plain 유형을 지원하고 있습니다.

  • 레이어 속성

    • Selected ─ 현재 프로젝트에 서버를 추가했을 때 현재 레이어를 선택했는지 여부를 결정합니다.

    • Visible ─ 범례에 현재 레이어를 가시화하도록 선택했는지 여부를 결정합니다. (QGIS 현재 버전에서는 아직 사용되지 않습니다.)

    • Can Identify ─ 현재 레이어에 식별 도구를 사용했을 때 레이어가 어떤 결과든 반환할 것인지 여부를 결정합니다.

    • Can be Transparent ─ 현재 레이어를 투명도를 적용해서 렌더링할 수 있는지 여부를 결정합니다. 이 속성이 Yes 이고 이미지 인코딩이 투명도를 지원하는 경우 QGIS 현재 버전은 언제나 투명도를 적용할 것입니다.

    • Can Zoom In ─ 서버가 현재 레이어를 확대할 수 있는지 여부를 결정합니다. QGIS 현재 버전은 모든 WMS 레이어의 이 속성이 Yes 로 설정돼 있다고 가정합니다. 이 속성이 No 인 레이어는 이상하게 렌더링될 수도 있습니다.

    • Cascade Count ─ WMS 서버는 레이어를 위한 래스터 데이터를 얻기 위해 다른 WMS 서버에 대한 프록시 역할을 할 수 있습니다. 이 속성은 피어 WMS 서버가 반환하기 전에 현재 레이어에 대한 요청을 몇 번이나 포워딩했는지를 알려줍니다.

    • Fixed Width, Fixed Height ─ 현재 레이어가 고정된 소스 픽셀 크기를 가지고 있는지 여부를 결정합니다. QGIS 현재 버전은 모든 WMS 레이어의 이 속성이 설정돼 있지 않다고 가정합니다. 설정돼 있는 레이어는 이상하게 렌더링될 수도 있습니다.

    • WGS 84 Bounding Box ─ 레이어의 WGS 84 좌표가 적용된 경계 상자입니다. 일부 WMS 서버에서는 이 속성이 올바로 설정돼 있지 않습니다. (예를 들면 UTM 좌표를 대신 적용한 경우가 있습니다.) 만약 이런 경우라면, QGIS가 해당 레이어의 초기 뷰를 굉장히 ‘축소된’ 모습으로 렌더링할 수도 있습니다. 이런 오류는 WMS 웹마스터에게 반드시 알려야 합니다. WMS XML 항목 가운데 LatLonBoundingBox, EX_GeographicBoundingBox 또는 CRS:84 BoundingBox 가 문제일 수 있습니다.

    • Available in CRS ─ WMS 서버가 현재 레이어를 렌더링할 수 있는 투영체를 결정합니다. 이 투영체들은 WMS 고유 서식으로 정리돼 있습니다.

    • Available in style ─ WMS 서버가 현재 레이어를 렌더링할 수 있는 이미지 스타일을 결정합니다.

22.1.7.2. 시계열 속성

WMS 및 WMTS 레이어에 래스터 시계열 속성 을 (즉 Dynamic Temporal Control 을) 설정할 수 있습니다. 기본적으로 프로젝트에 시간 차원을 활성화한 WMS 또는 WMTS 레이어를 추가하는 경우, Layers 패널의 해당 레이어 옆에 indicatorTemporal Temporal Layer 아이콘을 표시해서 시간 차원이 활성화됐다는 사실을 나타냅니다. 이 레이어의 Temporal 속성의 기본값은 Automatic 시계열 모드로, 레이어가 기본적으로 시계열 제어기의 현재 시간 범위를 따를 것이라는 뜻입니다.

그리고 레이어의 특정 정적 시간값을 표시하도록 선택하려면 Dynamic Temporal Control 옵션을 체크 해제하고 Static WMS-T Temporal Range 프레임에서 다음 옵션 가운데 하나를 선택하면 됩니다:

  • Server default: 서버 기본 시간 범위를 표시합니다.

  • 서버가 알려주는 불연속 시계열 범위 데이터를 가진 Predefined date 또는 서버가 알려주는 사용할 수 있는 날짜들의 범위를 가진 Predefined range 를 선택할 수 있습니다. 후자의 경우 Start dateEnd date 가 필수입니다. 제공자가 연속하는 기간에 대한 데이터를 가지고 있는지 아닌지 여부에 따라 참조 시간 옵션에서 예상 날짜 서식을 추정할 수 있습니다. (다음 그림을 참조하세요.)

  • Follow project’s temporal range: 프로젝트 속성 대화창에서 정의된 프로젝트 수준 시계열 범위를 따릅니다.

../../../_images/temporal_properties.png

그림 22.4 WMTS 레이어의 시계열 속성

어떤 시계열 데이터 제어를 사용하든, 정확한 시계열 데이터를 표시하게 해주는 몇몇 WMS-T Settings 가 있습니다:

  • Time slice mode: 시간 슬라이스 모드를 다음 가운데 하나로 설정할 수 있습니다:

    • Use whole temporal range: 전체 시계열 범위를 사용

    • Match to start of range: 시계열 범위의 시작에 맞춤

    • Match to end of range: 시계열 범위의 종단에 맞춤

    • Closest match to start of range: 시계열 범위의 시작에 최대한 맞춤

    • Closest match to end of range: 시계열 범위의 종단에 최대한 맞춤

  • Ignore time components (use dates only): 이 옵션을 체크하면 서버 요청에서 시계열 쿼리의 시간 요소를 버리고 날짜 요소만 사용할 것입니다.

checkbox Use Specific WMS-T Reference Time 을 체크해서 레이어의 케이퍼빌리티에 보고된 시간으로부터 선택할 수도 있습니다. 서버가 (날짜 범위 대신) 날짜&시간 인스턴스의 불연속 집합을 알려주는 경우 유용합니다.

22.1.7.3. QGIS 서버 속성

래스터 레이어 속성 뿐만 아니라, QGIS 서버로 WMS/WMTS 레이어를 게시하는 경우 다음과 같은 옵션도 표시할 것입니다:

  • WMS Print layer: (GetProjectSettings 응답에서) 인쇄에 쓰여야 할 대체 WMS 레이어를 설정할 수 있습니다. WMTS 레이어가 일반적인 상황에서 인쇄에 적합하지 않을 경우 유용합니다.

  • checkbox Publish WMS/WMTS data source uri: 웹 클라이언트가 WMS/WMTS 데이터를 직접 가져올 수 있게 해줍니다.

  • checkbox Advertise as background layer: WMS/WMTS 레이어를 배경 레이어로 알립니다.

../../../_images/server_properties.png

그림 22.5 WMS/WMTS 레이어의 QGIS 서버 속성

22.1.8. 차례 및 조판기에 WMS 범례 그래픽 표시하기

QGIS WMS 데이터 제공자는 차례(table of content)의 레이어 목록 및 인쇄 조판기에 WMS 범례 그래픽을 표시할 수 있습니다. WMS 서버가 GetLegendGraphic 기능을 보유하고 있고 레이어에 getCapability URL을 설정한 경우에만 WMS 범례를 표시할 것입니다. 따라서 해당 레이어를 위한 스타일을 따로 선택해야 합니다.

LegendGraphic을 사용할 수 있는 경우, 레이어 아래에 표시합니다. LegendGraphic이 매우 작기 때문에 (QgsLegendInterface 의 구조적 제약 때문에) 실제 크기로 열려면 LegendGraphic을 클릭해야 합니다. 레이어의 범례를 클릭하면 전체 해상도의 범례를 담은 프레임이 열릴 것입니다.

인쇄 조판기에서는, 범례가 원본 (다운로드된) 크기로 통합될 것입니다. Legend ► WMS LegendGraphic 메뉴의 항목 속성 패널에서 범례 그래픽의 해상도를 사용자의 인쇄 작업 요구 사항에 맞게 설정할 수 있습니다.

이 범례는 사용자의 현재 축척을 기반으로 맥락에 맞는 정보를 표시할 것입니다. WMS 서버가 GetLegendGraphic 기능을 보유하고 있고 레이어에 getCapability URL을 설정한 경우에만 WMS 범례를 표시할 것입니다. 따라서 해당 레이어를 위한 스타일을 따로 선택해야 합니다.

22.2. WCS 클라이언트

wcs WCS(Web Coverage Service)는 과학적 모델에 입력하기 위한 클라이언트 쪽 렌더링에 대해 그리고 기타 클라이언트에 대해 유용한 형태로 래스터 데이터에 접근할 수 있습니다. WCS를 WFS 및 WMS에 빗대어 설명할 수도 있습니다. WCS는, WMS 및 WFS 서비스 인스턴스로서, 클라이언트가 공간 제약 조건 및 기타 쿼리 기준을 기반으로 서버가 보유하고 있는 정보의 일부분을 선택하게 할 수 있습니다.

QGIS는 WCS 제공자를 내장하고 있으며, (서로 상당히 다른) 1.0 및 1.1 버전을 지원하고 있습니다. 그러나 현재 1.1 버전에 많은 문제점이 있기 때문에 1.0 버전을 선호합니다. (예를 들면 1.1 버전은 각 서버가 다양하고 독특한 설정들 덕분에 모두 서로 다른 방식으로 실행됩니다.)

내장 WCS 제공자는 모든 네트워크 요청을 처리하며 모든 표준 QGIS 네트워크 설정을 (특히 프록시 설정을) 사용합니다. 제공자가 캐시 모드(‘always cache’, ‘prefer cache’, ‘prefer network’, ‘always network’)를 사용할 수도 있고, 서버가 시간 영역(temporal domain)을 제공하는 경우 시점(time position)도 선택할 수 있습니다.

경고

Authentication 탭에서 사용자명비밀번호 를 입력하면 연결 환경 설정에 보안되지 않은 인증 정보를 유지하게 됩니다. 예를 들면, 다른 사용자와 프로젝트 파일을 공유하는 경우, 이런 인증 정보가 노출될 것입니다. 따라서 인증 환경 설정 (Configurations 탭)에 사용자 인증 정보를 대신 저장하는 편이 좋습니다. 더 자세한 내용은 인증 시스템 를 참조하세요.

22.3. WFS 및 WFS-T 클라이언트

QGIS에서, WFS 레이어는 다른 모든 벡터 레이어와 매우 비슷하게 동작합니다. 피처를 식별하고 선택할 수 있고, 속성 테이블도 살펴볼 수 있습니다. QGIS는 WFS 1.0.0, 1.1.0, 2.0 및 OAPIF(OGC API - Features)를 편집 기능을 (WFS-T를 통해) 포함해서 지원합니다. QGIS는 백그라운드 다운로드, 점진적(progressive) 렌더링, 다운로드한 피처의 디스크 상(on-disk) 캐시 작업, 그리고 버전 자동 탐지도 지원합니다.

일반적으로, WFS 레이어는 WMS가 사용하는 방식과 매우 유사합니다. 기본 서버가 정의돼 있지 않기 때문에, 사용자가 직접 추가해야 합니다. 메타검색 플러그인 또는 사용자가 선호하는 웹 검색 엔진을 통해 WFS 서버를 찾을 수 있습니다. 공개 URL 목록이 여럿 있는데, 일부는 유지되고 있고 일부는 더 이상 서비스하고 있지 않습니다.

WFS 레이어 불러오기

이번 예시는 게이트웨이 지오매틱스(Gateway Geomatics) WFS 서버를 이용해서 레이어를 표시합니다.

https://demo.gatewaygeomatics.com/cgi-bin/wfs_gateway?REQUEST=GetCapabilities&VERSION=1.0.0&SERVICE=WFS

WFS 레이어를 불러오려면 먼저 WFS 서버와의 연결을 생성해야 합니다:

  1. dataSourceManager Open Data Source Manager 버튼을 클릭해서 Data Source Manager 대화창을 여십시오.

  2. addWfsLayer WFS/OGC API-Features 탭을 선택하십시오.

  3. New… 버튼을 클릭해서 Create a New WFS Connection 대화창을 여십시오.

  4. Gateway Geomatics 를 이름으로 입력하십시오.

  5. (앞에서 언급한) URL을 입력하십시오.

    ../../../_images/add_connection_wfs.png

    그림 22.6 WFS 서버와의 연결 생성하기

    참고

    OAPIF(OGC API - Features)의 경우, 입력 URL이 연결될 페이지 여야 합니다. 이때 연결될 페이지는 사용할 수 있는 모든 서비스 종단점까지 탐색할 수 있는 메인 페이지여야 합니다.

  6. WFS 설정 대화창에서 다음과 같은 작업을 할 수 있습니다:

    • 서버의 WFS 버전을 알 수 있습니다. 표시되지 않는 경우, Detect 버튼을 클릭하면 자동으로 받아옵니다.

    • maximum number of features: GetFetFeature 요청 한 번으로 받아오는 피처의 최대 개수를 정의합니다. 비워놓는 경우, 제한을 두지 않습니다.

    • 그리고 WFS 버전에 따라 다음과 같은 옵션의 설정 여부를 결정할 수 있습니다:

      • checkbox Enable feature paging 옵션을 활성화하면 Page size 란에 받아올 피처의 최대 개수를 지정할 수 있습니다. 비워놓는 경우, 서버 기본값을 적용합니다.

      • Ignore axis orientation (WFS 1.1/WFS 2.0): 버전 1.1, 2.0인 경우 축의 방향을 무시하도록 강제할 수 있습니다.

      • Invert axis orientation: 축의 방향을 반전시킵니다.

      • Use GML2 encoding for transactions: 트랜잭션에 GML2 인코딩을 사용합니다.

    경고

    Authentication 탭에서 사용자명비밀번호 를 입력하면 연결 환경 설정에 보안되지 않은 인증 정보를 유지하게 됩니다. 예를 들면, 다른 사용자와 프로젝트 파일을 공유하는 경우, 이런 인증 정보가 노출될 것입니다. 따라서 인증 환경 설정 (Configurations 탭)에 사용자 인증 정보를 대신 저장하는 편이 좋습니다. 더 자세한 내용은 인증 시스템 을 참조하세요.

  7. OK 를 클릭해서 연결을 생성하십시오.

사용자가 설정했을 수도 있는 어떤 프록시 설정이라도 적용된다는 사실을 기억하십시오.

이제 앞에서 설정한 연결로부터 WFS 레이어를 불러올 수 있습니다.

  1. Server Connections 드롭다운 목록에서 ‘Gateway Geomatics’ 를 선택하십시오.

  2. Connect 를 클릭하십시오.

  3. 목록에서 Parks 레이어를 선택하십시오.

  4. 다음 옵션 가운데 하나를 선택할 수 있습니다:

    • unchecked Use title for layer name: 이 옵션을 체크하면 레이어의 Name 대신 Layers 패널에 있는 서버 상에서 정의된 레이어의 제목을 표시합니다.

    • checkbox Only request features overlapping the view extent: 이 옵션을 체크하면 뷰 범위와 겹치는 피처만 요청합니다.

    • Change…: 레이어 좌표계를 서비스가 지원하는 다른 좌표계로 변경합니다.

    • 또는 서비스에서 검색할 특정 피처를 지정하는 쿼리를 작성합니다: 레이어 행을 더블클릭하면 SQL Query Composer 대화창이 열립니다. 이 대화창은 서비스에서 사용할 수 있는 테이블과 열을 이용해서 고급 SQL 쿼리를 작성할 수 있는 위젯을 제공합니다. 정렬 함수, 필터 함수 같은 수많은 SQL 함수는 물론 공간 술어(predicate) 및 연산자를 지원합니다.

      사용자가 작성한 쿼리는 검증 후 WFS / OGC API - Features 테이블 내부의 SQL 열에 나타날 것입니다. 또한 필터링된 레이어는 Layers 패널에 indicatorFilter 아이콘과 함께 표시될 것입니다. 즉 언제라도 쿼리를 조정할 수 있다는 의미입니다.

  5. Add 버튼을 클릭하면 맵에 레이어를 추가합니다.

../../../_images/connection_wfs.png

그림 22.7 WFS 레이어 추가하기

QGIS 메인 창 좌하단에 다운로드 진행 상태가 가시화된다는 걸 볼 수 있을 것입니다. 레이어를 불러오고 나면, 피처를 한두 개 식별하고 선택해서 속성 테이블을 살펴볼 수 있습니다.