Клуб API Карт

Получение координат из JSON и отображение их как коллекции объектов. Нужна помощь!

Azat Zagitov
10 марта, 15:22

Добрый день. Необходима помощь. Пытаюсь получить координаты из JSON и вывести их на карте как коллекцию объектов.

Данные получаю, в консоли выводится, а карта не хочет их отображать.

Вот код: 

var items = [];
	console.log("JSON start...")
	jQuery.getJSON( url, function( json ) {
		jQuery.each(json.posts, function(key, index) {
			loc = index.custom_fields.map_coords[0];
			items.push(loc);
		});
	})
	.done(function() {
		console.log("JSON received... Start YMaps")
		ymaps.ready(init);
		function init() {
			var myMap = new ymaps.Map("map", {
				center: [54.738307, 55.945710],
				zoom: 13
			}),
			addresses = new ymaps.GeoObjectCollection(null, {
				preset: 'islands#yellowIcon'
			});
			console.log('1st elem: ' + items[0] + "\nArray length: " + items.length);
			for (var i = 0, l = items.length; i < l; i++) {
				addresses.add(new ymaps.Placemark(items[i]));
			}

			myMap.geoObjects.add(addresses);
		}
	})
	.fail(function() {
		console.log( "error" );
	});

Получаю ошибку, Cannot read property 'then' of null. Я так понял массив координат ему не нравится. Хотя в консоли всё нормально отображается.

В чём может быть проблема?

3 комментария
Соберите fiddle с вашими данными и опубликуйте ссылку
что попадает в index.custom_fields.map_coords

?
dimik,
по-другому запрос сделал, но суть та же. http://jsfiddle.net/p2Lvkcu7/
Azat Zagitov,
у вас в map_coords массив из одного элемента – строки вида "[54.734275, 55.958728]", а должен быть массив из 2-х чисел