AI 地图
产品服务
解决方案
文档与支持
定价
更新时间: 2026/07/27 10:37
您当前查看的是 JSAPI 3.0 历史版本文档。该版本仅用于维护现有项目,不建议用于新项目开发。新项目请使用 JSAPI 4.0,如需升级现有项目,请参考升级指南
You are viewing the legacy JSAPI 3.0 documentation. This version is maintained for existing projects only and is not recommended for new development. For new projects, use the JSAPI 4.0 documentation. If you are upgrading an existing project, please refer to the Migration Guide.
简介

百度地图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);

上一篇

逆/地址解析

下一篇

全景图展现
本篇文章对您是否有帮助?