Показать сообщение отдельно
  #3 (permalink)  
Старый 09.03.2016, 22:36
Новичок на форуме
Отправить личное сообщение для Kondrv Посмотреть профиль Найти все сообщения от Kondrv
 
Регистрация: 09.03.2016
Сообщений: 5

Окончательное решение, вернулся к циклу, но уже foreach
function init() {

  // Создаем карту 
  var myMap = new ymaps.Map('map', {
    center: [59.892450, 30.357102],
    zoom: 10
  });

  //Задаем список адресов
  var adr = ['Спб, ударников 1', 'Спб, ударников 20', 'Спб, оптиков 1', 'Спб, оптиков 20', 'питер, ленина 1'
  ,'Спб, труда 2','Спб, бухарестская 1','Спб, невский 100','Спб, магнитогорская 51','Спб, большевиков 2','Спб, дыбенко 2'
  ,'Спб, гагарина 2','Спб, софийская 2','Спб, труда 2','Спб, пионерская 2','Спб, ленинский проспект 2','Спб, стачек 2'
  ,'Спб, правды 2','Спб, декабристов 2','Спб, швецова 2','Спб, чехова 2','Спб, Беринга 2','Спб, одоевского 2',
  'Спб, шаврова 2','Спб, руднева 2','Спб, антоновская 2'];
  var comb = [];

  for (var i = 0; i < adr.length; i++) {
    for (var j = 0; j < i; j++) {
      comb.push(i + '-' + j);
    }
  }

  console.log("количество комбинаций " + comb.length);
  
  //Для каждой комбинации выстраеваем маршрут на карте и пытаемся узнать длину маршрута
  var arrayWays = comb.forEach(function(way, index, array) {
    var pos, first, second;

    pos = way.indexOf('-');
    first = way.substring(0, pos);
    second = way.substring(pos + 1, array.length);

    ymaps.route([adr[first], adr[second]]).then(
      function(route) {
        myMap.geoObjects.add(route);
        console.log(route.getHumanLength(), comb[index], index);      
      },
      function(error) {
        alert('Невозможно построить маршрут');
      }
    );
  });
}

ymaps.ready(init);
Ответить с цитированием