maler1988
@maler1988
Web-программист (1С Bitrix)

Как открыть балун кластера при наведении курсора?

Есть карта со списком партнёров компании:

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 в конечном счёте примерно такой массив
5c6a95ed858d3433882240.jpeg
где ключ это id типа партнёра, например 73 а значение массив идентификаторов партнёров, в итоге там будет просто число (сколько партнёров типа 73 находятся в текущем кластере).

Так вот, у меня не получается отсюда (в событии mouseenter) запустить открытие балуна (ну и закрыть его же на mouseleave). Пробовал через self.clusterer.balloon.open(), пробовал найти метод в target - ничего.
  • Вопрос задан
  • 163 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы