Клуб API Карт

Динамический переход по координатам

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

Добрый вечер!

 

Есть такая задача что я решаю сейчас, сделать динамический переход по координатам.

 

  ymaps.ready(function () {

      var myMap = new ymaps.Map("YMapsID", {

          // Центр карты

          center: [],

          // Коэффициент масштабирования

          zoom: 17,

          // Тип карты

          type: "yandex#map"

      });

      var myPlacemark = new ymaps.Placemark([], {

          balloonContent: 'Торговый зал в Алматы'

      }, {

          iconImageHref: '/upload/map_marker.png', // картинка иконки

          iconImageSize: [44, 35], // размеры картинки

          iconImageOffset: [0, 0] // смещение картинки

      });

      myMap.geoObjects.add(myPlacemark);

 

      $("a#change_link").on("click", function (e) {

          var elem = $(this);

          var coordinates = elem.attr("coordinates");

 

          console.log(coordinates);

 

          /*alert(coordinates);*/

          myMap.panTo(

              [coordinates], {

                  flying: true

              }

          )

          return false;

      });

  });

 

при клике на ссылку с id change_link я беру данные атрибута "coordinates" и передаю для перемещения центра карты, но при передаче и при перемещении, он переходит не по координатам. Криво идет переход. Если вписать координаты самому для перехода, то он перейдет без проблем. В чем может быть проблема? можете помочь с данной проблемой?

3 комментария

Проблема в типе данных:

var coordinates = elem.attr("coordinates");

вернет строку.

[coordinates] - массив из одного элемента типа String (должно быть 2 элемента типа Number)

Спасибо)

 

Если кому может быть понадобится, решил проблему так:

 

$("a#change_link").on("click", function(e){

var elem = $(this);

var coordinates = elem.attr("value");

var coordinatesSplitter = coordinates.split(",");

 

var xCoords = parseFloat(coordinatesSplitter[0]);

var yCoords = parseFloat(coordinatesSplitter[1]);

 

myMap.panTo(

[xCoords, yCoords], {

       flying: true

   }

)

return false;

});

А я то мучился не понимал, почему мои данные улетают не понятно куда.
Оказалось нужно тип нужный сделать. 

СПАСИБО!!!