Class: Cluster

ol.source.Cluster

Layer source to cluster vector data. Works out of the box with point geometries. For other geometry types, or if not all geometries should be considered for clustering, a custom geometryFunction can be defined.

new ol.source.Cluster(options) experimental

src/ol/source/cluster.js, line 27
Name Type Description
options

Constructor options.

Name Type Description
attributions ol.AttributionLike | undefined experimental

Attributions.

distance number | undefined experimental

Minimum distance in pixels between clusters. Default is 20.

extent ol.Extent | undefined experimental

Extent.

geometryFunction undefined | function experimental

Function that takes an ol.Feature as argument and returns an ol.geom.Point as cluster calculation point for the feature. When a feature should not be considered for clustering, the function should return null. The default, which works when the underyling source contains point features only, is

function(feature) {
  return feature.getGeometry();
}

See ol.geom.Polygon#getInteriorPoint for a way to get a cluster calculation point for polygons.

format ol.format.Feature | undefined experimental

Format.

logo string | undefined experimental

Logo.

projection ol.ProjectionLike experimental

Projection.

source ol.source.Vector experimental

Source. Required.

wrapX boolean | undefined experimental

WrapX. Default is true

Fires:

Extends

Methods

addFeature(feature) inherited

src/ol/source/vector.js, line 162

Add a single feature to the source. If you want to add a batch of features at once, call source.addFeatures() instead.

Name Type Description
feature ol.Feature

Feature to add.

addFeatures(features) inherited

src/ol/source/vector.js, line 244

Add a batch of features to the source.

Name Type Description
features Array.<ol.Feature>

Features to add.

changed() inherited experimental

src/ol/observable.js, line 58

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

clear(opt_fast) inherited

src/ol/source/vector.js, line 344

Remove all features from the source.

Name Type Description
fast boolean

Skip dispatching of removefeature events.

dispatchEvent(event) inherited experimental

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.

forEachFeature(callback, opt_this){S|undefined} inherited

src/ol/source/vector.js, line 397

Iterate through all features on the source, calling the provided callback with each one. If the callback returns any "truthy" value, iteration will stop and the function will return the same value.

Name Type Description
callback function

Called with each feature on the source. Return a truthy value to stop iteration.

this T

The object to use as this in the callback.

Returns:
The return value from the last call to the callback.

forEachFeatureInExtent(extent, callback, opt_this){S|undefined} inherited experimental

src/ol/source/vector.js, line 454

Iterate through all features whose bounding box intersects the provided extent (note that the feature's geometry may not intersect the extent), calling the callback with each feature. If the callback returns a "truthy" value, iteration will stop and the function will return the same value.

If you are interested in features whose geometry intersects an extent, call the source.forEachFeatureIntersectingExtent() method instead.

When useSpatialIndex is set to false, this method will loop through all features, equivalent to ol.source.Vector#forEachFeature.

Name Type Description
extent ol.Extent

Extent.

callback function

Called with each feature whose bounding box intersects the provided extent.

this T

The object to use as this in the callback.

Returns:
The return value from the last call to the callback.

forEachFeatureIntersectingExtent(extent, callback, opt_this){S|undefined} inherited experimental

src/ol/source/vector.js, line 480

Iterate through all features whose geometry intersects the provided extent, calling the callback with each feature. If the callback returns a "truthy" value, iteration will stop and the function will return the same value.

If you only want to test for bounding box intersection, call the source.forEachFeatureInExtent() method instead.

Name Type Description
extent ol.Extent

Extent.

callback function

Called with each feature whose geometry intersects the provided extent.

this T

The object to use as this in the callback.

Returns:
The return value from the last call to the callback.

get(key){*} inherited

src/ol/object.js, line 148

Gets a value.

Name Type Description
key string

Key name.

Returns:
Value.

getAttributions(){Array.<ol.Attribution>} inherited

src/ol/source/source.js, line 111

Get the attributions of the source.

Returns:
Attributions.

getClosestFeatureToCoordinate(coordinate, opt_filter){ol.Feature} inherited

src/ol/source/vector.js, line 578

Get the closest feature to the provided coordinate.

This method is not available when the source is configured with useSpatialIndex set to false.

Name Type Description
coordinate ol.Coordinate

Coordinate.

filter function

Feature filter function. The filter function will receive one argument, the feature and it should return a boolean value. By default, no filtering is made.

Returns:
Closest feature.

getExtent(){ol.Extent} inherited

src/ol/source/vector.js, line 634

Get the extent of the features currently in the source.

This method is not available when the source is configured with useSpatialIndex set to false.

Returns:
Extent.

getFeatureById(id){ol.Feature} inherited

src/ol/source/vector.js, line 650

Get a feature by its identifier (the value returned by feature.getId()). Note that the index treats string and numeric identifiers as the same. So source.getFeatureById(2) will return a feature with id '2' or 2.

Name Type Description
id string | number

Feature identifier.

Returns:
The feature (or null if not found).

getFeatures(){Array.<ol.Feature>} inherited

src/ol/source/vector.js, line 518

Get all features on the source in random order.

Returns:
Features.

getFeaturesAtCoordinate(coordinate){Array.<ol.Feature>} inherited

src/ol/source/vector.js, line 539

Get all features whose geometry intersects the provided coordinate.

Name Type Description
coordinate ol.Coordinate

Coordinate.

Returns:
Features.

getFeaturesCollection(){ol.Collection.<ol.Feature>} inherited experimental

src/ol/source/vector.js, line 508

Get the features collection associated with this source. Will be null unless the source was configured with useSpatialIndex set to false, or with an ol.Collection as features.

Returns:
The collection of features.

getFeaturesInExtent(extent){Array.<ol.Feature>} inherited experimental

src/ol/source/vector.js, line 559

Get all features in the provided extent. Note that this returns an array of all features intersecting the given extent in random order (so it may include features whose geometries do not intersect the extent).

This method is not available when the source is configured with useSpatialIndex set to false.

Name Type Description
extent ol.Extent

Extent.

Returns:
Features.

getFormat(){ol.format.Feature|undefined} inherited experimental

src/ol/source/vector.js, line 662

Get the format associated with this source.

Returns:
The feature format.

getKeys(){Array.<string>} inherited

src/ol/object.js, line 162

Get a list of object property names.

Returns:
List of property names.
src/ol/source/source.js, line 121

Get the logo of the source.

Returns:
Logo.

getProjection(){ol.proj.Projection} inherited experimental

src/ol/source/source.js, line 131

Get the projection of the source.

Returns:
Projection.

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

src/ol/object.js, line 172

Get an object of all property names and values.

Returns:
Object.

getRevision(){number} inherited experimental

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.

getSource(){ol.source.Vector} experimental

src/ol/source/cluster.js, line 82

Get a reference to the wrapped source.

Returns:
Source.

getState(){ol.source.State} inherited experimental

src/ol/source/source.js, line 148

Get the state of the source, see ol.source.State for possible states.

Returns:
State.

getUrl(){string|ol.FeatureUrlFunction|undefined} inherited experimental

src/ol/source/vector.js, line 681

Get the url associated with this source.

Returns:
The url.

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.

refresh() inherited experimental

src/ol/source/source.js, line 165

Refreshes the source and finally dispatches a 'change' event.

removeFeature(feature) inherited

src/ol/source/vector.js, line 790

Remove a single feature from the source. If you want to remove all features at once, use the source.clear() method instead.

Name Type Description
feature ol.Feature

Feature to remove.

set(key, value, opt_silent) inherited

src/ol/object.js, line 197

Sets a value.

Name Type Description
key string

Key name.

value *

Value.

silent boolean

Update without triggering an event.

setAttributions(attributions) inherited experimental

src/ol/source/source.js, line 177

Set the attributions of the source.

Name Type Description
attributions ol.AttributionLike | undefined

Attributions. Can be passed as string, Array<string>, ol.Attribution, Array<ol.Attribution> or undefined.

setDistance(distance) experimental

src/ol/source/cluster.js, line 107

Set the distance in pixels between clusters.

Name Type Description
distance number

The distance in pixels.

setProperties(values, opt_silent) inherited

src/ol/object.js, line 217

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.

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.

unByKey(key) inherited

src/ol/observable.js, line 168

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 ol.EventsKey | Array.<ol.EventsKey>

The key returned by on() or once() (or an array of keys).

unset(key, opt_silent) inherited

src/ol/object.js, line 231

Unsets a property.

Name Type Description
key string

Key name.

silent boolean

Unset without triggering an event.