# Module: ol/format/Feature

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

## ol/format/Feature

### Classes

FeatureFormat

### Type Definitions

#### FeatureObject{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `id` | string | number | undefined | Id.
  `geometry` | GeometryObject | undefined | Geometry.
  `properties` | Object.<string, *> | undefined | Properties.

#### GeometryCollectionObject{Array<GeometryObject>}

#### GeometryObject{SimpleGeometryObject} {GeometryCollectionObject}

#### ReadOptions{Object}

  ##### Properties:

  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`.

#### SimpleGeometryObject{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `type` | Type | Type.
  `flatCoordinates` | Array.<number> | Flat coordinates.
  `ends` | Array.<number> | Array.<Array.<number>> | undefined | Ends or endss.
  `layout` | GeometryLayout | undefined | Layout.

#### Type{'arraybuffer'} {'json'} {'text'} {'xml'}

#### WriteOptions{Object}

  ##### Properties:

  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.