插件窝 干货文章 百度地图JS API 3.0驾车路线规划:如何获取多条路线方案?

百度地图JS API 3.0驾车路线规划:如何获取多条路线方案?

路线 获取 driving routePolicy 772    来源:    2025-03-19

在使用百度地图JS API 3.0进行驾车路线规划时,默认情况下,API会返回一条最优的路线。如果你需要获取多条路线方案,可以通过设置routePolicy参数来实现。routePolicy参数允许你指定不同的路线策略,从而获取不同的路线方案。

以下是一个示例代码,展示如何使用百度地图JS API 3.0获取多条驾车路线方案:

// 创建地图实例
var map = new BMap.Map("mapContainer");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);

// 创建驾车路线规划实例
var driving = new BMap.DrivingRoute(map, {
    renderOptions: {
        map: map,
        autoViewport: true
    },
    onSearchComplete: function(results){
        if (driving.getStatus() == BMAP_STATUS_SUCCESS){
            // 获取第一条路线
            var plan1 = results.getPlan(0);
            console.log("第一条路线:", plan1.getDescription(true));

            // 获取第二条路线
            var plan2 = results.getPlan(1);
            console.log("第二条路线:", plan2.getDescription(true));

            // 获取第三条路线
            var plan3 = results.getPlan(2);
            console.log("第三条路线:", plan3.getDescription(true));
        }
    }
});

// 设置起点和终点
var start = new BMap.Point(116.404, 39.915); // 起点
var end = new BMap.Point(116.404, 39.915); // 终点

// 设置路线策略,获取多条路线
driving.search(start, end, {routePolicy: BMAP_DRIVING_POLICY_LEAST_TIME}); // 最少时间
driving.search(start, end, {routePolicy: BMAP_DRIVING_POLICY_LEAST_DISTANCE}); // 最短距离
driving.search(start, end, {routePolicy: BMAP_DRIVING_POLICY_AVOID_HIGHWAYS}); // 避开高速

关键点解释:

  1. routePolicy参数:通过设置routePolicy参数,你可以指定不同的路线策略,从而获取不同的路线方案。常用的策略包括:

    • BMAP_DRIVING_POLICY_LEAST_TIME:最少时间路线。
    • BMAP_DRIVING_POLICY_LEAST_DISTANCE:最短距离路线。
    • BMAP_DRIVING_POLICY_AVOID_HIGHWAYS:避开高速路线。
  2. onSearchComplete回调函数:在路线规划完成后,onSearchComplete回调函数会被触发。你可以通过results.getPlan(index)方法获取不同的路线方案,index表示路线的索引(从0开始)。

  3. getDescription(true)方法:该方法可以获取路线的详细描述,包括路线距离、时间等信息。

注意事项:

  • 百度地图JS API 3.0默认返回的路线数量可能有限,具体数量取决于API的返回结果。
  • 如果你需要更多的路线方案,可以通过多次调用driving.search方法,并设置不同的routePolicy参数来获取不同的路线。

通过以上方法,你可以轻松获取多条驾车路线方案,并根据需求选择最适合的路线。