Клуб API Карт

PanTo дергает карту и не позиционирует

Пост в архиве.
bamburillo
17 июля 2013, 15:07

Сделал по образу и подобию http://dimik.github.io/ymaps/examples/group-menu/menu01.html кроме того, что groups  у меня загружается черех JSON. 
Так вот, при нажатии на ссылку в меню, вся карта дергается и позиционируется куда-то вбок.
Если делать

myMap.setCenter(placemark.geometry.getCoordinates(), 16, {
    checkZoomRange: true,
    callback: function () {
        placemark.balloon.open();
   }
});

 то отрабатывает как надо. Но хотелось бы плавного перемещения... Отчего такое может быть? 

9 комментариев
кусок кода + ошибка в фаербаге помогут решению вопроса

Да в том-то и дело, что ошибку никакую не пишет... :( 
Кроме огромной кучи подобных этой
"GET http://vec01.maps.yandex.net/tiles?l=skl&v=2.45.0&x=564&y=424&z=10&lang=ru_RU 404 (Not Found)

"  (я так понимаю отсутсвие изображении карты)

Делал перед вызовом console.log(placemark.geometry.getCoordinates());

показывает вроде верно ["46.61479500", "31.28650900"] (к примеру)
Удивляет что перемещение setCenter работает "на ура", а вот panTo чудит.

По поводу куска кода... в принципе все как на той ссылке, что я дал, кроме того, что переменная groups у меня забирается через  JSON

 $.getJSON('/map/getMarkers')

            .success(function (data) {

                // Контейнер для меню.

                var menu = $('

    ');

                // Перебираем все группы.

                data.forEach(function (group) {

... дальше все в точности как в ссылке.
Точки становятся как надо, все ок.  

А исходный пример работает как надо?

Да. Исходный работает как надо. Я уже засомневался в данных, которые передаю через JSON, но проверил - вроде все валидно и красиво. Да и console.log(placemark.geometry.getCoordinates());
говорит о том, что координаты у точек как надо.  

Дайте ссылку, посмотрим

К сожалению, пока все локально. 
  бабушка-бэтмен я знаю, ты гуру, ты можешь помочь! 

Давай попробуем подумать логически... если данные валидные, если  placemark.geometry.getCoordinates() возвращает координаты, и даже .setCenter делает все как было задумано разработчиками, тогда почему именно .panTo спотыкается, и чудит? В чем разница реализации? 
Из скриптов у меня грузится только

 

Показывает не верно

Координаты должны быть ЧИСЛАМИ

а у вас - строки.

Ура! И таки да... 
Спасибо, это решило вопрос, привел явно к типу double и заработало. 

PS: Однако, значит setCenter понимает и строку, а panTo только числа. 

Надо всегда смотреть в документацию там указан тип данных.

center Number[]|Object[]Центр карты или массив точек для последовательного обхода.