OpenLayers v4.0.1 API - Class: GML3

# Class: GML3

This documentation is for OpenLayers v4.0.1. The latest is v.

## ol.format.GML3

Feature format for reading and writing data in the GML format version 3.1.1. Currently only supports GML 3.1.1 Simple Features profile.

#### new ol.format.GML3(opt_options)

src/ol/format/gml3.js, line 32

  Name | Type | Description
  --- | --- | ---

  `options`

  Optional configuration object.

  Name | Type | Description
  --- | --- | ---
  `featureNS` | Object.<string, string> | string | undefined | Feature namespace. If not defined will be derived from GML. If multiple feature types have been configured which come from different feature namespaces, this will be an object with the keys being the prefixes used in the entries of featureType array. The values of the object will be the feature namespaces themselves. So for instance there might be a featureType item `topp:states` in the `featureType` array and then there will be a key `topp` in the featureNS object with value `http://www.openplans.org/topp`.
  `featureType` | Array.<string> | string | undefined | Feature type(s) to parse. If multiple feature types need to be configured which come from different feature namespaces, `featureNS` will be an object with the keys being the prefixes used in the entries of featureType array. The values of the object will be the feature namespaces themselves. So for instance there might be a featureType item `topp:states` and then there will be a key named `topp` in the featureNS object with value `http://www.openplans.org/topp`.
  `srsName` | string | srsName to use when writing geometries. Required.
  `surface` | boolean | undefined | Write gml:Surface instead of gml:Polygon elements. This also affects the elements in multi-part geometries. Default is `false`.
  `curve` | boolean | undefined | Write gml:Curve instead of gml:LineString elements. This also affects the elements in multi-part geometries. Default is `false`.
  `multiCurve` | boolean | undefined | Write gml:MultiCurve instead of gml:MultiLineString. Since the latter is deprecated in GML 3, the default is `true`.
  `multiSurface` | boolean | undefined | Write gml:multiSurface instead of gml:MultiPolygon. Since the latter is deprecated in GML 3, the default is `true`.
  `schemaLocation` | string | undefined | Optional schemaLocation to use when writing out the GML, this will override the default provided.

### Extends

- ol.format.GMLBase

### Methods

#### readFeatures(source, opt_options){Array.<ol.Feature>} inherited

src/ol/format/gmlbase.js, line 569

  Read all features from a GML FeatureCollection.

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

  `options`

  Options.

  Name | Type | Description
  --- | --- | ---
  `dataProjection` | ol.ProjectionLike | Projection of the data we are reading. If not provided, the projection will be derived from the data (where possible) or the `defaultDataProjection` of the format is assigned (where set). If the projection can not be derived from the data and if no `defaultDataProjection` is set for a format, the features will not be reprojected.
  `featureProjection` | ol.ProjectionLike | Projection of the feature geometries created by the format reader. If not provided, features will be returned in the `dataProjection`.

  ##### Returns:

  Features.

#### writeFeatures(features, opt_options){string}

src/ol/format/gml3.js, line 1191

  Encode an array of features in GML 3.1.1 Simple Features.

  Name | Type | Description
  --- | --- | ---
  `features` | Array.<ol.Feature> | Features.

  `options`

  Options.

  Name | Type | Description
  --- | --- | ---
  `dataProjection` | ol.ProjectionLike | Projection of the data we are writing. If not provided, the `defaultDataProjection` of the format is assigned (where set). If no `defaultDataProjection` is set for a format, the features will be returned in the `featureProjection`.
  `featureProjection` | ol.ProjectionLike | 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.

#### writeFeaturesNode(features, opt_options){Node}

src/ol/format/gml3.js, line 1203

  Encode an array of features in the GML 3.1.1 format as an XML node.

  Name | Type | Description
  --- | --- | ---
  `features` | Array.<ol.Feature> | Features.

  `options`

  Options.

  Name | Type | Description
  --- | --- | ---
  `dataProjection` | ol.ProjectionLike | Projection of the data we are writing. If not provided, the `defaultDataProjection` of the format is assigned (where set). If no `defaultDataProjection` is set for a format, the features will be returned in the `featureProjection`.
  `featureProjection` | ol.ProjectionLike | 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:

  Node.

#### writeGeometryNode(geometry, opt_options){Node}

src/ol/format/gml3.js, line 1168

  Encode a geometry in GML 3.1.1 Simple Features.

  Name | Type | Description
  --- | --- | ---
  `geometry` | ol.geom.Geometry | Geometry.

  `options`

  Options.

  Name | Type | Description
  --- | --- | ---
  `dataProjection` | ol.ProjectionLike | Projection of the data we are writing. If not provided, the `defaultDataProjection` of the format is assigned (where set). If no `defaultDataProjection` is set for a format, the features will be returned in the `featureProjection`.
  `featureProjection` | ol.ProjectionLike | 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:

  Node.