OGC Web Feature Service

Publishes feature-level geospatial data to the web and supports INSERT, UPDATE, DELETE, LOCK, QUERY, and DISCOVERY operations on these data using HTTP

WFS Provides three main Requests:

  • GetCapabilities:  Describes its which feature types it can service and what operations are supported on each feature type.
  • DescribeFeatureType:  Describes the structure of any feature type it can service
  • GetFeature:  Allows retrieval of feature instances based on client specified request to constrain the query spatially and non-spatially.

WFS Optional Requests:

  • GetGmlObject:  Provides retrieval of element instances by traversing XLinks that refer to their XML IDs.
  • Transaction :  Allows create, update, and delete operations on geographic features
  • LockFeature: Provides lock request on one or more instances of a feature type for the duration of a transaction to ensure support of serializable transactions

WFS Benefits

Instead of returning an image as WMS does, WFS provides detailed information about specific geospatial features of the underlying data, at geometry and attribute levels. Unlike the WMS getFeatureInfo request that only returns information about the feature, WFS provides the geometry itself. Whereas WMS offers imaging services, WFS provides geographical features as the “source code” behind the map. WFS has optional features that allow inserting and modifying geospatial objects such as weather observation readings.

WFS Example

The following links are two examples for GetCapabilities Request:

GetFeature Request: Elevation contours for the Greenland ice sheet:

http://nsidc.org/cgi-bin/atlas_north?service=WFS&version=1.1.0&
request=GetFeature&typename=greenland_elevation_contours 

WFS GetFeature  XML Response from Server:

<wfs:FeatureCollection xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://nsidc.org/cgi-bin/atlas_north?SERVICE=WFS&VERSION=1.1.0&REQUEST=D...

subtype=gml/3.1.1  http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">

<gml:boundedBy><gml:Envelope srsName="EPSG:32661">

<gml:lowerCorner>-406699.951843 -456661.863393</gml:lowerCorner>

<gml:upperCorner>1677349.428068 1589388.039689</gml:upperCorner>

</gml:Envelope>

</gml:boundedBy>

<gml:featureMember>

<ms:greenland_elevation_contours><gml:boundedBy>

<gml:Envelope srsName="EPSG:32661“>

<gml:lowerCorner>-327189.501776 -456661.863393</gml:lowerCorner>

……………………….

………………………

</gml:featureMember>

</wfs:FeatureCollection>

Images: