У меня есть функция, которая вычисляет маршрут между двумя точками.
public ClosestPoint(waypoint,currentLocation){
let distances = [];
for(var i=0; i< waypoint.length;i++){
debugger
var rWP1 = new L.Routing.Waypoint;
rWP1.latLng = currentLocation;
var rWP2 = new L.Routing.Waypoint;
rWP2.latLng = waypoint[i];
var myRoute =L.Routing.mapbox('access-token');
myRoute.route([rWP1, rWP2], function(err, routes) {
debugger
var distance = routes[0].summary.totalDistance;
distances.push(distance);
});
}
var minDistance=Math.min.apply(Math, distances)
console.log("distances "+distances);
}
Но проблема, с которой я столкнулся, заключается в том, что myRoute.route () функция выполняется после ClosestPoint () выполнение, поэтому я не могу правильно определить расстояние. Я хочу, чтобы myRoute.route () выполнялся внутри for-l oop, а затем начинается следующая итерация.
Возможно ли это? Если да, то как? Или есть какое-то другое решение?