Клуб API Карт

Проблема с Clusterer

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

 Ни как не могу понять почему в этом коде


var cluster = new ymaps.Clusterer();
$('span.map_coord').each(function(){
ii++;
var myPlacemark = new ymaps.Placemark(
 [coordinate1[i][0] ,coordinate1[i][1]],
{
iconContent: text[i],
balloonContent: text[i]
},{
hideIconOnBallon: true,
preset: 'twirl#houseIcon'
});
Placemarks[ii] = myPlacemark;
});
cluster.options.set({
gridSize: 100,
disableClickZoom: true
});
cluster.add(Placemarks);
myMap.geoObjects.add(cluster);

 

 

Появляется такая вот ошибка, убирая последнюю строчку ошибки нет, но точек на карте тоже нет(((

 

 

Uncaught TypeError: Cannot call method 'getCoordinates' of undefined

 

6 комментариев
Sergey Konstantinov
28 января 2016, 03:52
Вероятно, проблема в том, что переменная ii неправильно инициализирована и в Placemarks[0] ничего нет.

Спасибо!

действительно достаточно просто перенести ii++; в конец функции цикла.

По-хорошему тут вообще не нужен "ii"

первым параметром в обработчик each приходит индекс

 

$('span.map_coord').each(function (index) {Placemarks[index] = new ymaps.Placemark(...
Алексей Yarrr!
28 января 2016, 03:52

да и он не нужен, когда есть native push

Сложно что-то сказать по этому коду. Нужна более полная картина или ссылка.

Алексей Yarrr!
28 января 2016, 03:52

Что-то не видно ни инициализации массива Placemarks, ни ii.

Вы бы вывели в лог Placemarks перед добавлением в cluster - сами бы все поняли ;-)