Как в цикле узнать дистанции

115
22 ноября 2019, 09:10

Задача,- узнать дистанции до точки, от нескольких "пунктов отправления". Есть,- массив координат точек А которые в цикле и перебираются, и неизменная точка Б. Пытаюсь делать таким образом:

for (var i = 0, l = yLenght; i < l; i++) {//yLenght=кол-во точек А в массиве 
            // Берем путевые точки 
            var referencePoints = multiRoute.model.getReferencePoints(); 
            // Задаем путевым точкам свои координаты 
            referencePoints[0] = Bazis;//неизменная точка Б 
            // и координата из массива, искомая по индексу i 
            referencePoints[1] = ybc[i].geometry.getCoordinates(); 
            // Устанавливаем точки в модель мультимаршрута 
            multiRoute.model.setReferencePoints(referencePoints); 
            // Дожидаемся обновления данных маршрута 
            multiRoute.model.events.add('requestsuccess', function() { 
                // Получение ссылки на активный маршрут. 
                var activeRoute = multiRoute.getActiveRoute(); 
                // Получаем дистанцию и пишем ее в перменную 
                var length = activeRoute.properties.get("distance").value; 
                // Вывод информации о маршруте. 
                 console.log("Длина маршрута " + i + " = "+ length +  
                 "координаты А = " + referencePoints[1]); 
               
            }); 
        }

Проблема в том, что в итоге выводит информацию от первой точки в массиве, когда нужно от всех(их 2-3).

Примеров достаточно похожих чтобы разобраться не нашел, и к сожалению не достаточно силен в JS, поэтому предполагаю что ошибка простая, но очень долго не могу ее выявить, поэтому надеюсь поможет не только мне, но и тем кто потом прочтет. Заранее благодарю!

Answer 1

Я не проверял, но кажется что Вы в цикле вызвали

 multiRoute.model.setReferencePoints(referencePoints);

а после всего этого n раз сработал обработчик requestsuccess вызвал

 var activeRoute = multiRoute.getActiveRoute();

на момент вызова там значение с последней итерации цикла

READ ALSO
Перебор Object.keys, потеря объектов на выходе

Перебор Object.keys, потеря объектов на выходе

Передаю в функцию json файл c 4 объектами на выход получаю только 3 внутри функции все 4 объектаКуда теряется 2 объект?

89
Практика использования setTimeout [закрыт]

Практика использования setTimeout [закрыт]

Я столкнулся с тем, что мои реализации на основе setTimeout очень нестабильны

104
не работает скрипт, ошибок консоль не выдает, все другие скрипты работают

не работает скрипт, ошибок консоль не выдает, все другие скрипты работают

Нужно менять содержимое дива, когда окно меньше 540px

99
FANCYBOX 3 Как добавить уникальный класс?

FANCYBOX 3 Как добавить уникальный класс?

Подключил к галереи fancybox 3, в ней идет первый 3-4 фото а 4 или 5 слайд обзор 3DВот внешний окна фенсибокса где есть вид 3D нужно сделать другим

98