浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

JavaScript API

百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。免费对广大用户开放。

简介

百度地图JavaScript API v3.0提供了驾车、公交、步行和骑行四种出行方式的路线规划功能。开发者在使用线路规划的接口时,可以使用我们提供的默认展示效果。也可以通过监听事件回调,使用检索数据完成自己的需求。v3.0的线路规划服务和v2.0的相比,在功能上有所差异。详细请参考本文档和JavaScript API v3.0类参考

提供的路线规划方式
路线规划方式 类名 简介
驾车
DrivingRoute 提供驾车路线规划服务
公交 TransitRoute 提供市内公交和跨城交通方式(飞机、火车、大巴)的路线规划服务
步行 WalkingRoute 提供步行路线规划服务
骑行
RidingRoute
提供骑行线路规划服务
驾车路线规划
1基础驾车路线规划服务示例:
代码如下:
var map = new BMap.Map("container"); 
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); 
var driving = new BMap.DrivingRoute(map, { 
    renderOptions: { 
        map: map, 
        autoViewport: true 
} 
});
var start = new BMap.Point(116.310791, 40.003419);
var end = new BMap.Point(116.486419, 39.877282);
driving.search(start, end);
2数据接口
驾车导航服务也提供了丰富的数据接口,通过onSearchComplete回调函数可以得到BMap.DrivingRouteResult对象,它包含了驾车导航结果数据信息。 结果会包含若干驾车方案,每条方案中包含了若干驾车线路。 每条驾车线路又会包含一系列的关键步骤(BMap.Step),关键步骤描述了具体驾车行驶方案。
var map = new BMap.Map("container"); 
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); 
var options = { 
    onSearchComplete: function(results){ 
        if (driving.getStatus() == BMAP_STATUS_SUCCESS){ 
            // 获取第一条方案 
            var plan = results.getPlan(0); 
            // 获取方案的驾车线路 
            var route = plan.getRoute(0); 
            // 获取每个关键步骤,并输出到页面 
            var s = []; 
            for (var i = 0; i < route.getNumSteps(); i ++) { 
                var step = route.getStep(i); 
                console.log(step); 
            } 
        } 
    } 
}; 
var driving = new BMap.DrivingRoute(map, options);
var start = new BMap.Point(116.310791, 40.003419);
var end = new BMap.Point(116.486419, 39.877282);
driving.search(start, end);
公交路线规划
BMap.TransitRoute类提供公交线路规划服务。

请注意v3.0中,新增了TransitRoutePlan.getTotal 和 TransitRoutePlan.getTotalType方法,可以获取一条公交换成方案中总路段数(步行+公交),和指定路段的交通方式类型(步行或公交)。

1使用服务示例
代码如下:
var map = new BMap.Map("container"); 
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); 
var transit = new BMap.TransitRoute(map, { 
    renderOptions: { 
        map: map, 
        autoViewport: true 
    } 
});
var start = new BMap.Point(116.310791, 40.003419);
var end = new BMap.Point(116.486419, 39.877282);
transit.search(start, end);
2进行跨城路线规划
代码如下:
var map = new BMap.Map("container"); 
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); 
var transit = new BMap.TransitRoute(map, { 
    renderOptions: { 
        map: map, 
        autoViewport: true

    },

    // 配置跨城公交的换成策略为优先出发早

    intercityPolicy: BMAP_INTERCITY_POLICY_EARLY_START,

    // 配置跨城公交的交通方式策略为飞机优先

    transitTypePolicy: BMAP_TRANSIT_TYPE_POLICY_AIRPLANE

});

var start = new BMap.Point(116.310791, 40.003419);
var end = new BMap.Point(121.490546, 31.233585);
transit.search(start, end);
3结果面板
您可以提供用于展示文字结果的容器元素,方案结果会自动在页面中展现。
var map = new BMap.Map("container"); 
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); 
var transit = new BMap.TransitRoute(map, { 
    renderOptions: {map: map, panel: "results"} 
}); 
var start = new BMap.Point(116.310791, 40.003419);
var end = new BMap.Point(121.490546, 31.233585);
transit.search(start, end);
4数据接口
您可通过数据接口获取详细的公交方案信息。公交导航搜索结果用BMap.TransitRouteResult来表示,其中包含了若干公交出行方案(BMap.TransitRoutePlan)。每条出行方案由步行线路和公交线路组成。 在起点到上车点之间、下车点到终点之间以及每个换乘站之间都会存在步行线路,如果上述的某两点位置重合,那么其间的步行路线长度为0。 如下示例,通过数据接口将第一条方案的路线添加到地图上。
var map = new BMap.Map("container"); 
map.centerAndZoom(new BMap.Point(116.404, 39.915), 12); 
var transit = new BMap.TransitRoute(); 
transit.setSearchCompleteCallback(function(results) { 
    if (transit.getStatus() == BMAP_STATUS_SUCCESS) { 
        var firstPlan = results.getPlan(0); 
        // 绘制步行线路 
        for (var i = 0; i < firstPlan.getNumRoutes(); i++) { 
            var walk = firstPlan.getRoute(i); 
            if (walk.getDistance(false) > 0){ 
                // 步行线路有可能为0 
                map.addOverlay(new BMap.Polyline(walk.getPoints(), {lineColor: "green"})); 
            } 
        } 
        // 绘制公交线路 
        for (i = 0; i < firstPlan.getNumLines(); i++) { 
                var line = firstPlan.getLine(i); 
                map.addOverlay(new BMap.Polyline(line.getPoints())); 
        }
    } 
});
var start = new BMap.Point(116.310791, 40.003419);
var end = new BMap.Point(121.490546, 31.233585);
transit.search(start, end);
步行路线规划
BMap.WalkingRoute提供步行线路规划服务。基本用法和驾车线路规划类似。
1使用服务示例
代码如下:
var map = new BMap.Map("container"); 
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); 
    var walk = new BMap.WalkingRoute(map, { 
    renderOptions: {map: map} 
}); 
var start = new BMap.Point(116.310791, 40.003419);
var end = new BMap.Point(116.486419, 39.877282);
walk.search(start, end);
骑行线路规划
BMap.RidingRoute提供骑行线路规划服务,基本用法和步行线路规划基本相同。
1使用服务示例
代码如下:
var map = new BMap.Map("container"); 
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); 
var riding = new BMap.RidingRoute(map, { 
    renderOptions: {map: map} 
}); 
var start = new BMap.Point(116.310791, 40.003419);
var end = new BMap.Point(116.486419, 39.877282);
riding.search(start, end);