Клуб API Карт

Произвольный контент балуна кластера

SagaranoMail
9 сентября 2016, 22:08

Привет!

Использую LoadingObjectManager с включенной кластеризацией. Хочу показывать балун кластеризатора с произвольным макетом и с динамически формируемым контентом. Сейчас при клике на кластеризатор карта зумится к выбранным точкам и это хорошо, когда доходим до макс. зума нужно открыть балун и заполнить его контентом. Вопрос: если отслеживать клик по кластерам

loadingObjectManager.clusters.events.add('click', function (e) {
 var cluster = loadingObjectManager.clusters.getById(e.get('objectId'));
})

как понять что дальше зумить уже нельзя и пора открывать балун? через

myMap.action.getCurrentState().zoom

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

Может другое событие отлавливать? Например, через Monitor

var activeObjectMonitor = new ymaps.Monitor(loadingObjectManager.clusters.state);

Но можно ли изменить контент балуна уже после его открытия?

7 комментариев
Подписаться на комментарии к посту
Всё это делается через макет, а не "сбоку" через события на коллекции clusters.


https://yandex.ru/blog/mapsapi/objectmanager-balun-klastera-i-zagruzka-dannykh-po-trebovaniyu



Разница лишь в том, что в вашем случае в примере надо убрать clusterDisableClickZoom: true,

dimik,


окей, сейчас попробую разобраться с макетом, спасибо


>Разница лишь в том, что в вашем случае в примере надо убрать clusterDisableClickZoom: true,
а если нужно приблизить карту к точкам, которые входят в этот кластер, вручную получается вычислять границы для setBounds карты?
> а если нужно приблизить карту к точкам, которые входят в этот кластер, вручную получается вычислять границы для setBounds карты?


Нет, это значит ровно наоборот, при клике на кластер будет масштабировать до последнего масштаба, если на последнем масштабе кластер не распадается – открывать балун.

т.е. вам ничего делать не надо, в том числе проверять масштаб.
dimik,


Создаю LoadingObjectManager с настройками


clusterOpenBalloonOnClick: true,
clusterDisableClickZoom: false


если указываю кастомный макет в clusterBalloonContentLayout балун не открывается, функция build не отрабатывает
Почему?
SagaranoMail,
Соберите пример на jsfiddle

dimik,


моя ошибка, при создании макета он создавался без родительского элемента
вот так http://jsfiddle.net/hurg4gs5/
если добавить корневой <ul> в ymaps.templateLayoutFactory.createClass, то всё ок