高德地图开发Android 地图SDK开发指南获取地图数据—获取公交数据

高德地图开发Android 地图SDK开发指南获取地图数据—获取公交数据

获取公交数据 最后更新时间: 2021年01月22日

公交站点查询

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

1、继承 OnBusStationSearchListener 监听。

2、通过 BusStationQuery(java.lang.String query, java.lang.String city) 设置搜索条件。

Java

// 第一个参数表示公交站点名,第二个参数表示所在城市名或者城市区号
busStationQuery = new BusStationQuery(search, cityCode);

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

Java

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

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

说明:

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

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

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

Java

@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、公交类型、线路名称、坐标串、城市编码、首发站、末站。

发送请求

Java

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

回调方法

Java

//公交线路搜索的回调
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包。