Если есть несколько ножек, расстояние, сообщаемое для каждой ноги, одинаково. Любая идея почему? Он сообщает расстояние между двумя первыми двумя ногами, но тогда расстояние между каждой ногой совпадает с расстоянием между ногами. На данный момент, возможно, слишком переработано, но я не понимаю, почему.gmaps.js возвращает старое значение для getRoutes
Вот код:
function marker(map, lat, lng, title, name) {
map.addMarker({
lat: lat,
lng: lng,
title: title,
click: function (e) {
legs.push({destination: name, latitude: lat, longitude: lng, distance: null, time: null});
var next_stop;
if (legs.length > 1)
{
$.each(legs, function (index, value)
{
// Mileage In Between
if (legs[(index + 1)])
{
next_stop = legs[(index + 1)];
map.getRoutes(
{
origin: [value.latitude, value.longitude],
destination: [next_stop.latitude, next_stop.longitude],
callback: function (e)
{
var time = 0;
var distance = 0;
for (var i=0; i<e[0].legs.length; i++)
{
time += e[0].legs[i].duration.value;
distance += e[0].legs[i].distance.value;
}
var miles = distance/1609.34;
var kilometers = distance/1000;
var timer = time/60;
legs[(index + 1)].distance = miles.toFixed(2);
alert(timer.toFixed(2) + " and " + miles.toFixed(2));
}
}
);
}
}
);
}
console.log(legs);
a.$set('stops', legs);
}
});
}
Просьба представить [Минимальный, завершенный, проверенный и читаемый пример] (http://stackoverflow.com/help/mcve), который демонстрирует проблему. – geocodezip
не следует ли переносить расстояние var и расчет миль из обратного вызова карты к началу функции? Обратный вызов будет возвращать только одно расстояние каждый раз, но вы хотите суммировать все ноги? –
Да, расчет пробега будет перенесен позже. Да, я хочу расстояние каждый раз (нога), а не сумма. – Jafo