Class: Feature

ol.Feature

A vector object for geographic features with a geometry and other attribute properties, similar to the features in vector file formats like GeoJSON.

Features can be styled individually with setStyle; otherwise they use the style of their vector layer or feature overlay.

Note that attribute properties are set as ol.Object properties on the feature object, so they are observable, and have get/set accessors.

Typically, a feature has a single geometry property. You can set the geometry using the setGeometry method and get it with getGeometry. It is possible to store more than one geometry on a feature using attribute properties. By default, the geometry used for rendering is identified by the property name geometry. If you want to use another geometry property for rendering, use the setGeometryName method to change the attribute property associated with the geometry for the feature. For example:

var feature = new ol.Feature({
  geometry: new ol.geom.Polygon(polyCoords),
  labelPoint: new ol.geom.Point(labelCoords),
  name: 'My Polygon'
});

// get the polygon geometry
var poly = feature.getGeometry();

// Render the feature as a point using the coordinates from labelPoint
feature.setGeometryName('labelPoint');

// get the point geometry
var point = feature.getGeometry();

new ol.Feature(opt_geometryOrProperties)

src/ol/feature.js, line 61
Name Type Description
geometryOrProperties ol.geom.Geometry | Object.<string, *>=

You may pass a Geometry object directly, or an object literal containing properties. If you pass an object literal, you may include a Geometry associated with a geometry key.

Fires:

Extends

Observable Properties

Name Type Settable ol.ObjectEvent type Description
geometry ol.geom.Geometry | undefined yes change:geometry

The default geometry for the feature.

Methods

changed() inherited experimental

src/ol/observable.js, line 52

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

Fires:
  • change experimental

clone(){ol.Feature}

src/ol/feature.js, line 124

Clone this feature. If the original feature has a geometry it is also cloned. The feature id is not set in the clone.

Returns:
The clone.

get(key){*} inherited

src/ol/object.js, line 150

Gets a value.

Name Type Description
key string

Key name.

Returns:
Value.

getGeometry(){ol.geom.Geometry|undefined}

src/ol/feature.js, line 147

Get the feature's default geometry. A feature may have any number of named geometries. The "default" geometry (the one that is rendered by default) is set when calling ol.Feature#setGeometry.

Returns:
The default geometry for the feature.

getGeometryName(){string}

src/ol/feature.js, line 169

Get the name of the feature's default geometry. By default, the default geometry is named geometry.

Returns:
Get the property name associated with the default geometry for this feature.

getId(){number|string|undefined}

src/ol/feature.js, line 157
Returns:
Id.

getKeys(){Array.<string>} inherited

src/ol/object.js, line 164

Get a list of object property names.

Returns:
List of property names.

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

src/ol/object.js, line 174

Get an object of all property names and values.

Returns:
Object.

getRevision(){number} inherited experimental

src/ol/observable.js, line 62
Returns:
Revision.

getStyle(){ol.style.Style|Array.<ol.style.Style>|ol.FeatureStyleFunction}

src/ol/feature.js, line 181

Get the feature's style. This return for this method depends on what was provided to the ol.Feature#setStyle method.

Returns:
The feature style.

getStyleFunction(){ol.FeatureStyleFunction|undefined}

src/ol/feature.js, line 192

Get the feature's style function.

Returns:
Return a function representing the current style of this feature.

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

src/ol/observable.js, line 75

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.

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

src/ol/observable.js, line 88

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.

set(key, value) inherited

src/ol/object.js, line 203

Sets a value.

Name Type Description
key string

Key name.

value *

Value.

setGeometry(geometry)

src/ol/feature.js, line 229

Set the default geometry for the feature. This will update the property with the name returned by ol.Feature#getGeometryName.

Name Type Description
geometry ol.geom.Geometry | undefined

The new geometry.

setGeometryName(name)

src/ol/feature.js, line 271

Set the property name to be used when getting the feature's default geometry. When calling ol.Feature#getGeometry, the value of the property with this name will be returned.

Name Type Description
name string

The property name of the default geometry.

setId(id)

src/ol/feature.js, line 258

Set the feature id. The feature id is considered stable and may be used when requesting features or comparing identifiers returned from a remote source. The feature id can be used with the ol.source.Vector#getFeatureById method.

Name Type Description
id number | string | undefined

The feature id.

setProperties(values) inherited

src/ol/object.js, line 216

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.

setStyle(style)

src/ol/feature.js, line 242

Set the style for the feature. This can be a single style object, an array of styles, or a function that takes a resolution and returns an array of styles. If it is null the feature has no style (a null style).

Name Type Description
style ol.style.Style | Array.<ol.style.Style> | ol.FeatureStyleFunction

Style for this feature.

un(type, listener, opt_this) inherited

src/ol/observable.js, line 101

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.

unByKey(key) inherited

src/ol/observable.js, line 114

Removes an event listener using the key returned by on() or once(). Note that using the ol.Observable.unByKey static function is to be preferred.

Name Type Description
key goog.events.Key

The key returned by on() or once().

unset(key) inherited

src/ol/object.js, line 229

Unsets a property.

Name Type Description
key string

Key name.