OpenLayers v4.0.1 API - Class: KML

# Class: KML

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

## ol.format.KML

Feature format for reading and writing data in the KML format.

Note that the KML format uses the URL() constructor. Older browsers such as IE which do not support this will need a URL polyfill to be loaded before use.

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

src/ol/format/kml.js, line 49

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

  `options`

  Options.

  Name | Type | Description
  --- | --- | ---
  `extractStyles` | boolean | undefined | Extract styles from the KML. Default is `true`.
  `showPointNames` | boolean | undefined | Show names as labels for placemarks which contain points. Default is `true`.
  `defaultStyle` | Array.<ol.style.Style> | undefined | Default style. The default default style is the same as Google Earth.
  `writeStyles` | boolean | undefined | Write styles into KML. Default is `true`.

### Extends

- ol.format.XMLFeature

### Methods

#### readFeature(source, opt_options){ol.Feature}

src/ol/format/kml.js, line 1770

  Read the first feature from a KML source. MultiGeometries are converted into GeometryCollections if they are a mix of geometry types, and into MultiPoint/ MultiLineString/MultiPolygon if they are all of the same type.

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

  `options`

  Read 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:

  Feature.

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

src/ol/format/kml.js, line 1801

  Read all features from a KML source. MultiGeometries are converted into GeometryCollections if they are a mix of geometry types, and into MultiPoint/ MultiLineString/MultiPolygon if they are all of the same type.

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

  `options`

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

#### readName(source){string|undefined}

src/ol/format/kml.js, line 1852

  Read the name of the KML.

  Name | Type | Description
  --- | --- | ---
  `source` | Document | Node | string | Souce.

  ##### Returns:

  Name.

#### readNetworkLinks(source){Array.<Object>}

src/ol/format/kml.js, line 1920

  Read the network links of the KML.

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

  ##### Returns:

  Network links.

#### readProjection(source){ol.proj.Projection}

src/ol/format/kml.js, line 2052

  Read the projection from a KML source.

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

  ##### Returns:

  Projection.

#### readRegion(source){Array.<Object>}

src/ol/format/kml.js, line 1985

  Read the regions of the KML.

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

  ##### Returns:

  Regions.

#### readRegionFromNode(node){Array.<Object>}

src/ol/format/kml.js, line 2021

  Name | Type | Description
  --- | --- | ---
  `node` | Node | Node.

  ##### Returns:

  Region.

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

src/ol/format/kml.js, line 3011

  Encode an array of features in the KML format. GeometryCollections, MultiPoints, MultiLineStrings, and MultiPolygons are output as MultiGeometries.

  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/kml.js, line 3024

  Encode an array of features in the KML format as an XML node. GeometryCollections, MultiPoints, MultiLineStrings, and MultiPolygons are output as MultiGeometries.

  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.