我们如何从 Google Direction API 建议的替代路线中默认获得从 A 点到 B 点的最短距离路线?默认情况下,它会根据当前的交通状况为我们提供最短持续时间的路线。我注意到,如果您打开“provideRouteAlternatives=true”,Google 会响应多个替代路线,我想知道我们是否可以向 Google API 发送一个参数,以便默认情况下它始终返回最短距离路线
正如 Rameshwor 所提到的,谷歌返回的建议路线可能会针对行程时间而不是行程距离进行优化。如果指定了一个或多个路径点,则无论如何都只能返回一条路线,但从编程角度来说,最好假设始终会返回多条路线。
以下示例展示了使用 jQuery 查找行程距离最短的路线的简单方法;请注意此代码尚未优化,但应该可以工作:
var route_options = [];
for (var i = 0; i < response.routes.length; i++)
{
var route = response.routes[i];
var distance = 0;
// Total the legs to find the overall journey distance for each route option
for (var j = 0; j < route.legs.length; j++)
{
distance += route.legs[j].distance.value; // metres
}
route_options.push({
'route_id': i,
'distance': distance
});
}
/*
route_options = [
{route_id:0, distance:35125},
{route_id:1, distance:22918},
{route_id:2, distance:20561}
];
*/
// Sort the route options; shortest to longest distance in ascending order
route_options.sort(function(a, b) {
return parseInt(a.distance) - parseInt(b.distance);
});
/*
route_options = [
{route_id:2, distance:20561},
{route_id:1, distance:22918},
{route_id:0, distance:35125}
];
*/
var shortest_distance = (route_options[0]['distance'] * 0.001); // convert metres to kilometres
然后,您可以访问“route_id”值以访问响应对象中的正确路由。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)