Есть карта со списком партнёров компании:
window.PartnersListMap.prototype = {
init: function() {
var self = this;
self.createMap();
},
...всякие прочие методы PartnersListMap...
Партнёры имеют разный тип (магазин, партнёр оказывающий услуги А, партнёр оказывающий услуги Б и т.д.), каждый тип партнёра отображается своей иконкой.
Кластер партнёров выглядит как круговая диаграмма, примерно вот так
пример карты .
Я хочу добавить легенду при наведении мышки на кластер. В легенде будут иконки типов партнёров, название типов и их количество в текущем кластере (на которой навели мышкой).
Информацию для отрисовки легенды я получил вот так:
self.clusterer.events
.add('mouseenter', function (e) {
var target = e.get('target'),
clusterPlacemark = e.get('cluster'),
legend = {}; //Данные для легенды
console.log('cluster mouseenter ');
target.properties._data.geoObjects.forEach(function(partner){
if(!legend[partner.options._options.partnerType]){
legend[partner.options._options.partnerType] = [];
}
legend[partner.options._options.partnerType].push(partner.options._options.partnerId);
});
console.log(legend);
});
Код пока сырой, но в переменной legend в конечном счёте примерно такой массив
где ключ это id типа партнёра, например 73 а значение массив идентификаторов партнёров, в итоге там будет просто число (сколько партнёров типа 73 находятся в текущем кластере).
Так вот, у меня не получается отсюда (в событии mouseenter) запустить открытие балуна (ну и закрыть его же на mouseleave). Пробовал через self.clusterer.balloon.open(), пробовал найти метод в target - ничего.