WFS – Web Feature Service
Web Feature Service (WFS) jest otwartym standardem opracowanym przez Open Geospatial Consortium (OGC), który umożliwia publikowanie i wymianę danych geoprzestrzennych w postaci wektorowej przez Internet. Dzięki WFS użytkownicy mogą pobierać, aktualizować, wstawiać oraz usuwać obiekty geoprzestrzenne, zachowując przy tym ich pełną semantykę i atrybuty.
Historia
Pierwsza wersja specyfikacji WFS została przyjęta w 2002 roku jako odpowiedź na rosnące zapotrzebowanie na interoperacyjne usługi wymiany danych wektorowych, które wykraczały poza możliwości Web Map Service (WMS) dostarczającego jedynie obrazy rastrowe. W kolejnych latach opracowano wersje 1.1.0 (2004), 2.0.0 (2009) oraz 2.0.2 (2011), które wprowadzały m.in. wsparcie dla protokołu REST oraz nowych formatów wymiany, takich jak JSON i GML.
Podstawowe założenia
- Interoperacyjność: WFS definiuje standardowy interfejs, dzięki czemu różne systemy GIS mogą wymieniać się danymi bez konieczności konwersji własnych formatów.
- Wektorowa natura danych: W przeciwieństwie do WMS, który zwraca jedynie mapy rastrowe, WFS przekazuje pełne modele danych wektorowych (punkty, linie, poligony) wraz z ich atrybutami.
- Operacje CRUD: Standard określa cztery podstawowe operacje: GetCapabilities, DescribeFeatureType, GetFeature oraz Transaction (wstawianie, aktualizacja, usuwanie).
- Model danych: WFS opiera się na schematach GML (Geography Markup Language) oraz jest zgodny z normą ISO 19142 – Web Feature Service – Interface Standard.
Architektura i protokół
Usługa WFS jest typowo dostępna jako punkt końcowy HTTP(S), do którego klient wysyła zapytania w formacie XML (SOAP) lub prostszy REST. Odpowiedzi zwracane są w formacie GML (domyślnie) lub alternatywnie w GeoJSON, KML itp. Poniżej przedstawiono najważniejsze operacje:
GetCapabilities
Zapytanie zwracające metadane usługi – lista dostępnych typów obiektów, wersji protokołu, obsługiwanych formatów i limitów.
DescribeFeatureType
Dostarcza schemat (XSD) opisujący strukturę danych konkretnego typu obiektu (np. road, building).
GetFeature
Pobiera rzeczywiste obiekty spełniające kryteria zapytania (filtry przestrzenne, atrybutowe, sortowanie, stronicowanie). Wynik może być ograniczony przy pomocy parametrów maxFeatures i startIndex.
Transaction
Umożliwia modyfikację danych po stronie serwera: Insert (wstawianie), Update (aktualizacja) oraz Delete (usuwanie). Operacja ta wymaga autoryzacji i jest najczęściej zabezpieczona mechanizmami OAuth lub HTTPS.
Powiązane standardy OGC
- Web Map Service (WMS) – serwuje mapy rastrowe.
- Web Coverage Service (WCS) – dostarcza dane pokryciowe (np. obrazy satelitarne, modele wysokości).
- Catalogue Service for the Web (CSW) – umożliwia wyszukiwanie i katalogowanie zasobów geograficznych.
Zastosowania
WFS jest wykorzystywany w wielu dziedzinach, m.in.:
- Planowanie przestrzenne i zarządzanie infrastrukturą miejską.
- Systemy transportowe (np. monitorowanie tras i przystanków).
- Ochrona środowiska (monitorowanie siedlisk, obszarów chronionych).
- Systemy informacji katastroficznej (analiza zasięgu zagrożeń).
- Integracja danych w aplikacjach Web‑GIS i mobilnych.
Oprogramowanie obsługujące WFS
Wiele komercyjnych i otwarto‑źródłowych rozwiązań implementuje WFS, w tym:
- GeoServer – serwer OGC na platformie Java.
- MapServer – lekki serwer GIS.
- ArcGIS Server (Esri) – komercyjny pakiet.
- QGIS – klient GIS umożliwiający publikację danych jako WFS.
Bezpieczeństwo i ograniczenia
Chociaż WFS umożliwia pełną manipulację danymi, wymaga odpowiedniej kontroli dostępu:
- Uwierzytelnianie przy użyciu Basic Auth, OAuth lub certyfikatów X.509.
- Autoryzacja na poziomie operacji (np. jedynie odczyt GetFeature dla gości).
- Limity liczby zwracanych obiektów i rozmiaru odpowiedzi, aby zapobiegać atakom DoS.
Perspektywy rozwoju
W ostatnich latach społeczność OGC pracuje nad dalszą integracją WFS z technologiami chmurowymi i mikroserwisowymi. Planowany jest także większy nacisk na:
- Wsparcie dla streamingu danych (np. zmieniające się w czasie sieci transportowe).
- Rozszerzenia do obsługi danych 3D i IndoorGML.
- Ulepszone standardy API oparte na OpenAPI dla lepszej dokumentacji i automatyzacji.
Przykładowe zapytanie GetFeature (REST)
GET /wfs?service=WFS&version=2.0.0&request=GetFeature&typeNames=road:Highways&filter=<ogc:Filter><ogc:BBOX><gml:Envelope srsName="EPSG:4326"><gml:lowerCorner>20.0 50.0</gml:lowerCorner><gml:upperCorner>25.0 55.0</gml:upperCorner></gml:Envelope></ogc:BBOX></ogc:Filter>
Zapytanie zwraca wszystkie autostrady znajdujące się w zadanym prostokącie geograficznym.
Źródła i dalsza lektura
Standardy OGC są dostępne w publicznej dokumentacji OGC. Dodatkowe informacje można znaleźć w podręcznikach dotyczących systemów informacji geograficznej oraz w publikacjach naukowych poświęconych integracji danych przestrzennych.