Клуб API Карт

Открытие Balloon'a после масштабирования карты

Горинь Вячеслав
19 сентября 2014, 08:07

Здравствуйте.

 

Не могу разобраться со следующим - есть Balloon'ы на карте, которые созданы "templateLayoutFactory". Задача стоит в том, что при клике на balloon - карта должна сцентрироваться на нем, затем приблизиться, и после этого открыть этот balloon.

Сейчас получился такой код:

 

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

        e.preventDefault();

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

 

        Map.panTo([

            [ NewCoord[0], NewCoord[1] ]

        ], {

            callback: function(){

                Map.setZoom(19, {duration: 1000});

                //console.log(e.get('target').balloon);

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

            },

            delay: 0,

        });

    }); 

 

 

Но, balloon не открывается, только при повторном клике, уже после zoom и центрирования.

Как быть?

6 комментариев
Подписаться на комментарии к посту

что такое callback ? используйте  Map.panTo().then(function(){ });

Пример с panTo тут http://api.yandex.ru/maps/doc/jsapi/2.1-dev/ref/reference/Map.xml#panTo

Горинь Вячеслав
19 сентября 2014, 12:59

Версия API 2.0, поэтому callback, а не then.

а, извините, не обратил внимания на метку.

 

Проверил в песочнице с API 2.0, все работает, но зум 19 не работает, я взял 17, т.к. 19 тайлов или вообще нет, или я просто не нашел где такие бывают.

Горинь Вячеслав
19 сентября 2014, 14:14

А как был создан балун?

Попробуйте вот этот пример:

http://api.yandex.ru/maps/jsbox/2.0/balloon_and_hint

Здесь можно открыть содержимое и масштабировать - оно не закрывается.

 

Однако уже в этом примере:

http://api.yandex.ru/maps/jsbox/2.0/cluster_balloon_layout

Нельзя открыть содержимое и масштабировать. При изменении zoom - оно закрывается.

P.S. Сразу код для того, чтобы добавить инструмент масштаба в песочнице: 

myMap.controls.add('zoomControl', { left: 5, top: 5 });

С тайлом переборщил, возможно, но не суть, пока что.

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

Горинь Вячеслав
19 сентября 2014, 15:49

Да