我们如何从Google Direction API默认获得从A点到B点的最短距离路线

2024-02-13

我们如何从 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(使用前将#替换为@)

我们如何从Google Direction API默认获得从A点到B点的最短距离路线 的相关文章

随机推荐