Usługa WFS – jak to działa ?

Na rynku dostepnych jest wiele przegladarek i programów umożliwiających pobieranie danych za pomocą usługi WFS. Co jednak, jeśli używamy ArcGISa a nie mamy dodatku ArcGIS Data Interoperability, nie możemy zainstalować na komputerze innego programu ze względu na ograniczenia administracyjne lub ze względu na nieznane błędy nie możemy pobrać danych ?
Jak określić jakie dane są do pobrania, jakie są ich parametry, oraz jak wyglądają polecenia usługi WFS. O tym będzie dzisiejszy wpis.

Edycja 15-09-2016: Wpis zaktualizowałem do aktualnych odnośników do usługi serwującej Pomniki Przyrody z Generalnej Dyrekcji Ochrony Środowiska.

Na początek jak zwykle odniesienie do specyfikacji WFS która dostępna jest tutaj.

1. Spróbujmy pobrać dane WFS jakie udostępnia Generalna Dyrekcja Ochrony Środowiska.
2. Wpisujemy w przeglądarkę adres usługi WFS z Państwowym Rejestrem Granic:

http://sdi.gdos.gov.pl/wfs?

3. Otrzymujemy odpowiedź od serwera o nastepującej treści: „Could not determine geoserver request from http request org.geoserver.platform.AdvancedDispatchFilter$AdvancedDispatchHttpRequest@289c6fbb” – oznacza ona że wywołanie usługi zawiera błędy składniowe.
Należy do adresu dodać zmienną request – ponieważ chcemy otrzymać listę warstw i parametry możliwych do pobrania danych używamy polecenia getCapabilites  oraz zgodnie ze specyfikacją dodajemy zmienną odpowiedzialną za serwis WFS czyli:

http://sdi.gdos.gov.pl/wfs?request=getCapabilities&service=WFS

Efektem będzie strona z parametrami usługi.

Na stronie możemy zidentyfikować znaczniki określające poszczególnie parametry:

  • <ows:ServiceIdentification> – zawiera nazwę usługi, jej typ, oraz wersję
  • <ows:ServiceProvider> – zawiera dane kontaktowe do prowadzącego usługę
  • <ows:OperationsMetadata> – nazwy oraz typy operacji dopuszczalnych na usłudze: Operation name=”GetCapabilities„,Operation name=”DescribeFeatureType„,Operation name=”GetFeature
  • <wfs:FeatureTypeList> – zawiera szczegółowe informacje o typach obiektów które można pobrać za pomocą usługi – są to: województwa, powiaty, gminy oraz obsługiwanych dla nich układach współrzędnych. Widać że dane można pobrać w układzie EPSG:2180 (pod linkami znajdują się opisy układów wraz z nazwami).
  • <ogc:Filter_Capabilities> – określa możliwe do zastosowania polecenia filtrujące dane.
  • <inspire_dls:SpatialDataSetIdentifier> – oznacza numer identyfikatora w ewidencji zbiorów i usług

Spróbujmy zastosować te informacje w celu pobrania obiektów za pomocą polecenia GetFeature – otwieramy nową zakładkę nie zamykając okienka getCapabilities. Uzupełniamy zmienne dodając kolejno : version=1.1.0 (określone w getCapabilities), service=WFS (specyfikacja WFS), typename=GDOS:PomnikiPrzyrody (nazwa warstwy z getCapabilities) otrzymując link:

http://sdi.gdos.gov.pl/wfs?request=getFeature&version=1.1.0&service=WFS&typename=GDOS:PomnikiPrzyrody

Wyświetlają się nam dane dla warstwy województwa w postaci GML, które możemy zapisać na dysku w pliku z rozszerzeniem *.gml.

Zawężenie wyników mozna uzyskać dodając filtry określone w getCapabilities np. zakres danych  – bbox=397294,582500,565378,767700 – gdzie bbox to prostokąt o współrzędnych xmin,ymin,xmax,ymax.

http://sdi.gdos.gov.pl/wfs?request=getFeature&version=1.1.0&service=WFS&typename=GDOS:korytarzeEkologiczne&bbox=397294,582500,565378,767700

Zapisany plik GML możemy wczytać w Qgis jak każdy gml za pomocą polecenia dodaj warstwę. Istniejące czasem problemy z zamianą współrzędnych w pliku można rozwiązać za pomocą wtyczki zamieniającej współrzędne xy na yx o nazwie SWAP XY.

Jeśli chcesz dowiedzieć się jak użyć usługi WFS do pobrania danych z Geoportalu2 bez znajomości zapytań WFS przeczytasz o tym tutaj: http://geoinformatyka.com.pl/pobieranie-danych-za-pomoca-uslugi-pobierania-wfs-z-geoportalu-2-spatialite-gui/