encyklopedia.space

WebMapService (WMS)

WebMapService, w skrócie WMS, jest otwartym standardem opublikowanym przez Open Geospatial Consortium (OGC) umożliwiającym udostępnianie map rastrowych przez internet w odpowiedzi na zapytania HTTP. WMS definiuje sposób wymiany danych geoprzestrzennych między serwerem mapowym a klientem, z uwzględnieniem parametrów takich jak układ współrzędnych, warstwy, styl, rozdzielczość i format wyjściowy.

Historia

Pierwsza wersja WMS została wydana w 2000 roku jako WMS 1.0.0. Standard był rozwijany w kolejnych latach, a najważniejsze wersje to WMS 1.1.0 (2001), WMS 1.1.1 (2002) oraz WMS 1.3.0 (2006). Wersja 1.3.0 wprowadziła obsługę układów współrzędnych opartych na systemie EPSG oraz zmieniła kolejność parametrów wymiany (np. CRS → CRS w 1.3.0). Aktualnie najpowszechniej używaną wersją jest WMS 1.3.0, choć niektóre implementacje nadal obsługują starsze wersje.

Podstawowe zasady działania

Komunikacja w ramach WMS odbywa się wyłącznie za pośrednictwem protokołu HTTP. Klient, najczęściej przeglądarka lub aplikacja GIS (np. QGIS czy ArcGIS), wysyła zapytanie GetMap z zestawem parametrów, a serwer zwraca mapę w postaci obrazu rastrowego (np. image/png, image/jpeg) lub dokumentu wektorowego (np. application/vnd.ogc.gml w przypadku WFS).

  • GET vs. POST – zapytania GetMap mogą być realizowane metodą GET (parametry w URL) lub POST (parametry w treści żądania).
  • Parametry obowiązkowe – LAYERS, STYLES, CRS (lub SRS w wersji 1.1.1), BBOX, WIDTH, HEIGHT, FORMAT.
  • Obsługa układów współrzędnych – serwer może udostępniać te same warstwy w różnych układach, a klient określa żądany układ za pomocą parametru CRS.

Struktura odpowiedzi

Odpowiedź serwera WMS zawiera zazwyczaj:

  • Obraz rastrowy w wybranym formacie (PNG, JPEG, GeoTIFF).
  • Opcjonalnie warstwę maski (ang. transparent mask) przy użyciu kanału alfa.
  • W nagłówkach HTTP informacje o wersji, typie treści (Content-Type) oraz ewentualne komunikaty o błędach.

Standardy i powiązane usługi

WMS jest częścią rodziny standardów OGC, które obejmują również:

Implementacje serwerów WMS

Na rynku dostępnych jest wiele otwarto‑źródłowych oraz komercyjnych implementacji WMS, m.in.:

  • GeoServer – serwer oparty na języku Java, szeroko stosowany w projektach otwarto‑źródłowych.
  • MapServer – projekt w języku C, wspiera zarówno WMS, jak i WMTS oraz inne usługi OGC.
  • ArcGIS Server – komercyjna platforma firmy Esri, oferująca rozbudowane możliwości zarządzania usługami GIS.
  • QGIS Server – wykorzystuje silnik QGIS do publikacji map w formacie WMS.

Zastosowania

WebMapService znajduje zastosowanie w wielu dziedzinach, takich jak:

  • Planowanie przestrzenne – udostępnianie map bazowych i warstw tematycznych dla urzędów i samorządów.
  • Systemy informacji o zagrożeniach – szybkie wyświetlanie danych dotyczących powodzi, pożarów czy wstrząsów sejsmicznych.
  • Turystyka i nawigacja – integracja map topograficznych w aplikacjach mobilnych.
  • Badania naukowe – dostęp do danych satelitarnych i pomiarowych w ramach projektów międzynarodowych.

Bezpieczeństwo i kontrola dostępu

Standard WMS nie definiuje mechanizmów autoryzacji, dlatego w praktyce wykorzystywane są:

  • Uwierzytelnianie HTTP Basic lub Digest.
  • Tokeny OAuth 2.0 (integracja z REST API).
  • Filtry IP i reguły firewall.

W niektórych wdrożeniach stosowane są także SAML i Kerberos w celu zapewnienia jednokrotnego logowania (SSO).

Przykładowe zapytanie GetMap

GET /wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap
    &LAYERS=ortofoto,granice_administracyjne
    &STYLES=,&CRS=EPSG:4326
    &BBOX=49.0,14.0,50.0,15.0
    &WIDTH=800&HEIGHT=600
    &FORMAT=image/png
    HTTP/1.1
Host: example.com
    

W odpowiedzi serwer zwraca nagłówek Content-Type: image/png oraz binarne dane obrazu.

Wersje i kompatybilność

Choć najnowsza wersja WMS (1.3.0) jest zalecana, wiele starszych aplikacji wciąż operuje na wersjach 1.1.1 i 1.1.0. Dlatego serwery często oferują obsługę kilku wersji jednocześnie, umożliwiając klientom wybór najodpowiedniejszej.

Patrz także