# Class: WKB

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

## ol/format/WKB~WKB

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

Geometry format for reading and writing data in the `Well-Known Binary` (WKB) format. Also supports `Extended Well-Known Binary` (EWKB) format, used in PostGIS for example.

#### new WKB(options)

format/WKB.js, line 701

  Name | Type | Description
  --- | --- | ---
  `splitCollection` | boolean (defaults to false) | Whether to split GeometryCollections into multiple features on reading.
  `hex` | boolean (defaults to true) | Returns hex string instead of ArrayBuffer for output. This also is used as a hint internally whether it should load contents as text or ArrayBuffer on reading.
  `littleEndian` | boolean (defaults to true) | Use littleEndian for output.
  `ewkb` | boolean (defaults to true) | Use EWKB format for output.
  `geometryLayout` | GeometryLayout (defaults to null) | Use specific coordinate layout for output features (null: auto detect)
  `nodataZ` | number (defaults to 0) | If the `geometryLayout` doesn't match with geometry to be output, this value is used to fill missing coordinate value of Z.
  `nodataM` | number (defaults to 0) | If the `geometryLayout` doesn't match with geometry to be output, this value is used to fill missing coordinate value of M.
  `srid` | number | boolean (defaults to true) | SRID for output. Specify integer value to enforce the value as a SRID. Specify `true` to extract from `dataProjection`. `false` to suppress the output. This option only takes effect when `ewkb` is `true`.

### Extends

- FeatureFormat

### Methods

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

format/WKB.js, line 742

  Read a single feature from a source.

  Name | Type | Description
  --- | --- | ---
  `source` | string | ArrayBuffer | ArrayBufferView | 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.

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

format/WKB.js, line 757

  Read all features from a source.

  Name | Type | Description
  --- | --- | ---
  `source` | string | ArrayBuffer | ArrayBufferView | 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:

  Features.

#### readGeometry(source, options){Geometry}

format/WKB.js, line 777

  Read a single geometry from a source.

  Name | Type | Description
  --- | --- | ---
  `source` | string | ArrayBuffer | ArrayBufferView | 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:

  Geometry.

#### readProjection(source){Projection | undefined}

format/WKB.js, line 801

  Read the projection from a source.

  Name | Type | Description
  --- | --- | ---
  `source` | string | ArrayBuffer | ArrayBufferView | Source.

  ##### Returns:

  Projection.

#### writeFeature(feature, options){string | ArrayBuffer}

format/WKB.js, line 825

  Encode a feature in this format.

  Name | Type | Description
  --- | --- | ---
  `feature` | Feature | Feature.
  `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.

#### writeFeatures(features, options){string | ArrayBuffer}

format/WKB.js, line 838

  Encode an array of features in this format.

  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.

#### writeGeometry(geometry, options){string | ArrayBuffer}

format/WKB.js, line 854

  Write a single geometry in this format.

  Name | Type | Description
  --- | --- | ---
  `geometry` | Geometry | Geometry.
  `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.