objectManager.Balloon

Расширяет IBalloonManager.

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

См.: Balloon

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

Конструктор

objectManager.Balloon(collection)

Параметры:

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

Тип: IReadOnlyCollection

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

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

Поля

Имя Тип Описание
events IEventManager

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

Унаследовано от 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.

Параметры:

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

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