Я использую карту Google api для поиска расстояния между двумя точками с помощью DistanceMatrixService(). В обратном вызове getDistanceMatrix() я могу получить расстояние между двумя точками. Между двумя точками может быть несколько путей, но я всегда получаю длину кратчайшего пути. Как я могу получить все пути? Пожалуйста, обратитесь код ниже:Google map api v3: найти несколько путей с помощью DistanceMatrixService
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix({
origins: [--some origins--],
destinations: [--some destinations--],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false,
}, function (response, status) {
for (var i = 0, length = response.rows[0].elements.length; i < length; i++) {
if (response.rows[0].elements[i].status == 'NOT_FOUND') {
alert('Source or destination address could not be found.');
return;
}
var distance = response.rows[0].elements[i].distance.text;
var duration = response.rows[0].elements[i].duration.text;
}
});
В коде выше, массив response.rows[0].elements
всегда получается иметь длину один. Он должен иметь больше, чем один объект, если между источником и получателем существует несколько путей. Как это сделать? Заранее спасибо.
Связанный вопрос: [Предлагаемый вариант маршрутов в API Карт Google?] (Http://stackoverflow.com/questions/19676386/sposed-routes-option-in-google-maps-api) – geocodezip