Я работаю с Mapbox Direction API и получаю более 100 путевых точек. Согласно документации Mapbox, я не могу запросить более 25 WP для получения маршрута, поэтому я вызываю его внутри массива al oop с блоком 25 WP. Ниже приведен мой пример кода:
componentDidMount(waypoints) {
let wpChunks = this.chunkArray(waypoints, 25);
for (let chunk of wpChunks) {
routeArr.push(await this.callDirectionApi(chunk));
}
console.log('routeArr : ', routeArr);
}
callDirectionApi = (waypoints) => {
let directions;
directions = new MapboxDirections({
accessToken: mapboxgl.accessToken,
unit: 'metric',
profile: 'mapbox/driving',
interactive: false,
controls: false,
proximity: [88.30, 22.58]
});
this.map.on('load', (e) => {
let wpIndex = 0;
for (let ii = 0; ii <= waypoints.length-2; ii++) {
if (ii == 0) {
directions.setOrigin(waypoints[ii]);
} else {
directions.addWaypoint(wpIndex, waypoints[ii]);
wpIndex++;
}
}
directions.setDestination(waypoints[waypoints.length-1]);
directions.on('route', function(e) {
**console.log('Routes: ', e.route);**
resolve(e.route[0].geometry);
});
this.map.addControl(directions, 'top-left');
});
}
В результате, если я утешаю вывод журнала маршрута (жирная линия выше), я получаю тот же маршрут, что и ответ в каждом запросе внутри l oop ,
Может кто-нибудь подсказать, пожалуйста, я делаю что-то не так или нет? Это правильный способ сделать это? Если нет, можете ли вы предложить какой-нибудь пример?
Спасибо