Kartografia internetowa

Cwiczenie 7 - Mapserver jako serwer WMS

Metadane  Testowanie działania serwera

Metadane

Jedną z podstawowych i najczęściej wykorzystywanych funkcji MS jest możliwość funkcjonowania jako serwer WMS. Na tym etapie konstruowania aplikacji wszystko jest praktycznie gotowe, brakuje jedynie metadanych niezbędnych do wymiany plików za pomoca protokołu WMS. Dane te przechowywane są w obiektach METADATA. W poprzednio utworzonej warstwie WMS znajduje się już taki jeden obiekt, teraz trzeba taki obiekt dodać do każdej warstwy oraz jeden dla całej mapy (podobnie jak to miało miejsce przy PROJECTION). Minimalnie dla warstwy potrzebna jest nazwa i odwzorowanie, przy czym jesli to drugie jest określone za pomoca obiektu PROJECTION i kodów EPSG to wystarczy następujący kod:


METADATA
"wms_title"         "nazwa_warstwy"
END

Należy zwrócić uwagę, iż w nazwa wartswy będzie częścią ścieżi dostępu i nie powinna zawierać spacji. Jeśli tak jest, należy dokonać niezbędnej modyfikacji pliku ".map". Obiekt METADATA dla całej warstwy jest częścią obiektu WEB i również zawiera pole tytułu (tym razem dowolna nazwa dla serwera) i nie musi mieć określonego odwzorowania jeśli jest kod EPSG dla całej mapy. Dodatkowo jednak zawarta jest w nim ścieżka dostępu, za pomoca której klient WMS wysyłać będzie żądania dla serwera - "wms_onlineresource". Ścieżka ta to nic innego jak pełna ścieżka do pliku CGI Mapservera wraz ze zmienną map określającą lokalizację pliku ".map". W wypadku nie posiadania nazwy domeny, można oczywiście posłuzyć się adresem IP (przypomnienie - można go poznać wpisując w terminalu polecenie ifconfig). Ścieżka musi kończyć się znakiem &. Przykładowy obiekt wygląda nastepująco:

WEB
(...)
METADATA
"wms_title" "swietny_serwer"
"wms_onlineresource" "http://IP/cgi-bin/mapserv?map=/var/www/kart/plik.map&"
END
(...)
END

Uwaga:O ścieżce dostępu w takiej formie ciężko powiedzieć, że jest przyjazna dla użytkownika. Na szczęście można wykorzystać możliwości serwera Apache i znacząco ją skrócić.

Testowanie działania serwera

Prawidłowo skonfigurowany serwer WMS powinien zareagować na standardowe żądania ("Requests"). Jednym z podstawowych jest GetCapabilities. Powoduje ono wygenerowanie przez serwer pliku XML, zawierającego informacje o jego możliwościach oraz o udostępnianych warstwach i ich atrybutach. Żądanie formułujemy w pasku adresu przeglądarki, dołączając do ścieżki dostępu (podanej w "wms_onlineresource"), następujący kod:


SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities

Czyli, zakładając że nasza ścieżka wygląda tak jak w przykładzie w pasku przeglądarki powinien znajdować się kod:


http://IP/cgi-bin/mapserv?map=/var/www/kart/plik.map&
SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities

Po przejściu pod ten adres serwer wygeneruje odpowiedni plik i spyta czy chcemy go zapisać. Można go otworzyć w przeglądarce.