OpenLayers v4.0.1 API - Class: Geometry

# Class: Geometry

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

## ol.geom.Geometry

Abstract base class; normally only used for creating subclasses and not instantiated in apps. Base class for vector geometries.

To get notified of changes to the geometry, register a listener for the generic `change` event on your geometry instance.

#### new ol.geom.Geometry()

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

  ##### Fires:

  - `change` (ol.events.Event) - Generic change event. Triggered when the revision counter is increased.
  - `propertychange` (ol.Object.Event) - Triggered when a property is changed.

### Subclasses

- ol.geom.GeometryCollection
- ol.geom.SimpleGeometry

### Extends

- ol.Object

### Methods

#### changed() inherited

src/ol/observable.js, line 58

  Increases the revision counter and dispatches a 'change' event.

#### dispatchEvent(event) inherited

src/ol/observable.js, line 75

  Dispatches an event and calls all listeners listening for events of this type. The event parameter can either be a string or an Object with a `type` property.

  Name | Type | Description
  --- | --- | ---
  `event` | Object | ol.events.Event | string | Event object.

#### get(key){*} inherited

src/ol/object.js, line 101

  Gets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.

  ##### Returns:

  Value.

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

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

  Return the closest point of the geometry to the passed point as `coordinate`.

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

  ##### Returns:

  Closest point.

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

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

  Get the extent of the geometry.

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

  ##### Returns:

  extent Extent.

#### getKeys(){Array.<string>} inherited

src/ol/object.js, line 115

  Get a list of object property names.

  ##### Returns:

  List of property names.

#### getProperties(){Object.<string, *>} inherited

src/ol/object.js, line 125

  Get an object of all property names and values.

  ##### Returns:

  Object.

#### getRevision(){number} inherited

src/ol/observable.js, line 84

  Get the version number for this object. Each time the object is modified, its version number will be incremented.

  ##### Returns:

  Revision.

#### intersectsCoordinate(coordinate){boolean}

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

  Returns true if this geometry includes the specified coordinate. If the coordinate is on the boundary of the geometry, returns false.

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

  ##### Returns:

  Contains coordinate.

#### on(type, listener, opt_this){ol.EventsKey|Array.<ol.EventsKey>} inherited

src/ol/observable.js, line 99

  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 | The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### once(type, listener, opt_this){ol.EventsKey|Array.<ol.EventsKey>} inherited

src/ol/observable.js, line 124

  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 | The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### rotate(angle, anchor)

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

  Rotate the geometry around a given coordinate. This modifies the geometry coordinates in place.

  Name | Type | Description
  --- | --- | ---
  `angle` | number | Rotation angle in radians.
  `anchor` | ol.Coordinate | The rotation center.

#### scale(sx, opt_sy, opt_anchor)

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

  Scale the geometry (with an optional origin). This modifies the geometry coordinates in place.

  Name | Type | Description
  --- | --- | ---
  `sx` | number | The scaling factor in the x-direction.
  `sy` | number | The scaling factor in the y-direction (defaults to sx).
  `anchor` | ol.Coordinate | The scale origin (defaults to the center of the geometry extent).

#### set(key, value, opt_silent) inherited

src/ol/object.js, line 150

  Sets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `value` | * | Value.
  `silent` | boolean | Update without triggering an event.

#### setProperties(values, opt_silent) inherited

src/ol/object.js, line 170

  Sets a collection of key-value pairs. Note that this changes any existing properties and adds new ones (it does not remove any existing properties).

  Name | Type | Description
  --- | --- | ---
  `values` | Object.<string, *> | Values.
  `silent` | boolean | Update without triggering an event.

#### simplify(tolerance){ol.geom.Geometry}

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

  Create a simplified version of this geometry. For linestrings, this uses the the Douglas Peucker algorithm. For polygons, a quantization-based simplification is used to preserve topology.

  Name | Type | Description
  --- | --- | ---
  `tolerance` | number | The tolerance distance for simplification.

  ##### Returns:

  A new, simplified version of the original geometry.

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

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

  Transform each coordinate of the geometry from one coordinate reference system to another. The geometry is modified in place. For example, a line will be transformed to a line and a circle to a circle. If you do not want the geometry modified in place, first `clone()` it and then use this function on the clone.

  Name | Type | Description
  --- | --- | ---
  `source` | ol.ProjectionLike | The current projection. Can be a string identifier or a `ol.proj.Projection` object.
  `destination` | ol.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

src/ol/observable.js, line 147

  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 | The object which was used as `this` by the `listener`.

#### unset(key, opt_silent) inherited

src/ol/object.js, line 184

  Unsets a property.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `silent` | boolean | Unset without triggering an event.