Клуб API Карт

Открытие балуна метки

Пост в архиве.

Добрый день,

 

Пытаюсь реализовать следующее: при клике на метку карта приближается и показывается ее балун. Казалось бы - все просто, но увы. Код выглядит так:

 

map.geoObjects.events.add([

'click'

], function (e) {

var coords = e.get('target').geometry.getCoordinates();

if (map.getZoom() < 15) {

map.setCenter(coords, 15);

map.balloon.open( coords, e.get('target').balloon.getData() );

}

});

 

Если я правильно понял - при изменении масштаба балун закрывается, поэтому пытаюсь вызвать его в коде, но не понимаю как правильно запросить данные балуна метки, на которой сработал event.

5 комментариев
Владислав Турман
27 января 2016, 23:38

Здравствуйте, я не уверен, но у меня получилось так: 

 

map.geoObjects.events.add('click', function (e) {

            e.preventDefault();

 

var coords = e.get('target').geometry.getCoordinates();

 

if (myMap.getZoom() < 15) {

 

map.setCenter(coords, 15);

 

e.get('target').balloon.open();

 

}

 

});

Пробовал - получаю в консоли "Uncaught TypeError: Cannot read property 'balloon' of null"

Всеволод Шмыров
27 января 2016, 23:38
Добрый день. По умолчанию балун не закрывается при смене масштаба карты. Такое поведение присуще кластеру или ObhectManager'у. Вы используете какую-нибудь из этих сущностей?
Всеволод Шмыров
27 января 2016, 23:38
Если вы используете кластер, то необходимо воспользоваться хитростью показанным в этом примере
http://api.yandex.ru/maps/jsbox/2.1/clusterer_balloon_open
Проверяется были ли геообъект откластеризирован, если да, то открывается балун кластера, если нет, то самого геообъекта.

Здравствуйте! Спасибо за ответ, ваш пример очень помог в решении)