Клуб API Карт

Создание коллекции из многомерного массива. JavaScript

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

Здравствуйте!

Я только начинаю работать с Я-картами и JS. И у меня никак не получается вывести на карту точки из массива. Вернее получается, но криво. Помогите разобраться в чём ошибка...

Вот так получается:

 var coords = [
    [11.11, 12.12],[21.21, 22.22],['31.31, 32.32]],
     adress = [
    ["адрес 1", "адрес 2", "адрес 3"],
     name = [
    ["название 1", "название 2", "название 3"],

    myCollection = new ymaps.GeoObjectCollection({}, {});

for (var i = 0; i < coords.length; i++) {
    myCollection.add(new ymaps.Placemark(coords[i], {
        balloonContent: adress[i],
        hintContent: coords[i]
    }, {}));

 

 

А вот так не получается...

   var coords = [
    ['11.11, 12.12', 'Адрес 1', 'Название 1'],
    ['21.21, 22.22', 'Адрес 2', 'Название 2'],
    ['31.31, 32.32', 'Адрес 3', 'Название 3'],
];
       
    myCollection = new ymaps.GeoObjectCollection({}, {});
 
for (var i = 0; i < coords.length; i++) {
    myCollection.add(new ymaps.Placemark(coords[i][0], {
        balloonContent: coords[i][1],
        hintContent: coords[i][2]
    }, {}));

Хотя когда запрашиваю alert(coords[0][0]); страница выдаёт данные из массива. 

Хотелось бы создать файл с записью каждой метки в одну строчку, чтобы удобнее было бы вставлять инфортацию из внешних источников.

Спасибо!

4 комментария
Всеволод Шмыров
28 января 2016, 01:38
В вашем втором массиве вместо координат записаны строки с координатами.
'11.11, 12.12', '21.21, 22.22' ...
геообъекты принимают на вход массивы.
[[11.11, 12.12], 'Адрес 1', 'Название 1'],

Вот я чувствую, что что-то не то... А как записать правильно?

Если я прямо в цикле for ставлю alert(coords[i][0]); то получаю 3 координаты (или названия, или адреса).

Всеволод Шмыров
28 января 2016, 01:38
если в вашем варианте вызвать coords[i][0], то вернется строка ___ '11.11, 12.12' ___ замените в своем многомерном массиве строки с координатами на вложенный массивы (без одинарных кавычек в первых значениях).

var coords = [
    [[11.11, 12.12], 'Адрес 1', 'Название 1'],
    [[21.21, 22.22], 'Адрес 2', 'Название 2'],
    [[31.31, 32.32], 'Адрес 3', 'Название 3'],
];

Спасибо!!!!!

Сработало!