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

{objectManager.Balloon} balloon

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

hint

{objectManager.Hint} 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

{objectManager.OverlayCollection} 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.ObjectCollection} add(data)

Метод полностью дублирует логику 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,
var 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.ObjectCollection} remove(data)

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

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

Параметры:

Параметр

Значение по умолчанию

Описание

data*

Тип: Object|Object[]|String

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

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

Пример:

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

removeAll

{objectManager.ObjectCollection} removeAll()

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

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

Пример:

objectManager.objects.removeAll();

setObjectOptions

{objectManager.ObjectCollection} setObjectOptions(objectId, options)

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

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

Параметры:

Параметр

Значение по умолчанию

Описание

objectId*

Тип: Number

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

options*

Тип: Object

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

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

Пример:

// Изменение цвета значка при наведении курсора.
objectManager.objects.events.add('mouseenter', function (e) {
    var objectId = e.get('objectId');
    var 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');
    var 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'
    });
}
Предыдущая