---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/objectManager.ClusterCollection.md
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/llms.txt

# objectManager.ClusterCollection

Расширяет [ICustomizable](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ICustomizable.md), [IEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md).

Коллекция кластеров, сгенерированных [ObjectManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ObjectManager.md). Кластеры добавляются и удаляются из коллекции автоматически в ходе работы и доступны только на чтение. Объект-кластер представляет из себя JSON-структуру, аналогичную объектам в составе слоя. Поля объекта-кластера:
- id - уникальный идентификатор кластера;
- geometry - описание геометрии кластера;
- properties - описание данных кластера. В поле properties.geoObjects хранится массив объектов, входящих в состав кластера;
- options - опции кластера. Необязательное поле;

[Конструктор](#constructor-summary) | [Поля ](#properties-summary) | [События ](#events-summary) | [Методы ](#methods-summary)

## Конструктор {#constructor-summary}

```javascript
objectManager.ClusterCollection()
```

## Поля {#properties-summary}

#|
|| **Имя** | **Тип** | **Описание** ||
||  [balloon](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#balloon) | [objectManager.Balloon](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.Balloon.md) | Балун кластера в составе менеджера. ||
|| [events](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md#events) | [IEventManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventManager.md) | Менеджер событий.

Унаследовано от [IEventEmitter](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md#events). ||
|| [hint](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#hint) | [objectManager.Hint](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.Hint.md) | Хинт объекта в составе [ObjectManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ObjectManager.md). Названия полей доступны через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- objectId – идентификатор объекта, над которым был показан хинт (всплывающая подсказка). ||
|| [options](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#options) | [option.Manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md) | Менеджер опций. Имена полей, доступных через метод option.Manager.get:
- hasBalloon - флаг наличия у коллекции поля .balloon. Если при клике на кластер не нужно открывать балун, рекомендуется установить эту опцию в значение false, чтобы избежать лишних инициализаций;
- hasHint - флаг наличия у коллекции поля .hint. Если при наведении на кластер не нужно показывать всплывающую подсказку, рекомендуется установить эту опцию в значение false, чтобы избежать лишних инициализаций;
- hideIconOnBalloonOpen - cкрывать иконку при открытии балуна. Значение по умолчанию true.
- openBalloonOnClick - опция, позволяющая запретить открытие балуна при клике на кластер. По умолчанию открытие балуна разрешено;
- openHintOnHover - опция, позволяющая запретить показ всплывающей подсказки при наведении на кластер. По умолчанию показ хинтов разрешен. ||
|| [overlays](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#overlays) | [objectManager.OverlayCollection](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.OverlayCollection.md) | Коллекция оверлеев кластеров. Все события, за исключением событий add и remove, пропагируются от коллекции оверлеев в коллекцию кластеров. ||
|| [state](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#state) | [data.Manager](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/data.Manager.md) | Состояние коллекции кластеров. Определяется следующими полями:
- activeObject – JSON-описание объекта, выбранного в балуне кластера. ||
|#

## События {#events-summary}

#|
|| **Имя** | **Описание** ||
|| [add](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#event-add) | Добавление кластера в коллекцию. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- objectId – идентификатор добавленного объекта;
- child - добавленный объект. ||
|| [clusteroptionschange](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#event-clusteroptionschange) | Изменение опций кластера через метод [objectManager.ClusterCollection.setClusterOptions](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#setClusterOptions). Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- objectId - идентификатор кластера, у которого заменили опции. ||
|| [optionschange](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ICustomizable.md#event-optionschange) | Изменение в опциях объекта.

Унаследовано от [ICustomizable](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ICustomizable.md#event-optionschange). ||
|| [remove](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#event-remove) | Удаление кластера из коллекции. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- objectId – идентификатор удаленного объекта;
- child - удаленный объект. ||
|#

## Методы {#methods-summary}

#|
|| **Имя** | **Возвращает** | **Описание** ||
|| [each](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#each)([callback](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#each-param-callback), [context](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#each-param-context)) ||
|| [getAll](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#getAll)() | Object[] | Возвращает массив объектов, содержащихся в коллекции. ||
|| [getById](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#getById)([id](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#getById-param-id)) | Object\|null | Возвращает объект-кластер c указанным идентификатором или null, если такого кластера не существует. ||
|| [getIterator](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#getIterator)() | [IIterator](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IIterator.md) | Возвращает итератор по коллекции. ||
|| [getLength](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#getLength)() | Number | Возвращает количество объектов в коллекции. ||
|| [getObjectManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#getObjectManager)() | [ObjectManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ObjectManager.md) | Возвращает родительский слой объектов коллекции. ||
|| [setClusterOptions](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#setClusterOptions)([objectId](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#setClusterOptions-param-objectId), [options](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#setClusterOptions-param-options)) | [objectManager.ObjectCollection](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ObjectCollection.md) | Возвращает ссылку на себя. ||
|#

## Описание полей {#field_detail}

### balloon {#balloon}

```javascript
{objectManager.Balloon} balloon
```

Балун кластера в составе менеджера.

### hint {#hint}

```javascript
{objectManager.Hint} hint
```

Хинт объекта в составе [ObjectManager](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ObjectManager.md). Названия полей доступны через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- objectId – идентификатор объекта, над которым был показан хинт (всплывающая подсказка).

### options {#options}

```javascript
{option.Manager} options
```

Менеджер опций. Имена полей, доступных через метод option.Manager.get:
- hasBalloon - флаг наличия у коллекции поля .balloon. Если при клике на кластер не нужно открывать балун, рекомендуется установить эту опцию в значение false, чтобы избежать лишних инициализаций;
- hasHint - флаг наличия у коллекции поля .hint. Если при наведении на кластер не нужно показывать всплывающую подсказку, рекомендуется установить эту опцию в значение false, чтобы избежать лишних инициализаций;
- hideIconOnBalloonOpen - cкрывать иконку при открытии балуна. Значение по умолчанию true.
- openBalloonOnClick - опция, позволяющая запретить открытие балуна при клике на кластер. По умолчанию открытие балуна разрешено;
- openHintOnHover - опция, позволяющая запретить показ всплывающей подсказки при наведении на кластер. По умолчанию показ хинтов разрешен.

**Пример:**

```javascript
objectManager.objects.options.set({
    preset: 'islands#greenDotIcon',
    hintContentLayout: ymaps.templateLayoutFactory.createClass('{{propeties.name}}')
});
```

### overlays {#overlays}

```javascript
{objectManager.OverlayCollection} overlays
```

Коллекция оверлеев кластеров. Все события, за исключением событий add и remove, пропагируются от коллекции оверлеев в коллекцию кластеров.

**Пример:**

```javascript
// Изменение цвета значка кластера при наведении курсора мыши.
objectManager.clusters.events.add(['mouseenter', 'mouseleave'], function (e) {
    var objectId = e.get('objectId');
    var overlay = objectManager.clusters.overlays.getById(objectId);
    if (e.get('type') == 'mouseenter') {
        setRedColor(objectId);
        overlay.events.add('mapchange', onMapChange);
    } else {
        setGreenColor(objectId);
        overlay.events.remove('mapchange', onMapChange);
    }
});

function onMapChange (e) {
    setGreenColor(objectManager.clusters.overlays.getId(e.get('target')));
}

function setGreenColor (objectId) {
    objectManager.clusters.setClusterOptions(objectId, {
        preset: 'islands#greenClusterIcons'
    });
}

function setRedColor (objectId) {
    objectManager.clusters.setClusterOptions(objectId, {
        preset: 'islands#redClusterIcons'
    });
}
```

### state {#state}

```javascript
{data.Manager} state
```

Состояние коллекции кластеров. Определяется следующими полями:
- activeObject – JSON-описание объекта, выбранного в балуне кластера.

**Пример:**

```javascript
// Откроем балун кластера с нужным выбранным объектом.
var objectState = objectManager.getObjectState(myObjects[i]);
if (objectState.isClustered) {
    objectManager.clusters.state.set('activeObject', myObjects[i]);
    objectManager.clusters.balloon.open(objectState.cluster.id)
}
```

## Описание событий {#event_detail}

### add {#add}

Добавление кластера в коллекцию. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- objectId – идентификатор добавленного объекта;
- child - добавленный объект.

### clusteroptionschange {#clusteroptionschange}

Изменение опций кластера через метод [objectManager.ClusterCollection.setClusterOptions](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/objectManager.ClusterCollection.md#setClusterOptions). Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- objectId - идентификатор кластера, у которого заменили опции.

### remove {#remove}

Удаление кластера из коллекции. Экземпляр класса [Event](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- objectId – идентификатор удаленного объекта;
- child - удаленный объект.

## Описание методов {#method_detail}

### each {#each}

```javascript
{} each(callback, context)
```

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`callback`](#each-param-callback)[*](*star) | — | Тип: Function

Функция-обработчик, в которую передаются объекты коллекции. ||
|| [`context`](#each-param-context)[*](*star) | — | Тип: Object

Контекст исполнения функции-обработчика. ||
|#

\* Обязательный параметр/опция.

**Пример:**

```javascript
var clusterizedObjectsCounter = 0;
objectManager.clusters.each(function (cluster) {
    clusterizedObjectsCounter += cluster.properties.geoObjects.length;
});
alert('На карте показано ' + clusterizedObjectsCounter + ' кластеризованных объектов.');
```

### getAll {#getAll}

```javascript
{Object[]} getAll()
```

**Возвращает** массив объектов, содержащихся в коллекции.

**Пример:**

```javascript
var clusterArray = objectManager.clusters.getAll();
```

### getById {#getById}

```javascript
{Object|null} getById(id)
```

**Возвращает** объект-кластер c указанным идентификатором или null, если такого кластера не существует.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`id`](#getById-param-id)[*](*star) | — | Тип: String

Идентификатор кластера. ||
|#

\* Обязательный параметр/опция.

**Пример:**

```javascript
// Будем менять цвет кластера, если в нем более 20 объектов.
objectManager.clusters.events.add('add', function (e) {
   var cluster = objectManager.clusters.getById(e.get('objectId')),
        objects = cluster.properties.geoObjects;
    if (objects.length > 20) {
        objectManager.clusters.setClusterOptions(cluster.id, {
            preset: 'islands#redClusterIcons'
        });
    }
});
```

### getIterator {#getIterator}

```javascript
{IIterator} getIterator()
```

**Возвращает** итератор по коллекции.

**Пример:**

```javascript
var clusterizedObjectsCounter = 0;
var it = objectManager.clusters.getIterator();
var cluster;
while ((cluster = it.getNext()) != it.STOP_ITERATION)
    clusterizedObjectsCounter += cluster.properties.geoObjects.length;
});
alert('На карте показано ' + clusterizedObjectsCounter + ' кластеризованных объектов.');
```

### getLength {#getLength}

```javascript
{Number} getLength()
```

**Возвращает **количество объектов в коллекции.

**Пример:**

```javascript
alert('На карте показано ' + objectManager.clusters.getLength() + ' кластеров.');
```

### getObjectManager {#getObjectManager}

```javascript
{ObjectManager} getObjectManager()
```

**Возвращает** родительский слой объектов коллекции.

### setClusterOptions {#setClusterOptions}

```javascript
{objectManager.ObjectCollection} setClusterOptions(objectId, options)
```

**Возвращает** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`objectId`](#setClusterOptions-param-objectId)[*](*star) | — | Тип: String

Идентификатор кластера. ||
|| [`options`](#setClusterOptions-param-options)[*](*star) | — | Тип: Object

Объект с опциями кластера. ||
|#

\* Обязательный параметр/опция.

**Пример:**

```javascript
// Будем менять цвет кластера, если в нем более 20 объектов.
objectManager.clusters.events.add('add', function (e) {
   var cluster = objectManager.clusters.getById(e.get('objectId')),
        objects = cluster.properties.geoObjects;
    if (objects.length > 20) {
        objectManager.clusters.setClusterOptions(cluster.id, {
            preset: 'islands#redClusterIcons'
        });
    }
});
```

<!-- XLIFF_FARM_ZTg0YmM1_CACHING -->

[*star]: Обязательный параметр.