objectManager.Balloon

Расширяет IBalloonManager.

Менеджер балуна коллекций ObjectManager. Позволяет управлять балуном объекта, открывать и скрывать его. Использует внутри себя менеджер балуна карты map.Balloon. Коллекции объектов в составе ObjectManager содержат экземпляр этого класса, доступный как myObjectManager.objects.balloon и myObjectsLayer.clusters.balloon. Не создавайте экземпляры этого класса без необходимости.

См.: Balloon

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

Конструктор

objectManager.Balloon(collection)

Параметры:

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

Тип: IReadOnlyCollection

Коллекция объектов.

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

Поля

ИмяТипОписание
eventsIEventManager

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

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

События

ИмяОписание
autopanbegin
Начало автоматического перемещения центра карты, вызванного методом autoPan. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

autopanend
Окончание автоматического перемещения центра карты, вызванного методом autoPan. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

beforeuserclose
Событие, предшествующее событию Balloon.userclose. Позволяет отменить пользовательское действие посредством вызова метода preventDefault. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

close
Закрытие инфо-объекта. Названия полей доступны через метод Event.get:
  • target - ссылка на объект, на котором был закрыт инфо-объект.

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

open
Открытие инфо-объекта. Названия полей доступны через метод Event.get:
  • target - ссылка на объект, на котором был открыт инфо-объект.

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

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

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

Методы

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

vow.Promise

Перемещает карту таким образом, чтобы балун оказался видимым.

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

close([force])

vow.Promise

Закрывает открытый балун.

destroy()

Отключает менеджер инфо-объекта.

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

getData()

Object|null

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

getOptions()

IOptionManager|null

Возвращает менеджер опций или null.

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

getOverlay()

vow.Promise

Возвращает объект-обещание вернуть оверлей.

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

getOverlaySync()

IOverlay|null

Возвращает оверлей, если тот существует.

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

getPosition()

Number[]|null

Возвращает координаты инфо-объекта или `null`.

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

isOpen(id)

Boolean

Метод, определяющий, открыт ли балун на объекте с переданным идентификатором.

open(objectId, anchorPixelPosition)

vow.Promise

Открывает балун на объекте с переданным идентификатором.

setData(objectData)

vow.Promise

Задаёт новые данные для отображения балуна.

setOptions(options)

vow.Promise

Задаёт инфо-объекту новые опции.

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

setPosition(position)

vow.Promise

Задаёт инфо-объекту новую позицию.

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

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

close

{vow.Promise} close([force])

Закрывает открытый балун.

Возвращает объект-promise.

Параметры:

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

Тип: Boolean

Мгновенное закрытие.

Пример:

// Закроем все балуны на слое.
objectManager.objects.balloon.close();
objectManager.clusters.balloon.close();

getData

{Object|null} getData()

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

Пример:

var cluster = objectManager.clusters.balloon.getData();
if (cluster) {
    alert('Сейчас открыт балун кластера с ' + cluster.properties.geoObjects.length + ' объектами.');;}

isOpen

{Boolean} isOpen(id)

Метод, определяющий, открыт ли балун на объекте с переданным идентификатором.

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

Параметры:

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

Тип: Object

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

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

Пример:

// При повторном клике на метку будем закрывать балун.
objectManager.objects.options.set('hideIconOnBalloonOpen', false);
objectManager.objects.events.add('click', function (e) {
    var objectId = e.get('objectId');
    if (objectManager.objects.balloon.isOpen(objectId)) {
        objectManager.objects.balloon.close();
    }
});

open

Открывает балун на объекте с переданным идентификатором.

Возвращает объект-promise.

Параметры:

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

Тип: Object

Идентификатор объекта, на котором надо открыть балун.

anchorPixelPosition *

Тип:

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

Пример:

// Загрузка данных объекта перед открытием балуна.
// Отменим автоматическое открытие балуна по клику на объекте.
objectManager.options.set('geoObjectOpenBalloonOnClick', false);
objectManager.objects.events.add('click', function (e) {
    var objectId = e.get('objectId');
      // По клику на объекте вызовем подгрузку данных для объекта.
    loadObjectData(objectId).then(function (data) {
        // Как только данные будут готовы, зададим их объекту и откроем балун.
        objectManager.objects.getById(objectId).properties = data;
        objectManager.objects.balloon.open(objectId);
    });
});

setData

Задаёт новые данные для отображения балуна.

Возвращает объект-promise.

Параметры:

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

Тип: Object

Хэш с описанием объекта, на котором открыт балун. Соответствует описанию объекта, который подается на вход ObjectManager.add.

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

Пример:

// Подгрузка данных после открытия балуна на объекте.
objectManager.objects.events.add('balloonopen', function (e) {
    var objectId = e.get('objectId'),
        object = objectManager.objects.getById(objectId);
    if (!object.properties) {
        loadObjectData(objectId).then(function (data) {
            if (objectManager.balloon.isOpen(objectid)) {
                object.properties = data;
                objectManager.objects.balloon.setData(object);
            }
        });
    }
});