开发 HarmonyOS NEXT 地图SDK 开发指南 出行路线规划 公交出行路线规划

公交出行路线规划 最后更新时间: 2026年05月26日

公交路径规划可以根据起终点和公交换乘的数据,使用 BusRouteOverlay 画出公交路线图层,包括起终点和换乘点。另外也可以自定义起终点和换乘点的图标。

目前支持跨城公交路线规划,提供不同城市之间的火车换成方案。

公交出行路线规划

第 1 步,初始化 RouteSearch 对象

this.mRouteSearch = new RouteSearch(this.mContext)

第 2 步,设置数据回调监听器

this.mRouteSearch.setRouteSearchListener(this.onRouteSearchListener)

第 3 步,设置搜索参数

通过 BusRouteQuery(fromAndTo: FromAndTo, mode: numer, city: string,  nightflag: number) 设置搜索条件。方法中的参数说明如下:

  • fromAndTo,路径的起终点;
  • mode,计算路径的模式,可选,默认为最快捷;
  • city,城市名称/城市区号/电话区号,此项不能为空;当进行跨城查询时,该参数对应起点的城市;
  • nightflag,是否计算夜班车,默认为不计算,0:不计算,1:计算,可选。

如果选择计算夜班车(nightflag=1),返回的夜班车数据将会排列在结果的前边。

如果存在地铁换乘出行,返回结果中还包括地铁的入站口和出站口信息。

如果是跨城公交出行,返回结果中包含火车信息。进行跨城公交查询时,还需调用 BusRouteQuery 的 setCityd(city: string) 方法设置终点城市。

// fromAndTo包含路径规划的起点和终点,RouteSearch.BusLeaseWalk表示公交查询模式
// 第三个参数表示公交查询城市区号,第四个参数表示是否计算夜班车,0表示不计算,1表示计算
let query = new BusRouteQuery(fromAndTo, RouteSearch.BusLeaseWalk, "010",0);
//query.setCityd("027");//终点城市区号

第 4 步,发送请求

使用类 RouteSearch 的 calculateBusRouteAsyn( query: BusRouteQuery) 方法进行公交规划路径计算。

this.mRouteSearch.calculateBusRouteAsyn(query)

第 5 步,接收数据

在 OnRouteSearchListener 接口回调方法 onBusRouteSearched( busRouteResult: BusRouteResult, rCode: number) 处理公交路径规划结果。

说明:

1)可以在回调中解析 result,获取驾车的路径。

2)result.getPaths()可以获取到 BusPath 列表,公交路径的详细信息可参考 BusPath 类。公交路径规划的一个路段(类 BusStep),必存在一段公交导航信息,最多包含一段步行信息。返回结果构成如下图所示:

3)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)

private onRouteSearchListener: OnRouteSearchListener = {
  onBusRouteSearched: (result: BusRouteResult, errorCode: number): void => {
    //todo处理返回的公交路线结果
  },
  onRideRouteSearched: () => {
  },
  onWalkRouteSearched: () => {
  },
  onDriveRouteSearched: () => {
  }
}

      

公交出行路线规划V2

公交路径规划可以根据起终点和公交换乘的数据,使用 BusRouteOverlayV2 画出公交路线图层,包括起终点和换乘点。另外也可以自定义起终点和换乘点的图标。

目前支持跨城公交路线规划,提供不同城市之间的火车换成方案。

第 1 步,初始化 RouteSearchV2 对象

this.mRouteSearch = new RouteSearchV2(this.mContext)

第 2 步,设置数据回调监听器

this.mRouteSearch.setRouteSearchListener(this.onRouteSearchListener)

第 3 步,设置搜索参数

通过 BusRouteQueryV2(fromAndTo: FromAndTo, mode: numer, city: string,  nightflag: number) 设置搜索条件。方法中的参数说明如下:

  • fromAndTo,路径的起终点;
  • mode,计算路径的模式,可选,默认为最快捷;
  • city,城市区号,此项不能为空;当进行跨城查询时,该参数对应起点的城市;
  • nightflag,是否计算夜班车,默认为不计算,0:不计算,1:计算,可选。

如果选择计算夜班车(nightflag=1),返回的夜班车数据将会排列在结果的前边。

如果存在地铁换乘出行,返回结果中还包括地铁的入站口和出站口信息。

如果是跨城公交出行,返回结果中包含火车信息。进行跨城公交查询时,还需调用 BusRouteQueryV2 的 setCityd(city: string) 方法设置终点城市。

// fromAndTo包含路径规划的起点和终点,RouteSearch.BusLeaseWalk表示公交查询模式
// 第三个参数表示公交查询城市区号,第四个参数表示是否计算夜班车,0表示不计算,1表示计算
let query = new BusRouteQueryV2(fromAndTo, RouteSearch.BusLeaseWalk, "010",0);
//query.setCityd("027");//终点城市区号
//query.setShowFields(0b0010101);//对应查询结果'cost,navi,polyline'字段展示,可在网站api查询

第 4 步,发送请求

使用类 RouteSearchV2 的 calculateBusRouteAsyn( query: BusRouteQueryV2) 方法进行公交规划路径计算。

this.mRouteSearch.calculateBusRouteAsyn(query)

第 5 步,接收数据

在 OnRouteSearchListenerV2接口回调方法 onBusRouteSearched( busRouteResult: BusRouteResultV2, rCode: number) 处理公交路径规划结果。

说明:

1)可以在回调中解析 result,获取驾车的路径。

2)result.getPaths()可以获取到 BusPathV2 列表,公交路径的详细信息可参考 BusPathV2 类。公交路径规划的一个路段(类 BusStepV2),必存在一段公交导航信息,最多包含一段步行信息。

3)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)

private onRouteSearchListener: OnRouteSearchListenerV2 = {
  onBusRouteSearched: (result: BusRouteResultV2, errorCode: number): void => {
    //todo处理返回的公交路线结果
  },
  onRideRouteSearched: () => {
  },
  onWalkRouteSearched: () => {
  },
  onDriveRouteSearched: () => {
  }
}

     

返回顶部 示例中心 常见问题 智能客服 公众号
二维码