Клуб API Карт

Проблема с центрированием карты при клике на объект в меню

danpaho
18 сентября 2014, 13:26

Есть функция обрабатывающая создание меню геообъектов и клики по элементам этого меню:
 

function createSubMenu (item, collection, submenu) {

        // Пункт подменю.

        var submenuItem = $('<div class="menumap item inlineBlock"><div class="arrow absolute"></div><div class="addres">' + item.name + '</div><div class="box-mode-phone"><div class="shop-mode" title="Режим работы">' + item.time + '</div><div class="shop-phone" title="Телефон">' + item.phone + '</div></div></div>'),

        // Создаем метку.

            placemark = new ymaps.Placemark(item.center, { balloonContent: item.name });

 

        // Добавляем метку в коллекцию.

        collection.add(placemark);

        // Добавляем пункт в подменю.

        submenuItem

            .appendTo(submenu)

            // При клике по пункту подменю открываем/закрываем баллун у метки.

            //.find('a')

            .toggle(function () {

                placemark.balloon.open();

            }, function () {

                placemark.balloon.close();

            });

 

    }

 

Часть отвечающую за клики я пытаюсь расширить до центровки карты на данном объекте:

 

 

.toggle(function () {

                placemark.balloon.open();

myMap.setCenter([item.center], 3, {

checkZoomRange: true

});

            }, function () {

                placemark.balloon.close();

            });

 

Но получается что-то немыслимое. Карта ездит туда - сюда, но явно не центруется.

карта:
http://tomato.4your.biz/shops/?city_id=36#map 

2 комментария
Подписаться на комментарии к посту
Добрый день. Происходит автопозиционирование балуна, которое отменяет установку центра карты. Установите меткам опцию balloonAutoPan: false.

Проблема в некорректном значении передаваемом в метод setCenter

у вас что лежит в item.center?

Массив чисел?

myMap.setCenter([item.center], 3, {

Вы обернули его в еще один массив

и передаете массив из одного элемента.

Что вы ожидаете получить?