# Class: LineString

## ol.geom.LineString

Linestring geometry.

#### new ol.geom.LineString(coordinates, opt_layout) experimental

src/ol/geom/linestring.js, line 27

  Name | Type | Description
  --- | --- | ---
  `coordinates` | ol.geom.RawLineString | Coordinates.
  `layout` | ol.geom.GeometryLayout | optional Layout.

  ##### Fires:

  - `change` experimental - Triggered when the geometry changes.

### Extends

- ol.geom.SimpleGeometry

### Methods

#### appendCoordinate(coordinate) experimental

src/ol/geom/linestring.js, line 66

  Name | Type | Description
  --- | --- | ---
  `coordinate` | ol.Coordinate | Coordinate.

#### applyTransform(transformFn) inherited experimental

src/ol/geom/simplegeometry.js, line 249

  Apply a transform function to the geometry. Modifies the geometry in place.

  Name | Type | Description
  --- | --- | ---
  `transformFn` | ol.TransformFunction | Transform.

#### clone(){ol.geom.Geometry} experimental

src/ol/geom/linestring.js, line 81

  ##### Returns:

  Clone.

#### dispatchChangeEvent() inherited experimental

src/ol/observable.js, line 41

  Dispatches a `change` event.

  ##### Fires:

  - `change` experimental

#### getClosestPoint(point, opt_closestPoint){ol.Coordinate} inherited experimental

src/ol/geom/geometry.js, line 116

  Name | Type | Description
  --- | --- | ---
  `point` | ol.Coordinate | Point.
  `closestPoint` | ol.Coordinate | optional Closest point.

  ##### Returns:

  Closest point.

#### getCoordinateAtM(m, opt_extrapolate){ol.Coordinate} experimental

src/ol/geom/linestring.js, line 122

  Returns the coordinate at `m` using linear interpolation, or `null` if no such coordinate exists.

  `opt_extrapolate` controls extrapolation beyond the range of Ms in the MultiLineString. If `opt_extrapolate` is `true` then Ms less than the first M will return the first coordinate and Ms greater than the last M will return the last coordinate.

  Name | Type | Description
  --- | --- | ---
  `m` | number | M.
  `extrapolate` | boolean | optional Extrapolate.

  ##### Returns:

  Coordinate.

#### getCoordinates(){ol.geom.RawLineString} experimental

src/ol/geom/linestring.js, line 137

  ##### Returns:

  Coordinates.

#### getExtent(opt_extent){ol.Extent} inherited experimental

src/ol/geom/simplegeometry.js, line 94

  Get the extent of the geometry.

  Name | Type | Description
  --- | --- | ---
  `extent` | ol.Extent | optional Extent.

  ##### Returns:

  extent Extent.

#### getFirstCoordinate(){ol.Coordinate} inherited experimental

src/ol/geom/simplegeometry.js, line 110

  ##### Returns:

  First coordinate.

#### getLastCoordinate(){ol.Coordinate} inherited experimental

src/ol/geom/simplegeometry.js, line 127

  ##### Returns:

  Last point.

#### getLayout(){ol.geom.GeometryLayout} inherited experimental

src/ol/geom/simplegeometry.js, line 136

  ##### Returns:

  Layout.

#### getLength(){number} experimental

src/ol/geom/linestring.js, line 147

  ##### Returns:

  Length.

#### getSimplifiedGeometry(squaredTolerance){ol.geom.Geometry} inherited experimental

src/ol/geom/simplegeometry.js, line 145

  Name | Type | Description
  --- | --- | ---
  `squaredTolerance` | number | Squared tolerance.

  ##### Returns:

  Simplified geometry.

#### getType(){ol.geom.GeometryType} experimental

src/ol/geom/linestring.js, line 187

  ##### Returns:

  Geometry type.

#### on(type, listener, opt_this){goog.events.Key} inherited experimental

src/ol/observable.js, line 63

  Listen for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | optional The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener.

#### once(type, listener, opt_this){goog.events.Key} inherited experimental

src/ol/observable.js, line 76

  Listen once for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | optional The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener.

#### setCoordinates(coordinates, opt_layout) experimental

src/ol/geom/linestring.js, line 197

  Name | Type | Description
  --- | --- | ---
  `coordinates` | ol.geom.RawLineString | Coordinates.
  `layout` | ol.geom.GeometryLayout | optional Layout.

#### transform(source, destination){ol.geom.Geometry} inherited experimental

src/ol/geom/geometry.js, line 187

  Transform a geometry from one coordinate reference system to another. Modifies the geometry in place.

  Name | Type | Description
  --- | --- | ---
  `source` | ol.proj.ProjectionLike | The current projection. Can be a string identifier or a `ol.proj.Projection` object.
  `destination` | ol.proj.ProjectionLike | The desired projection. Can be a string identifier or a `ol.proj.Projection` object.

  ##### Returns:

  This geometry. Note that original geometry is modified in place.

#### un(type, listener, opt_this) inherited experimental

src/ol/observable.js, line 88

  Unlisten for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | optional The object to use as `this` in `listener`.

#### unByKey(key) inherited experimental

src/ol/observable.js, line 98

  Removes an event listener using the key returned by `on()` or `once()`.

  Name | Type | Description
  --- | --- | ---
  `key` | goog.events.Key | Key.