objectManager.ObjectCollection

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

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

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

Конструктор

objectManager.ObjectCollection()

Поля

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

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

eventsIEventManager

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

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

hintobjectManager.Hint

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

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

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

Параметры:

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

Тип: Object|Object[]|String

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

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

Пример:

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

each

{} each(callback, context)

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

Параметры:

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

Тип: Function

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

context *

Тип: 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 *

Тип: 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.

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

Параметры:

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

Тип: Object|Object[]|String

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

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

Пример:

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

removeAll

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

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

Пример:

objectManager.objects.removeAll();

setObjectOptions

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

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

Параметры:

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

Тип: Object

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

options *

Тип: 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'
    });
}