更新时间:2020-06-23
公交路线信息检索简介
开发者可以通过POI检索获取公交类型(公交车,地铁)的POI信息,根据POI对应的UID请求BusLineSearch检索详细的公交路线信息(如:该线路的站点数、各站点名称、参考票价等)。
公交路线信息检索示例
POI检索获取公交路线UID
1. 发起检索
/** * 在"北京"市检索"963"POI信息 */ mPoiSearch.searchInCity(new PoiCitySearchOption() .city("北京") //必填字段 .keyword("963")); //必填字段
2. 在POI检索结果的回调中获取公交线路的UID 在V5.1.0之前的SDK版本中,通过PoiInfo.type字段获取Poi点类型,其中 公交车路线和地铁路线对应PoiInfo.type字段分别为POITYPE.BUS_LINE(2), POITYPE.SUBWAY_LINE(4)。
@Override public void onGetPoiResult(PoiResult poiResult) { if (poiResult == null || poiResult.error != SearchResult.ERRORNO.NO_ERROR) { return; } //遍历所有POI,找到类型为公交线路的POI for (PoiInfo poi : poiResult.getAllPoi()) { if (poi.type == PoiInfo.POITYPE.BUS_LINE ||poi.type == PoiInfo.POITYPE.SUBWAY_LINE) { //获取该条公交路线POI的UID busLineId = poi.uid; break; } } }
自V5.1.0起,获取Poi点类型的方式发生了变化,PoiInfo.type字段返回null,应通过PoiInfo.getPoiDetailInfo.getTag方法获取tag字段来匹配。tag字段的取值请参考POI分类。 另外,需要在构造PoiCitySearchOption对象时设置scope字段值为2。 示例如下:
mPoiSearch.searchInCity(new PoiCitySearchOption() .city("北京") //必填字段 .keyword("963") //必填字段 .scope(2));
POI检索详细介绍请查看POI检索。
BusLineSearch检索公交线路详细信息
发起BusLineSearch示例如下:
mBusLineSearch.searchBusLine(new BusLineSearchOption() .city("北京") .uid(busLineId));
开发者可以调用开源的BusLineOverlay代码快速高效地在地图上展示检索结果。
@Override public void onGetBusLineResult(BusLineResult busLineResult) { if (busLineResult == null || busLineResult.error != SearchResult.ERRORNO.NO_ERROR) { return; } overlay.setData(busLineResult); overlay.addToMap(); overlay.zoomToSpan(); }效果如图:
BusLineResult详情
BusLineResult包含线路 ID、线路名称、线路坐标、所属公交公司、首班车时间、末班车时间、全程里程、起步价、全程票价、是否有月票、沿途站点列表、分段信息。