Web Map Service
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).
Spis treści |
Zasada działania [edytuj]
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 [edytuj]
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 [edytuj]
| Informacje w tej sekcji dotyczą standardu w wersji 1.3.0, chyba że zaznaczono inaczej. |
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 [edytuj]
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 [edytuj]
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 [edytuj]
- REQUEST = GetCapabilities
- SERVICE = WMS
Parametry dodatkowe [edytuj]
- VERSION = [wersja] - służy m.in. do negocjacji obsługiwanych wersji; domyślnie: 1.3.0
- FORMAT
- UPDATESEQUENCE
Przykładowe zapytanie [edytuj]
http://sdi.geoportal.gov.pl/WMS_ORTO/WMService.aspx?REQUEST=GetCapabilities&SERVICE=WMS
\_________________________________________________/ \_________________________________/
adres serwera parametry zapytania
Odpowiedź na zapytanie [edytuj]
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
- Layer - metadane o warstwach. Niektóre z nich są konieczne przy tworzeniu zapytania GetMap. Zawiera między innymi:
GetMap [edytuj]
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 [edytuj]
- 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 [edytuj]
- 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 [edytuj]
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 [edytuj]
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.
GetFeatureInfo [edytuj]
Zapytanie obsługiwane opcjonalnie. Pozwala uzyskać więcej informacji o obiekcie na zwróconym wcześniej rysunku mapy.
Zazwyczaj programy-klienci pozwalają kliknąć na wyświetlonej mapie (pobranej za pomocą WMS GetMap) w interesujący punkt, a następnie za pomocą zapytania GetFeatureInfo zapytać serwer WMS o dany punkt.
GetFeatureInfo wymaga większości parametrów wymaganych do GetMap, plus informacji o wskazanym miejscu (punkt (I, J)). Na tej podstawie oblicza współrzędne punktu (I,J), a następnie zwraca informacje dotyczące znajdujących się w tym miejscu obiektów.
Parametry obligatoryjne [edytuj]
- REQUEST = GetFeatureInfo
- SERVICE = WMS
- VERSION = 1.3.0 (lub inna)
- LAYERS = [lista_warstw] - nazwy warstw mapy (parametr Name warstwy), jedna lub więcej rozdzielanych przecinkami
- 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
- QUERY_LAYERS = [lista_warstw] - nazwy odpytywanych warstw mapy (parametr Name warstwy), jedna lub więcej rozdzielanych przecinkami; warstwy te muszą być "odpytywalne" (queryable)
- INFO_FORMAT - typ MIME, w jakim ma być zwrócona odpowiedź, np "text/xml" oznacza formatowanie XML
- I = [num], J=[num] - współrzędne punktu którego dotyczy zapytanie; jednostki: piksele na obrazie mapy; (0,0) oznacza lewy górny róg obrazka, I rośnie w prawo, a J w dół
Parametry dodatkowe [edytuj]
- FEATURE_COUNT = [no] - maksymalna liczba obiektów na pojedynczej warstwie, o których informacja ma być zwrócona; domyślna wartość: 1
- EXCEPTIONS = [format] - format, w jakim powinny być zgłaszane wyjątki w przypadku nieprawidłowego zapytania; domyślnie: XML
Przykładowe zapytanie [edytuj]
http://localhost/wms?service=WMS&request=GetFeatureInfo&version=1.3.0&i=50&j=50&layers=WOJEWODZTWA&query_layers=WOJEWODZTWA&info_format=text/xml&styles=&crs=EPSG:4326&bbox=49,14,54,24&format=image/png&width=255&height=255
Odpowiedź na zapytanie [edytuj]
W odpowiedzi na zapytanie GetFeatureInfo powinna być w formacie podanym w parametrze INFO_FORMAT. Natura odpowiedzi zależy od dostawcy usługi, ale powinna dotyczyć obiektu najbliższego punktowi (I,J).
Zależnie od dostawcy i INFO_FORMAT odpowiedzią może być np. lista obiektów i ich atrybutów, albo obiekt w formacie wektorowym.
Zobacz też [edytuj]
- ArcGIS - pakiet programów firmy ESRI z obsługą WMS (zarówno klient jak i serwer)
- NASA World Wind może służyć jako klient WMS
- Google Earth posiada ograniczone funkcje klienta WMS
- Quantum GIS
- Geoxa
- GlobalMapper v.14 klient WMS, WFS, WCS, TMS, WMTS, OSM, - wbudowane i edytowalne serwery
Przypisy
- ↑ 00-028 OpenGIS Web Map Server Interface Implementation Specification - 1.0.0 (ang.). [dostęp 24.06.2012].
- ↑ 01-047r2 Web Map Service Implementation Specification - 1.1.0 (ang.). [dostęp 24.06.2012].
- ↑ 01-068r3 Web Map Service Implementation Specification - 1.1.1. (ang.). [dostęp 24.06.2012].
- ↑ 4,0 4,1 06-042 OpenGIS Web Map Server Interface Implementation Specification - 1.3.0 (ang.). [dostęp 24.06.2012].
- ↑ OpenGIS Web Map Service Implementation Specification (ang.). [dostęp 24-06-2012].
Linki zewnętrzne [edytuj]
- OpenGIS WMS Implementation Specification
- lista ponad 1300 serwisów WMS
- Programy - serwery WMS
- Klienci WMS
- Gaia
- worldKit prosty klient wykonany w technologii Flash
- OpenLayers biblioteka JavaScript, potrafi także wczytywać dane z Google Maps, Yahoo Maps, i kilku innych serwisów.
- klient w ramach Geoportalu Polskiej Infrastruktury Informacji Przestrzennej
|
|||||