objectManager.ObjectCollection
Расширяет ICollection, ICustomizable.
Коллекция объектов, добавленных в слой.
Конструктор | Поля | События | Методы
Конструктор
objectManager.ObjectCollection()
Поля
Имя |
Тип |
Описание |
Балун объекта в составе менеджера. |
||
Менеджер событий. Унаследовано от IEventEmitter. |
||
Хинт объекта в составе ObjectManager. |
||
Менеджер опций. Имена полей, доступных через метод option.Manager.get:
|
||
Коллекция оверлеев одиночных объектов. Все события, за исключением событий add и remove, пропагируются от коллекции оверлеев в коллекцию объектов. |
События
Имя |
Описание |
Добавление объекта в коллекцию. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
|
|
Изменение опций объекта через метод objectManager.ObjectCollection.setObjectOptions. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
|
|
Изменение в опциях объекта. Унаследовано от ICustomizable. |
|
Удаление объекта из коллекции. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
|
Методы
Имя |
Возвращает |
Описание |
Метод полностью дублирует логику ObjectManager.add. |
||
Метод, вызывающий переданную функцию-обработчик для всех элементов коллекции. |
||
getAll() |
Object[] |
Возвращает массив объектов, содержащихся в коллекции. |
Object|null |
Возвращает объект или null, если объекта с переданным id не существует. |
|
Возвращает итератор по коллекции. Унаследован от ICollection. |
||
Number |
Возвращает количество объектов в коллекции. |
|
Возвращает родительский слой объектов коллекции. |
||
Метод полностью дублирует логику ObjectManager.remove. |
||
Удаляет все элементы коллекции. |
||
Метод, позволяющий динамически обновлять опции объекта. Метод следует использовать в случаях, когда вы хотите, чтобы новые опции мгновенно применились к отображению объекта на карте. Обратите внимание, менеджер не учитывает опцию '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.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Object|Object[]|String Объекты, добавляемые в слой. |
* Обязательный параметр/опция.
Пример:
objectManager.objects.add({
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [55.33, 36.64]
}
});
each
{} each(callback, context)
Метод, вызывающий переданную функцию-обработчик для всех элементов коллекции.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Function Функция-обработчик, в которую передаются объекты коллекции. |
|
— |
Тип: 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 не существует.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: 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.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Object|Object[]|String Объекты, которые нужно удалить. |
* Обязательный параметр/опция.
Пример:
// Удалим объекты с идентификаторами 34 и 25.
objectManager.objects.remove([34, 25]);
removeAll
{objectManager.ObjectCollection} removeAll()
Удаляет все элементы коллекции.
Возвращает ссылку на себя.
Пример:
objectManager.objects.removeAll();
setObjectOptions
{objectManager.ObjectCollection} setObjectOptions(objectId, options)
Метод, позволяющий динамически обновлять опции объекта. Метод следует использовать в случаях, когда вы хотите, чтобы новые опции мгновенно применились к отображению объекта на карте. Обратите внимание, менеджер не учитывает опцию 'visible'.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Number Идентификатор объекта, которому нужно задать опции. |
|
— |
Тип: 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'
});
}
Обязательный параметр.