Клуб API Карт

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

d-jeston
18 июня 2015, 16:30

Логика задачи требует в зависимости от положения кластера и состояния GUI показывать балун метки по клику на кластер. Я делаю таким образом:

clusterer.events.add('click', function(e){
    var geoObject = e.get('target'),
isCluster = !!geoObject.properties.get('geoObjects');
if(isCluster) {
        geoObject.properties.getAll().geoObjects[0].balloon.open();
}
    else {
        console.log('placemark');
}
});

 Но после if возникает ошибка Uncaught TypeError: Cannot read property 'getGlobalPixelCenter' of null

 Как победить проблему ?

P.S. Как отменить показ собственного балуна кластера ? 

3 комментария
Подписаться на комментарии к посту
Ну вроде логично, у вас отображается кластер, а не метки в него входящие, у них балун открыться не может, т.к. они на карту не добавлены. Здесь надо открывать балун карты через myMap.balloon.open с координатами нужной метки

А почему после выполнения:

var customBalloonContentLayout = ymaps.templateLayoutFactory.createClass([

            '' + 'string' + '',

            '
',

            '{{properties.geoObjects[0].properties.city }}({{properties.geoObjects[0].properties.countId }})',

            '
',

            ' "extended", "place_query" => ""])?>',

            '{{properties.geoObjects[0].properties.city}}',

            '"> ... '

        ].join(''));

 

        MyIconContentLayout = ymaps.templateLayoutFactory.createClass('{{properties.geoObjects[0].properties.countId}}'); 

 

текстовая метка в иконке кластера не показывается ? Когда иконка готовится в фабрике, то контентом выступает та же строка, что и выше для балуна

properties.geoObjects[0].properties.countId 

А есть ссылка, не очень понятно о чем речь