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 *

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

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

Параметры:

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

Тип: Object|Object[]|String

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

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

Пример:

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

removeAll

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

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

Пример:

objectManager.objects.removeAll();

setObjectOptions

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

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

Параметры:

Параметр Значение по умолчанию Описание
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'
    });
}