OpenLayers v4.0.1 API - Class: Polygon

# Class: Polygon

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

## ol.geom.Polygon

Polygon geometry.

#### new ol.geom.Polygon(coordinates, opt_layout)

src/ol/geom/polygon.js, line 38

  Name | Type | Description
  --- | --- | ---
  `coordinates` | Array.<Array.<ol.Coordinate>> | Array of linear rings that define the polygon. The first linear ring of the array defines the outer-boundary or surface of the polygon. Each subsequent linear ring defines a hole in the surface of the polygon. A linear ring is an array of vertices' coordinates where the first coordinate and the last are equivalent.
  `layout` | ol.geom.GeometryLayout | Layout.

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

### Extends

- ol.geom.SimpleGeometry

### Methods

#### ol.geom.Polygon.circular(sphere, center, radius, opt_n){ol.geom.Polygon}

src/ol/geom/polygon.js, line 380

  Create an approximation of a circle on the surface of a sphere.

  Name | Type | Description
  --- | --- | ---
  `sphere` | ol.Sphere | The sphere.
  `center` | ol.Coordinate | Center (`[lon, lat]` in degrees).
  `radius` | number | The great-circle distance from the center to the polygon vertices.
  `n` | number | Optional number of vertices for the resulting polygon. Default is `32`.

  ##### Returns:

  The "circular" polygon.

#### ol.geom.Polygon.fromCircle(circle, opt_sides, opt_angle){ol.geom.Polygon}

src/ol/geom/polygon.js, line 426

  Create a regular polygon from a circle.

  Name | Type | Description
  --- | --- | ---
  `circle` | ol.geom.Circle | Circle geometry.
  `sides` | number | Number of sides of the polygon. Default is 32.
  `angle` | number | Start angle for the first vertex of the polygon in radians. Default is 0.

  ##### Returns:

  Polygon geometry.

#### ol.geom.Polygon.fromExtent(extent){ol.geom.Polygon}

src/ol/geom/polygon.js, line 403

  Create a polygon from an extent. The layout used is `XY`.

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

  ##### Returns:

  The polygon.

#### appendLinearRing(linearRing)

src/ol/geom/polygon.js, line 95

  Append the passed linear ring to this polygon.

  Name | Type | Description
  --- | --- | ---
  `linearRing` | ol.geom.LinearRing | Linear ring.

#### applyTransform(transformFn) inherited

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

  Apply a transform function to each coordinate of the geometry. The geometry is modified in place. If you do not want the geometry modified in place, first `clone()` it and then use this function on the clone.

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

#### changed() inherited

src/ol/observable.js, line 58

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

#### clone(){ol.geom.Polygon}

src/ol/geom/polygon.js, line 112

  Make a complete copy of the geometry.

  ##### Returns:

  Clone.

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

#### getArea(){number}

src/ol/geom/polygon.js, line 153

  Return the area of the polygon on projected plane.

  ##### Returns:

  Area (on projected plane).

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

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.

#### getCoordinates(opt_right){Array.<Array.<ol.Coordinate>>}

src/ol/geom/polygon.js, line 173

  Get the coordinate array for this geometry. This array has the structure of a GeoJSON coordinate array for polygons.

  Name | Type | Description
  --- | --- | ---
  `right` | boolean | Orient coordinates according to the right-hand rule (counter-clockwise for exterior and clockwise for interior rings). If `false`, coordinates will be oriented according to the left-hand rule (clockwise for exterior and counter-clockwise for interior rings). By default, coordinate orientation will depend on how the geometry was constructed.

  ##### Returns:

  Coordinates.

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

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

  Get the extent of the geometry.

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

  ##### Returns:

  extent Extent.

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

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

  Return the first coordinate of the geometry.

  ##### Returns:

  First coordinate.

#### getInteriorPoint(){ol.geom.Point}

src/ol/geom/polygon.js, line 216

  Return an interior point of the polygon.

  ##### Returns:

  Interior point.

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

src/ol/object.js, line 115

  Get a list of object property names.

  ##### Returns:

  List of property names.

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

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

  Return the last coordinate of the geometry.

  ##### Returns:

  Last point.

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

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

  Return the `layout` of the geometry.

  ##### Returns:

  Layout.

#### getLinearRing(index){ol.geom.LinearRing}

src/ol/geom/polygon.js, line 243

  Return the Nth linear ring of the polygon geometry. Return `null` if the given index is out of range. The exterior linear ring is available at index `0` and the interior rings at index `1` and beyond.

  Name | Type | Description
  --- | --- | ---
  `index` | number | Index.

  ##### Returns:

  Linear ring.

#### getLinearRingCount(){number}

src/ol/geom/polygon.js, line 228

  Return the number of rings of the polygon, this includes the exterior ring and any interior rings.

  ##### Returns:

  Number of rings.

#### getLinearRings(){Array.<ol.geom.LinearRing>}

src/ol/geom/polygon.js, line 259

  Return the linear rings of the polygon.

  ##### Returns:

  Linear rings.

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

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

src/ol/geom/polygon.js, line 319

  Get the type of this geometry.

  ##### Returns:

  Geometry type.

#### intersectsCoordinate(coordinate){boolean} inherited

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.

#### intersectsExtent(extent){boolean}

src/ol/geom/polygon.js, line 328

  Test if the geometry and the passed extent intersect.

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

  ##### Returns:

  `true` if the geometry and the extent intersect.

#### 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) inherited

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) inherited

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.

#### setCoordinates(coordinates, opt_layout)

src/ol/geom/polygon.js, line 341

  Set the coordinates of the polygon.

  Name | Type | Description
  --- | --- | ---
  `coordinates` | Array.<Array.<ol.Coordinate>> | Coordinates.
  `layout` | ol.geom.GeometryLayout | Layout.

#### 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} inherited

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} inherited

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.

#### translate(deltaX, deltaY) inherited

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

  Translate the geometry. This modifies the geometry coordinates in place. If instead you want a new geometry, first `clone()` this geometry.

  Name | Type | Description
  --- | --- | ---
  `deltaX` | number | Delta X.
  `deltaY` | number | Delta Y.

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