Документация
Справочник JavaScript API
2.1.64 (текущая версия)
collection
interactivityModel
Интерфейсы

objectManager.ObjectCollection

Расширяет ICollection, ICustomizable.

Коллекция объектов, добавленных в слой.

Конструктор | Поля | События | Методы

Конструктор

objectManager.ObjectCollection()

Поля

ИмяТипОписание
balloon objectManager.Balloon

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

events IEventManager

Менеджер событий.

Унаследовано от IEventEmitter.

hint objectManager.Hint

Хинт объекта в составе ObjectManager.

options option.Manager

Менеджер опций. Имена полей, доступных через метод option.Manager.get:

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

overlays objectManager.OverlayCollection

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

События

ИмяОписание
add

Добавление объекта в коллекцию. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • objectId – идентификатор добавленного объекта;
  • child - добавленный объект.

objectoptionschange

Изменение опций объекта через метод objectManager.ObjectCollection.setObjectOptions. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • objectId - идентификатор объекта, у которого заменили опции.

optionschange

Изменение в опциях объекта.

Унаследовано от ICustomizable.

remove

Удаление объекта из коллекции. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • objectId – идентификатор удаленного объекта;
  • child - удаленный объект.

Методы

ИмяВозвращаетОписание
add(data)

objectManager.ObjectCollection

Метод полностью дублирует логику ObjectManager.add.

each(callback, context)

Метод, вызывающий переданную функцию-обработчик для всех элементов коллекции.

getAll()

Object[]

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

getById(id)

Object|null

Возвращает объект или null, если объекта с переданным id не существует.

getIterator()

IIterator

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

Унаследован от ICollection.

getLength()

Number

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

getObjectManager()

ObjectManager

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

remove(data)

objectManager.ObjectCollection

Метод полностью дублирует логику ObjectManager.remove.

removeAll()

objectManager.ObjectCollection

Удаляет все элементы коллекции.

setObjectOptions(objectId, options)

objectManager.ObjectCollection

Метод, позволяющий динамически обновлять опции объекта. Метод следует использовать в случаях, когда вы хотите, чтобы новые опции мгновенно применились к отображению объекта на карте. Обратите внимание, менеджер не учитывает опцию 'visible'.

Описание полей

balloon

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

hint

Хинт объекта в составе ObjectManager.

options

{option.Manager} options

Менеджер опций. Имена полей, доступных через метод option.Manager.get:

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

Пример:

// Зададим стили для одиночных объектов в составе коллекции.
objectManager.objects.options.set({
    preset: 'islands#redIcon',
    hasBalloon: false,
    zIndex: 500
});

overlays

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

Пример:

objectManager.objects.overlays.events.add('add', function (e) {
    alert('Объект ' + e.get('objectId') + ' показан на карте.');
});

Описание событий

add

Добавление объекта в коллекцию. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • objectId – идентификатор добавленного объекта;
  • child - добавленный объект.

objectoptionschange

Изменение опций объекта через метод objectManager.ObjectCollection.setObjectOptions. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • objectId - идентификатор объекта, у которого заменили опции.

remove

Удаление объекта из коллекции. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • objectId – идентификатор удаленного объекта;
  • child - удаленный объект.

Описание методов

add

Метод полностью дублирует логику ObjectManager.add.

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

Параметры:

ПараметрЗначение по умолчаниюОписание
data *
[no-highlight[

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

]no-highlight]

Тип: Object|Object[]|String

Объекты, добавляемые в слой.

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

Пример:

objectManager.objects.add({
    type: 'Feature',
    geometry: {
        type: 'Point',
        coordinates: [55.33, 36.64]
    }
});

each

{} each(callback, context)

Метод, вызывающий переданную функцию-обработчик для всех элементов коллекции.

Параметры:

ПараметрЗначение по умолчаниюОписание
callback *
[no-highlight[

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

]no-highlight]

Тип: Function

Функция-обработчик, в которую передаются объекты коллекции.

context *
[no-highlight[

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

]no-highlight]

Тип: Object

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

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

Пример:

var singleCounter = 0,
    clusterCounter = 0;
objectManager.objects.each(function (object) {
    var objectState = objectManager.getObjectState(object.id);
    if (objectState.isClustered) {
        clusterCounter++;
    } else {
        if (objectState.isShown) {
            singleCounter++;
        }
    }
});
alert('Количество одиночных меток на карте: ' + singleCounter);
alert('Количество кластеризированных меток: ' + clusterCounter);

getAll

{Object[]} getAll()

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

getById

{Object|null} getById(id)

Возвращает объект или null, если объекта с переданным id не существует.

Параметры:

ПараметрЗначение по умолчаниюОписание
id *
[no-highlight[

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

]no-highlight]

Тип: Number

Идентификатор объекта.

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

Пример:

objectManager.objects.add('click', function (e) {
    var objectId = e.get('objectId'),
        object = objectManager.objects.getById(objectId);
});

getLength

{Number} getLength()

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

Пример:

alert('Количество объектов в слое: ' + objectManager.objects.getLength());

getObjectManager

{ObjectManager} getObjectManager()

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

remove

Метод полностью дублирует логику ObjectManager.remove.

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

Параметры:

ПараметрЗначение по умолчаниюОписание
data *
[no-highlight[

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

]no-highlight]

Тип: Object|Object[]|String

Объекты, которые нужно удалить.

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

Пример:

// Удалим объекты с идентификаторами 34 и 25.
objectManager.objects.remove([34, 25]);

removeAll

Удаляет все элементы коллекции.

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

Пример:

objectManager.objects.removeAll();

setObjectOptions

Метод, позволяющий динамически обновлять опции объекта. Метод следует использовать в случаях, когда вы хотите, чтобы новые опции мгновенно применились к отображению объекта на карте. Обратите внимание, менеджер не учитывает опцию 'visible'.

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

Параметры:

ПараметрЗначение по умолчаниюОписание
objectId *
[no-highlight[

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

]no-highlight]

Тип: Object

Идентификатор объекта, которому нужно задать опции.

options *
[no-highlight[

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

]no-highlight]

Тип: Object

Новые опции объекта.

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

Пример:

// Меняем цвет иконки при наведении мыши.
objectManager.objects.events.add('mouseenter', function (e) {
    var objectId = e.get('objectId'),
        overlay = objectManager.objects.overlays.getById(objectId);
    setRedColor(objectId);
    overlay.events.add('mapchange', setGreenColor);
});

objectManager.objects.events.add('mouseleave', function (e) {
    var objectId = e.get('objectId'),
        overlay = objectManager.objects.overlays.getById(objectId);
    setGreenColor(objectId);
    overlay.events.remove('mapchange', setGreenColor);
});

function setGreenColor (objectId) {
    objectManager.objects.setObjectOptions(objectId, {
        preset: 'islands#greenIcon'
    });
}

function setRedColor (objectId) {
    objectManager.objects.setClusterOptions(objectId, {
        preset: 'islands#redIcon'
    });
}