Я разрабатываю систему для отслеживания маршрута с помощью API Карт Google. У меня есть точки происхождения и назначения, и между этими точками есть некоторые путевые точки. Проследив маршрут, Google возвращает мне лучший маршрут и отметит эти точки на карте. Мы отображаем данные маршрута в div. Моя функция, которая вычисляет маршрут, часть, возвращающая данные, выглядит следующим образом:
directionsService.route(request, $.proxy(function(response, status){
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var orders = response.routes[0].waypoint_order;
var route = response.routes[0];
var total_distance = 0;
var displayRoute = $('#detail-route');
for (i = 0; i < route.legs.length; i++){
var routeSegment = i + 1,
from_address = route.legs[i].start_address.split(','),
to_address = route.legs[i].end_address.split(',');
total_distance += Math.floor(route.legs[i].distance.value / 1000);
displayRoute.append('<b>Trecho ' + routeSegment + ': </b><br/>');
displayRoute.append('<b>Saindo de: </b>' + from_address[0] + '<br/>');
displayRoute.append('<b>Indo para: </b>' + to_address[0] + '<br/>');
displayRoute.append('<b>Distância: </b>' + route.legs[i].distance.text);
}
displayRoute.prepend('total:' + this.format(total_distance) + ' km' + '<br/><br/>');
Функция format()
- это моя функция для формата km..
Проблема заключается в том, что на некоторых маршрутах waypoint_order
показывает другой порядок, чем тот, что находится в legs
. Например:
Для данного маршрута route.legs[i]
возвращает порядок: 'waypoint 0, waypoint 1, waypoint 3, waypoint 2', но атрибут waypoint_order
возвращает [3, 0, 2, 1, 3]
Является ли это ожидаемым поведением, или я что-то здесь не вижу?