开发 HarmonyOS NEXT 地图SDK 开发指南 获取地图数据 获取公交数据

获取公交数据 最后更新时间: 2026年05月26日

公交站点查询

实现公交站点查询的步骤如下:

1、继承 OnBusStationSearchListener 监听。

2、通过 BusStationQuery(query: string, city: string)设置搜索条件。

// 第一个参数表示公交线路名,第二个参数表示公交线路查询,第三个参数表示所在城市名或者城市区号
this.busStationQuery = new BusStationQuery(search, this.getCityCode());

3、构造 BusStationSearch 对象,并设置监听,并调用 BusStationSearch 的 searchBusStationAsyn() 方法发起查询。

this.busStationSearch = new BusStationSearch(this.mContext, this.busStationQuery);
// 设置查询结果的监听
this.busStationSearch?.setOnBusStationSearchListener(this.busStationSearchListener); 
this.busStationSearch?.searchBusStationAsyn();

4、通过回调接口 onBusStationSearched 解析返回的结果。

说明:

1)可以在回调中解析result,获取公交站点信息。

2)result.getBusStations()可以获取到 BusStationItem 列表。

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

  private busStationSearchListener: OnBusStationSearchListener = {
    onBusStationSearched: (result: BusStationResult, rCode: number) => {
      //ToDo
    }
  }

公交路线查询

线路名称查询

1、设置查询条件

根据 BusLineQuery(query: string, ctgr: BusSearchType, city: string) 创建一个 BusLineQuery 对象,并设置查询条件,再根据 BusLineSearch(act: Context, query: BusLineQuery) 创建一个 BusLineSearch 对象。查询类型参数 ctgr 此处设置为 BusLineQuery.SearchType.BY_LINE_NAME。

2、发送请求和接收数据

使用 BusLineSearch.searchBusLineAsyn() 搜索公交线路。在 OnBusLineSearchListener 的接口回调方法 onBusLineSearched: (busLinePagedResult: BusLineResult, resultID: number) => void处理返回结果。当根据线路名称搜索无结果时,会自动匹配关键字为途经点名称进行搜索。显示效果如图:

结果返回线路信息有线路 ID、公交类型、线路名称、坐标串、城市编码、首发站、末站。

发送请求

this.busLineQuery = new BusLineQuery(search, BusSearchType.BY_LINE_NAME,
  this.getCityCode()); // 第一个参数表示公交线路名,第二个参数表示公交线路查询,第三个参数表示所在城市名或者城市区号
this.busLineQuery.setPageSize(10); // 设置每页返回多少条数据
this.busLineQuery.setPageNumber(this.currentPage); // 设置查询第几页,第一页从0开始算起
this.busLineSearch = new BusLineSearch(this.mContext, this.busLineQuery); // 设置条件
this.busLineSearch?.setOnBusLineSearchListener(this.busLineSearchListener); // 设置查询结果的监听
this.busLineSearch?.searchBusLineAsyn(); // 异步查询公交线路名称

回调方法

private busLineSearchListener: OnBusLineSearchListener = {
  onBusLineSearched: (result: BusLineResult, rCode: number) => {
    //ToDo
  }
}

线路 ID 查询

获取公交线路的详细信息,可使用线路 ID 查询。结果返回线路信息有线路 ID、公交类型、线路名称、线路坐标、城市编码、首发站、末站、首班车时间、末班车时间、所属公交公司、全程里程、起步价、全程票价、矩形区域(外包矩形的左下与右上顶点)、线路沿途坐标。

1、参照线路名称查询步骤1设置查询条件。此时,查询类型参数 ctgr 此处设置为 BusLineQuery.SearchType.BY_LINE_ID。

2、发送请求和接收数据。可参考线路名称查询步骤2。可以根据得到的公交线路数据,使用 BusLineOverlay 画出公交线路图层,包括起终点和所有公交站点。另外也可以自定义 Marker 和 InfoWindow 的图标和信息。

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