# Class: WFS

This documentation is for OpenLayers v10.9.0. The latest is v.

## ol/format/WFS~WFS

    import WFS from 'ol/format/WFS.js';

Feature format for reading and writing data in the WFS format. By default, supports WFS version 1.1.0. You can pass a GML format as option to override the default. Also see `GMLBase` which is used by this format.

#### new WFS(options)

format/WFS.js, line 271

  Name | Type | Description
  --- | --- | ---
  `featureNS` | Object.<string, string> | string | undefined | The namespace URI used for features.
  `featureType` | Array.<string> | string | undefined | The feature type to parse. Only used for read operations.
  `gmlFormat` | GMLBase | undefined | The GML format to use to parse the response. Default is `ol/format/GML2` for WFS 1.0.0, `ol/format/GML3` for WFS 1.1.0 and `ol/format/GML32` for WFS 2.0.0.
  `schemaLocation` | string | undefined | Optional schemaLocation to use for serialization, this will override the default.
  `version` | string (defaults to '1.1.0') | WFS version to use. Can be either `1.0.0`, `1.1.0` or `2.0.0`.

### Extends

- XMLFeature

### Methods

#### readFeature(source, options){Feature} inherited

format/XMLFeature.js, line 45

  Read a single feature.

  Name | Type | Description
  --- | --- | ---
  `source` | Document | Element | Object | string | Source.
  `options` | Read options.
  Name | Type | Description
  --- | --- | ---
  `dataProjection` | ProjectionLike | undefined | Projection of the data we are reading. If not provided, the projection will be derived from the data (where possible) or the `dataProjection` of the format is assigned (where set). If the projection can not be derived from the data and if no `dataProjection` is set for a format, the features will not be reprojected.
  `extent` | Extent | undefined | Tile extent in map units of the tile being read. This is only required when reading data with tile pixels as geometry units. When configured, a `dataProjection` with `TILE_PIXELS` as `units` and the tile's pixel extent as `extent` needs to be provided.
  `featureProjection` | ProjectionLike | undefined | Projection of the feature geometries created by the format reader. If not provided, features will be returned in the `dataProjection`.

  ##### Returns:

  Feature.

#### readFeatureCollectionMetadata(source){FeatureCollectionMetadata | undefined}

format/WFS.js, line 400

  Read feature collection metadata of the source.

  Name | Type | Description
  --- | --- | ---
  `source` | Document | Element | Object | string | Source.

  ##### Returns:

  FeatureCollection metadata.

#### readFeatures(source, options){Array<Feature>} inherited

format/XMLFeature.js, line 93

  Read all features from a feature collection.

  Name | Type | Description
  --- | --- | ---
  `source` | Document | Element | Object | string | Source.
  `options` | Options.
  Name | Type | Description
  --- | --- | ---
  `dataProjection` | ProjectionLike | undefined | Projection of the data we are reading. If not provided, the projection will be derived from the data (where possible) or the `dataProjection` of the format is assigned (where set). If the projection can not be derived from the data and if no `dataProjection` is set for a format, the features will not be reprojected.
  `extent` | Extent | undefined | Tile extent in map units of the tile being read. This is only required when reading data with tile pixels as geometry units. When configured, a `dataProjection` with `TILE_PIXELS` as `units` and the tile's pixel extent as `extent` needs to be provided.
  `featureProjection` | ProjectionLike | undefined | Projection of the feature geometries created by the format reader. If not provided, features will be returned in the `dataProjection`.

  ##### Returns:

  Features.

#### readProjection(source){Projection} inherited

format/XMLFeature.js, line 194

  Read the projection from the source.

  Name | Type | Description
  --- | --- | ---
  `source` | Document | Element | Object | string | Source.

  ##### Returns:

  Projection.

#### readTransactionResponse(source){TransactionResponse | undefined}

format/WFS.js, line 374

  Read transaction response of the source.

  Name | Type | Description
  --- | --- | ---
  `source` | Document | Element | Object | string | Source.

  ##### Returns:

  Transaction response.

#### writeFeatures(features, options){string} inherited

format/XMLFeature.js, line 258

  Encode an array of features as string.

  Name | Type | Description
  --- | --- | ---
  `features` | Array<Feature> | Features.
  `options` | Write options.
  Name | Type | Description
  --- | --- | ---
  `dataProjection` | ProjectionLike | undefined | Projection of the data we are writing. If not provided, the `dataProjection` of the format is assigned (where set). If no `dataProjection` is set for a format, the features will be returned in the `featureProjection`.
  `featureProjection` | ProjectionLike | undefined | Projection of the feature geometries that will be serialized by the format writer. If not provided, geometries are assumed to be in the `dataProjection` if that is set; in other words, they are not transformed.
  `rightHanded` | boolean | undefined | When writing geometries, follow the right-hand rule for linear ring orientation. This means that polygons will have counter-clockwise exterior rings and clockwise interior rings. By default, coordinates are serialized as they are provided at construction. If `true`, the right-hand rule will be applied. If `false`, the left-hand rule will be applied (clockwise for exterior and counter-clockwise for interior rings). Note that not all formats support this. The GeoJSON format does use this property when writing geometries.
  `decimals` | number | undefined | Maximum number of decimal places for coordinates. Coordinates are stored internally as floats, but floating-point arithmetic can create coordinates with a large number of decimal places, not generally wanted on output. Set a number here to round coordinates. Can also be used to ensure that coordinates read in can be written back out with the same number of decimals. Default is no rounding.

  ##### Returns:

  Result.

#### writeGetFeature(options){Node}

format/WFS.js, line 487

  Encode format as WFS `GetFeature` and return the Node.

  Name | Type | Description
  --- | --- | ---
  `featureNS` | string | The namespace URI used for features.
  `featurePrefix` | string | The prefix for the feature namespace.
  `featureTypes` | Array.<(string|module:ol/format/WFS~FeatureType)> | The feature type names or FeatureType objects to define a unique bbox filter per feature type name (in this case, options `bbox` and `geometryName` are ignored.).
  `srsName` | string | undefined | SRS name. No srsName attribute will be set on geometries when this is not provided.
  `handle` | string | undefined | Handle.
  `outputFormat` | string | undefined | Output format.
  `maxFeatures` | number | undefined | Maximum number of features to fetch.
  `geometryName` | string | undefined | Geometry name to use in a BBOX filter.
  `propertyNames` | Array.<string> | undefined | Optional list of property names to serialize.
  `viewParams` | string | undefined | viewParams GeoServer vendor parameter.
  `startIndex` | number | undefined | Start index to use for WFS paging. This is a WFS 2.0 feature backported to WFS 1.1.0 by some Web Feature Services.
  `count` | number | undefined | Number of features to retrieve when paging. This is a WFS 2.0 feature backported to WFS 1.1.0 by some Web Feature Services. Please note that some Web Feature Services have repurposed `maxfeatures` instead.
  `bbox` | Extent | undefined | Extent to use for the BBOX filter. The `geometryName` option must be set.
  `filter` | Filter | undefined | Filter condition. See `ol/format/filter` for more information.
  `resultType` | string | undefined | Indicates what response should be returned, e.g. `hits` only includes the `numberOfFeatures` attribute in the response and no features.

  ##### Returns:

  Result.

#### writeTransaction(inserts, updates, deletes, options){Node}

format/WFS.js, line 603

  Encode format as WFS `Transaction` and return the Node.

  Name | Type | Description
  --- | --- | ---
  `inserts` | Array<Feature> | The features to insert.
  `updates` | Array<Feature> | The features to update.
  `deletes` | Array<Feature> | The features to delete.
  `options` | Write options.
  Name | Type | Description
  --- | --- | ---
  `featureNS` | string | The namespace URI used for features.
  `featurePrefix` | string | The prefix for the feature namespace.
  `featureType` | string | The feature type name.
  `srsName` | string | undefined | SRS name. No srsName attribute will be set on geometries when this is not provided.
  `handle` | string | undefined | Handle.
  `hasZ` | boolean | undefined | Must be set to true if the transaction is for a 3D layer. This will allow the Z coordinate to be included in the transaction.
  `nativeElements` | Array.<Object> | Native elements. Currently not supported.
  `gmlOptions` | Options | undefined | GML options for the WFS transaction writer.
  `version` | string (defaults to '1.1.0') | WFS version to use for the transaction. Can be either `1.0.0`, `1.1.0` or `2.0.0`.

  ##### Returns:

  Result.