AI
产品服务
解决方案
文档与支持
定价
更新时间: 2026/03/13 12:05
简介

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

DEMO详情
驾车
公交
步行
骑行
提供的路线规划方式
路线规划方式类名简介

驾车

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);

上一篇

逆/地址解析

下一篇

全景图展现

本篇文章对您是否有帮助?