YandexMap: Раскрыть кластер и показать баллун
Уважаемые, может кто сталкивался с таким вопросом?
Есть карта с кластеризатором. Сбоку -- список названий точек, размещенных на этой карте. При клике по ссылке активируется соответствующий баллун. Но для точек, находящихся в данный момент в кластере баллун не активируется. Как сделать так, чтобы при клике по ссылке с названием точки, находящейся в кластере происходило увеличение карты до раскрытия кластера и выводился баллун? Вот как у меня это реализовано: data -- это массив с точками, полученный по запросу с сервера myMap -- объект карты. var $points = []; var $ul = $('<ul class="cat-map-item-list"></ul>'); for(var count = 0; count < data.length; count++){ $points[count] = addListItem($ul, data[count]); } $ul.appendTo('#cat-list-box'); addPointList(myMap, $points); // Здесь создаем точку и создаем элемент списка. Вешаем на него прерывание по клику function addListItem($ul, data){ var $li = $("<li><a href='#' id='map-list-item-" + data.id + "' data-id='" + data.id + "' class='switch-off'>" + data.properties.hintContent + "</a></li>"); var $newPoint = new ymaps.GeoObject(data); // Обработчик клика по ссылке $li.appendTo($ul).find('a').click(function(){ if($(this).hasClass('switch-on')){ $(this).removeClass('switch-on').addClass('switch-off'); $newPoint.balloon.close(); }else{ $('.switch-on').removeClass('switch-on').addClass('switch-off'); $(this).removeClass('switch-off').addClass('switch-on'); $newPoint.balloon.open(); } }); return $newPoint } // А тут создаем кластеризатор и добавляем в него точки function addPointList(myMap, $points){ var clusterer = new ymaps.Clusterer({clusterDisableClickZoom: false}); clusterer.add($points); myMap.geoObjects.add(clusterer); } |
кластер срезает ивенты, навесь на список ивенты, а в кластер просто точки положи.
|
Часовой пояс GMT +3, время: 00:34. |