Клуб API Карт

Uncaught TypeError: Cannot read property 'geoObjects' of undefined

develop@tdsgn.ru
15 октября 2015, 21:41

Очень странное поведение!

С одними координатами работает, а с несколькими нет ;(

Инициализируем карту:

 

ymaps.ready(init);
var myMap;
function init(){
  myMap = new ymaps.Map("map", {
    center: [56.49540919, 84.95061710],
zoom: 12,
controls: ['zoomControl']
  });
}

Пишем функцию перезагрузки карты (для новых координат, responseCoords приходят новые координаты. Тут и происходит ошибка):

function reloadYandexMap(responseCoords)
{
  myMap.geoObjects.removeAll();
for (var i = 0; i < responseCoords.length; i++) {
    myMap.geoObjects.add(new ymaps.Placemark(responseCoords[i]));
}
  myMap.setBounds(myMap.geoObjects.getBounds());
}

Отправляем AJAX запрос, для поулчения новых координат, после того как их получим, сделаем перезагрузку карты:

var responseCoords = [];
$.ajax({
  type: 'POST',
url : '/ajax/getCoordsByAddress',
//async: false,
data: {
    'arrStreets':  arrStreets
  },
dataType: 'json',
success: function(res){
    if(res.success)
    {
      $.each( JSON.parse(res.msg), function( key, val )
      {
        responseCoords.push(val);
});
reloadYandexMap(responseCoords);
}
  }
});

Когда приходит вот такое дело:

[56.458592, 84.947361]

И происходит ошибка (заголловок топика)

Но! Если приходит вот так:

 

[56.458537, 84.948367]

[56.49848, 84.968858]

[56.459383, 84.958959]

[56.458592, 84.947361]

[56.510298, 85.029584]

[56.475678, 85.008743]

[56.461153, 84.959003]

 

То все метки ставятся на карту! Все отлично. Обращаю внимание, что "ошибочные" координаты присутствуют в этом массиве.

 

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

соберите минимальный пример на jsfiddle.net

можно без запроса просто с этими координатами

Разобрался. Нужно просто все ready закинуть.