gmaps.js 返回 getRoutes 的旧值
gmaps.js returning old value for 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);
}
});
}
抱歉浪费大家的时间。显然这是一个已知的、未修复的错误 gmap.js:
https://github.com/hpneo/gmaps/issues/373
修复方法是在 gmaps.js:
中找到此代码
if (options.callback) {
options.callback(self.routes, result, status);
}
并将其替换为:
if (options.callback) {
options.callback(result.routes, result, status);
}
如果有多条腿,则每条腿报告的距离相同。知道为什么吗?它报告前两条腿之间的距离正确,但随后每条腿之间的距离与第一条腿相同。可能此时咖啡因摄入过多,但我不明白为什么。
代码如下:
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);
}
});
}
抱歉浪费大家的时间。显然这是一个已知的、未修复的错误 gmap.js:
https://github.com/hpneo/gmaps/issues/373
修复方法是在 gmaps.js:
中找到此代码 if (options.callback) {
options.callback(self.routes, result, status);
}
并将其替换为:
if (options.callback) {
options.callback(result.routes, result, status);
}