У меня есть проблема, чтобы найти службу маршрутизации для каждого пользователя здесь карта
Я использую здесь карту, чтобы найти маршрут нескольких пользователей и назначения. Я набираю нью-йорк в строке поиска и нажимаю кнопку поиска, предположим, что API возвращает массив из десяти пользователей. Теперь я хочу получить услугу маршрутизации для каждого пользователя.
for(var i=0; i< aws_data.length; i++)
{
aws_possition =
{
lat: aws_data[i].lat,
lng: aws_data[i].lng
};
lat2 = aws_possition.lat;
lng2 = aws_possition.lng;
var router = platform.getRoutingService(),
parameters = {
waypoint0: lat1+","+lng1,
waypoint1: lat2+","+lng2,
mode: 'fastest;car;traffic:enabled',
departure: 'now'
};
}
Теперь, когда я запускаю этот код platform.getRoutingService запускается 10 раз, прежде чем дать мне результат каждого пользователя. Вот мой полный цикл кода.
for(var i=0; i< aws_data.length; i++)
{
aws_possition =
{
lat: aws_data[i].lat,
lng: aws_data[i].lng
};
lat2 = aws_possition.lat;
lng2 = aws_possition.lng;
var router = platform.getRoutingService(),
parameters = {
waypoint0: lat1+","+lng1,
waypoint1: lat2+","+lng2,
mode: 'fastest;car;traffic:enabled',
departure: 'now'
};
console.log(parameters);
//debugger;
router.calculateRoute(parameters,
function (result) {
}
}
1 ответ
Привет Фаррах и добро пожаловать в Stack Overflow. Если вы используете этот API, то вы можете сопоставить свои данные с обещаниями (обратите внимание, что обещания должны быть заполнены для IE и (очень) старых браузеров)
const router = platform.getRoutingService(),
waypoint1 = aws_possition.lat + ',' + aws_possition.lng,
mode = 'fastest;car;traffic:enabled',
departure = 'now';
Promise.all(
aws_data.map(
({ lat, lng, id }) =>
console.log(`processing ${id}`) ||
new Promise((resolve, reject) =>
router.calculateRoute(
{
waypoint0: lat + ',' + lng,
waypoint1,
mode,
departure,
},
(result)=>resolve([id,result]),
reject,
),
),
),
).then(
(results) => console.log('I have results:', results),
(error) => console.log('something went wrong:', error),
);