Jak działa WMS

Wiele instytucji państwowych udostępnia swoje zasoby przy pomocy serwisów WMS. Najpopularniejsze są zasoby udostępniane przez stronę geoportal.gov.pl. Pod adresem http://www.geoportal.gov.pl/uslugi/usluga-przegladania-wms można znaleźć komplet adresów url do zasobów krajowego geoportalu.

Przykład URL defniniujacego źródło danych może wyglądać następująco:

http://mapy.geoportal.gov.pl/wss/service/img/guest/ORTO/MapServer/WMSServer

Podłączenie usługi WMS jest proste i intuicyjne wystarczy tylko w programowaniu typu desktop GIS (np:ArcMap, QGIS) zdefiniować podłączenie kopiując adres url usługi i gotowe.

Usługa przesyła przez protokół HTTP fragment danych przestrzennych ze zbioru, dzięki czemu mamy podgląd w oknie widoku mapy danego oprogramowania. Pytanie brzmi jak to się dzieje, że w danej chwili wyświetla nam się fragment mapy. Ale zanim konkrety trochę teorii.

Usługa WMS (ang. Web Map Service) jest usługą autorstwa OGC (ang. Open Geospatial Consortium) dzięki której prezentowane są dane przestrzenne w postaci uprzednio przygotowanej mapy, która jest udostępniana przez serwer GIS (np:GeoServer, MapServer, ArcGIS Server). Wczytując do programu warstwę WMS a następnie przesuwając mapę w tle wykonywane są operacje metodą przesyłane do serwera metodą GET lub POST.

Dla usługi WMS wyróżniamy 3 operacje GetCapabilities, GetMap GetFeatureInfo.

Operacje GetCapabilities oraz GetMap są obligatoryjne tzn. żeby wyświetlić dane w oprogramowaniu muszą zadziałać te dwie operacje.

W operacji GetCapabilities z serwera przesyłane są metadane usługi dzięki, której klient(w tym wypadku program np:QGIS, ArcMap) może odczytać przesłaną odpowiedź aby odczytać niezbędne informacje do zdefiniowania parametrów dla kolejnej operacji GetMap.

Zapytanie to jest zwracane przy pomocy pliku XML. Spróbujmy teraz napisać zapytanie GetCapabilities dla ORTOFOTOMAPY ze strony geoportal.gov.pl. Do zapytania definiującego połączenie do źródła danych należy dopisać polecenie podane pogrubioną czcionką.

http://mapy.geoportal.gov.pl/wss/service/img/guest/ORTO/MapServer/WMSServer?request=GetCapabilities&service=WMS

Link ten należy wkleić do adresu url przeglądarki po czym zostanie przesłany do nas (czyli do klienta) plik XML z metadanymi.

Na podstawie tych informacji wygenerujemy zapytanie GetMap zwracające nam fragment mapy. Do naszego źródła danych dodajemy teraz kolejne instrukcje.

http://mapy.geoportal.gov.pl/wss/service/img/guest/ORTO/MapServer/WMSServer?request=getmap&version=1.1.1&service=WMS&srs=EPSG:4326&format=image/png&bbox=21.003,52.261,21.016,52.265&width=1800&height=1500&styles=&layers=raster

Do parametrów użytych w tym przykładzie użyto:

  • request=GetMap – żądanie udstępniające mapy przez serwis,
  • version=1.1.1 – wskazuje wersję usługi WMS
  • service=WMS – definiuje rodzaj usługi OGC
  • layers= Ortofotomapa – wskazuje warstwę , które znajdą się na mapie,
  • srs=EPSG:4326 – definiuje pożądany system odniesienia
  • format=image/png – podaje format pliku w jakim będą zwrócone dane z serwera
  • bbox=21.003,52.261,21.016,52.265 – określa wartości minimalne i maksymalne dla wierzchołków obrazu
  • width=180 – określa szerokość obrazu
  • height=1500 – określa wysokość
  • style=raster – wskazuje styl dla warstwy

Wszystkie te parametry zostały wpisane dzięki informacjom zawartym w pliku XML, który otrzymaliśmy z polecenia GetCapabilities.

W kolejnym kroku otrzymamy informacje odnośnie fragmentu mapy dzięki użyciu polecenia GetFeatureInfo.

Tym razem posłużymy się adresem url definiującym dane o charakterze aktastralnym.

http://mapy.geoportal.gov.pl/wss/service/pub/guest/G2_GO_WMS/MapServer/WMSServer?request=getfeatureinfo&srs=EPSG:4326&version=1.1.1&bbox=13,48,25,54&width=500&height=500&format=png&layers=dzialki&styles=default&query_layers=NumeryDzialek&x=200&y=200

W odpowiedzi otrzymamy w schemacie XML informacje dla podanej w zapytaniu lokalizacji. Jeśli w pliku byłby przypisany styl który opakuje nam dane w ładną tabelkę w rezultacie klient otrzymuje dane w tabeli w przeciwnym razie są to dane w pliku XML.

 

  • request=getfeatureinfo – żądanie udostępnienia informacji z danej warstwy
  • srs=EPSG:4326 – definiuje pożądany system odniesienia
  • version=1.1.1 – wskazuje wersję usługi WMS
  • bbox=13,48,25,54 – określa wartości minimalne i maksymalne dla wierzchołków obrazu
  • width=500 –  określa szerokość obrazu
  • height=500 – określa wysokość
  • format=png – podaje format pliku w jakim będą zwrócone dane z serwera
  • layers=NumeryDzialek
  • &styles=default – styl wyświetlający informacje (w tym wypadku domyślny – dane ładowane są do XML)
  • query_layers=dzialki (nazwa warstwy do której kierowane jest zapytanie o inforamcje)
  • x=200&y=200 – współrzędne punktu dla którego wykonywane jest zapytanie

 

Uff, udało się zrobić ale czy zrozumieć też? Mam nadzieję, że tak.

 

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Translate using Google Translate»
Social media & sharing icons powered by UltimatelySocial

Podoba Ci się nasza strona? Odwiedź nasz profil