获取公交数据 最后更新时间: 2021年01月22日
公交站点查询
实现公交站点查询的步骤如下:
1、继承 OnBusStationSearchListener 监听。
2、通过 BusStationQuery(java.lang.String query, java.lang.String city) 设置搜索条件。
// 第一个参数表示公交站点名,第二个参数表示所在城市名或者城市区号
busStationQuery = new BusStationQuery(search, cityCode);
3、构造 BusStationSearch 对象,并设置监听,并调用 BusStationSearch 的 searchBusStationAsyn() 方法发起查询。
busStationSearch = new BusStationSearch(this, busStationQuery);
busStationSearch.setOnBusStationSearchListener(this);// 设置查询结果的监听
busStationSearch.searchBusStationAsyn();
4、通过回调接口 onBusStationSearched 解析返回的结果。
说明:
1)可以在回调中解析result,获取公交站点信息。
2)result.getBusStations()可以获取到 BusStationItem 列表。
3)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)
@Override
public void onBusStationSearched(BusStationResult result, int rCode) {
//解析result获取公交站点信息
}
公交路线查询
线路名称查询
1、设置查询条件
根据 BusLineSearch(Context act, new BusQuery(String query, BusLineQuery.SearchType ctgr, String city)) 创建一个 BusLineSearch 对象,并设置查询条件。查询类型参数 ctgr 此处设置为 BusLineQuery.SearchType.BY_LINE_NAME。
2、发送请求和接收数据
使用 BusLineSearch.searchBusLineAsyn() 搜索公交线路。在 BusLineSearch.OnBusLineSearchListener 的接口回调方法 onBusLineSearched(BusLineResult busLineResult, int rCode) 处理返回结果。当根据线路名称搜索无结果时,会自动匹配关键字为途经点名称进行搜索。显示效果如图:
结果返回线路信息有线路 ID、公交类型、线路名称、坐标串、城市编码、首发站、末站。
发送请求
busLineQuery = new BusLineQuery(search,SearchType.BY_LINE_NAME,cityCode);
busLineQuery.setPageSize(10);
busLineQuery.setPageNumber(currentpage);
BusLineSearch busLineSearch = new BusLineSearch(this,busLineQuery);
busLineSearch.setOnBusLineSearchListener(this);
busLineSearch.searchBusLineAsyn();
回调方法
//公交线路搜索的回调
public void onBusLineSearched(BusLineResult result, int rCode) {
//解析result获取搜索结果
}
线路 ID 查询
获取公交线路的详细信息,可使用线路 ID 查询。结果返回线路信息有线路 ID、公交类型、线路名称、线路坐标、城市编码、首发站、末站、首班车时间、末班车时间、所属公交公司、全程里程、起步价、全程票价、矩形区域(外包矩形的左下与右上顶点)、线路沿途坐标。
1、参照线路名称查询步骤1设置查询条件。此时,查询类型参数 ctgr 此处设置为 BusLineQuery.SearchType.BY_LINE_ID。
2、发送请求和接收数据。可参考线路名称查询步骤2。可以根据得到的公交线路数据,使用 BusLineOverlay 画出公交线路图层,包括起终点和所有公交站点。另外也可以自定义 Marker 和 InfoWindow 的图标和信息。
注意事项
请注意:使用上述功能需要下载地图SDK,导入搜索功能的jar包。