Przejdź do zawartości

Web Map Service

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez ZéroBot (dyskusja | edycje) o 07:27, 19 paź 2012. Może się ona znacząco różnić od aktualnej wersji.

Web Map Service (WMS) - stworzony przez Open Geospatial Consortium (OGC) standard udostępniania map w postaci rastrowej za pomocą interfejsu HTTP.

W zapytaniu do serwera WMS podaje się parametry mapy (żądane warstwy, obszar geograficzny, układ współrzędnych). W odpowiedzi przesyłany jest obraz mapy (np. w formacie JPEG, PNG, GIF), wygenerowany przez serwer na podstawie danych zawartych w bazach danych (np. PostGIS) lub plikach (np. GML, ESRI shapefile).

Zasada działania

W celu wyświetlenia map użytkownik łączy się z serwerem WMS przy pomocy klienta WMS (najczęściej jest to specjalny program). Klient pobiera z serwera metadane, w których znajduje się lista dostępnych warstw, obsługiwane formaty, systemy współrzędnych itp. Użytkownik wybiera interesujące go warstwy, a program wysyła do serwera zapytanie o gotowy wycinek mapy o zadanych wymiarach i położeniu.

Wersje

Pierwszą wersję standardu WMS (1.0.0) OGC wydało w kwietniu 2000 roku[1], kolejną (1.1.0) - w czerwcu 2001[2]. Trzecia wersja (1.1.1) wydana została w styczniu 2002[3]. Najnowsza wersja 1.3.0 wydana została w marcu 2006 roku[4]; jest to ten sam dokument, co ISO 19128[5].

Klient WMS może dowiedzieć się od serwera, które wersje protokołu obsługuje. Służy do tego zapytanie GetCapabilities. Jeśli w zapytaniu

  • nie podano numeru wersji lub
  • numer wersji jest nieznany serwerowi i jednocześnie wyższy niż najniższy znany serwerowi

to serwer odpowiada podając najwyższy mniejszy od podanego wspierany numer (lub po prostu najwyższy).

Jeśli

  • numer wersji jest nieznany serwerowi i jednocześnie niższy niż najniższy znany serwerowi

to serwer odpowiada podając najniższy wspierany numer.

Zapytania

Określonych jest kilka zapytań obsługiwanych przez serwer WMS (standardowo przesyłane metodą GET, opcjonalnie też metodą POST, protokołu HTTP). Dwa z nich muszą być obsługiwane obowiązkowo[4]. Rodzaj zapytania określa się za pomocą obowiązkowego parametru request.

WMS podstawowy (ang. Basic WMS)

  • GetCapabilities - pozwala uzyskać metadane - opis zawartości serwera, dostępnych wartości parametrów (np. dostępnych warstwach, odwzorowaniach / układach geograficznych?)
  • GetMap- zapytanie o mapę (obraz rastrowy)

WMS rozszerzony (odpytywany) (ang. Queryable WMS) - prócz zapytań podstawowych obsługuje

  • GetFeatureInfo - zapytanie o dane dotyczące konkretnego punktu na mapie - zwraca informacje o atrybutach obiektów znajdujących się w danym punkcie

W odpowiedzi na zapytanie serwer zwraca odpowiedź w formacie domyślnym bądź podanym w parametrze format lub wyjątek z informacją o błędzie (np. o niepoprawnych wartościach parametrów).

Parametry

Kolejność parametrów zapytania nie jest istotna.

Wielkości liter nie są rozróżnialne w nazwach parametrów (request jest równoważne REQUEST i Request), ale już wartości parametrów są wrażliwe na duże i małe litery (warstwa o nazwie Rzeki nie jest tą samą co warstwa o nazwie rzeki).

GetCapabilities

Zapytanie obsługiwane obowiązkowo. Wykorzystywane do negocjacji między klientem a serwerem w celu ustalenia obsługiwanej wersji standardu oraz aby pobrać metadane usługi.

Parametry obligatoryjne

  • REQUEST = GetCapabilities
  • SERVICE = WMS

Parametry dodatkowe

  • VERSION = [wersja] - służy m.in. do negocjacji obsługiwanych wersji; domyślnie: 1.3.0
  • FORMAT
  • UPDATESEQUENCE

Przykładowe zapytanie

 http://sdi.geoportal.gov.pl/WMS_ORTO/WMService.aspx?REQUEST=GetCapabilities&SERVICE=WMS
 \_________________________________________________/ \_________________________________/
              adres serwera                               parametry zapytania

Odpowiedź na zapytanie

Odpowiedzią na poprawne zapytanie GetCapabilities jest dokument XML zgodny z odpowiednim XML Schema (XML Schema dla WMS znajdują się w załączniku dokumentacji, a także na stronie http://schemas.opengis.net/wms/1.3.0/). Odpowiedź zawiera między innymi takie elementy jak:

  • Service - zawiera metadane dotyczące całości usługi: nazwę, tytuł, opis, słowa kluczowe, informacje kontaktowe i inne.
  • Capability - metadane o konkretnych usługach, zwłaszcza udostępnianych warstwach i stylach
    • Layer - metadane o warstwach. Niektóre z nich są konieczne przy tworzeniu zapytania GetMap. Zawiera między innymi:
      • Name - nazwa warstwy lub grupy warstw (używany w komunikacji maszyna-maszyna)
      • Title - tytuł (wyświetlany użytkownikowi)
      • Abstract - opis
      • KeywordList - lista słów kluczowych
      • Style - style
      • CRS - układy współrzędnych w jakich jest dostępna warstwa (w wersjach 1.0.0, 1.1.0 i 1.1.1 odpowiadający parametr to SRS)
      • BoundingBox - prostokąt ograniczający
      • Queryable - odpytywalność - czy serwer udostępnia operację GetFeatureInfo dla danej warstwy

GetMap

Przykładowa odpowiedź na zapytanie Get Map; dwie warstwy (budynki i drzewa) oraz przezroczyste tło

Zapytanie obsługiwane obowiązkowo. Określa parametry żądanej mapy, odpowiedzią powinna być ta mapa w postaci rastrowej lub wyjątek usługi.

Parametry obligatoryjne

  • REQUEST = GetMap
  • SERVICE = WMS
  • VERSION = 1.3.0 (lub inna)
  • LAYERS = [lista_warstw] - nazwy warstw mapy (parametr Name warstwy), jedna lub więcej rozdzielanych przecinkami
  • STYLES = [lista_styli] - style, w jakich ma być wyświetlona mapa; tyle, ile jest żądanych warstw, rozdzielane przecinkami; każdy styl z listy dotyczy odpowiadającej warstwie z listy layers
  • CRS = [namespace:identyfikator] - układ współrzędnych, np. EPSG:2180 (układ Polska 1992), CRS:84 (WGS 84 longitude-latitude)
  • BBOX = [minx,miny,maxx,maxy] - prostokąt ograniczający (BoundingBox) w jednostkach i orientacji układu współrzędnych (parametru crs)
  • WIDTH = [szerokość] - szerokość obrazka mapy w pikselach
  • HEIGHT = [wysokość] - wysokość obrazka mapy w pikselach
  • FORMAT = [format] - format mapy, np. image/png, image/gif

Parametry dodatkowe

  • TRANSPARENT = [true/false] - czy tło mapy ma być przezroczyste; potrzebne gdy chcemy nałożyć kilka warstw na siebie; domyślnie: false (tło nieprzezroczyste)
  • BGCOLOR = [color] - kolor tła mapy, w szesnastkowym formacie rgb; domyślnie: 0xFFFFFF (białe)
  • EXCEPTIONS = [format] - format, w jakim powinny być zgłaszane wyjątki w przypadku nieprawidłowego zapytania; domyślnie: XML
  • TIME = [time] - mapa z danego czasu; np. dla godzinnych map pogody
  • ELEVATION = [elevation] - wysokość; np. dla map stężenia ozonu w atmosferze na różnych wysokościach

Przykładowe zapytanie

http://localhost/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&LAYERS=pl92:budynki,pl92:drzewa_lisc_92&STYLES=Default,Default&BBOX=633551.3706279991,486512.54312255606,634764.7590243809,487739.65151950344&WIDTH=506&HEIGHT=512&CRS=EPSG:2180&FORMAT=image/png&TRANSPARENT=true

Odpowiedź na zapytanie

Odpowiedzią na poprawne zapytanie GetMap jest rastrowy obraz mapy, składający się z podanych warstw w zadanych stylach, w określonym układzie współrzędnych, o granicach określonych prostokątem ograniczającym, w podanym formacie i z określoną przezroczystością.

Jeśli zapytanie było niepoprawne, odpowiedzią jest wyjątek z informacją o błędzie, w podanym formacie.

Zobacz też

  1. 00-028 OpenGIS Web Map Server Interface Implementation Specification - 1.0.0. [dostęp 24.06.2012]. (ang.).
  2. 01-047r2 Web Map Service Implementation Specification - 1.1.0. [dostęp 24.06.2012]. (ang.).
  3. 01-068r3 Web Map Service Implementation Specification - 1.1.1.. [dostęp 24.06.2012]. (ang.).
  4. a b 06-042 OpenGIS Web Map Server Interface Implementation Specification - 1.3.0. [dostęp 24.06.2012]. (ang.).
  5. OpenGIS Web Map Service Implementation Specification. [dostęp 24-06-2012]. (ang.).

Linki zewnętrzne