开发者可以通过poi检索获取公交类型(公交车,地铁)的poi信息,根据poi对应的uid请求buslinesearch检索详细的公交路线信息(如:该线路的站点数、各站点名称、参考票价等)。
1. 发起检索
/*** 在"北京"市检索"963"poi信息*/mpoisearch.searchincity(newpoicitysearchoption().city("北京")//必填字段.keyword("963"));//必填字段
2. 在poi检索结果的回调中获取公交线路的uid 在v5.1.0之前的sdk版本中,通过poiinfo.type字段获取poi点类型,其中 公交车路线和地铁路线对应poiinfo.type字段分别为poitype.bus_line(2), poitype.subway_line(4)。
@overridepublicvoidongetpoiresult(poiresult poiresult){if(poiresult ==null|| poiresult.error!=searchresult.errorno.no_error){return;}//遍历所有poi,找到类型为公交线路的poifor(poiinfo poi : poiresult.getallpoi()){if(poi.type==poiinfo.poitype.bus_line||poi.type==poiinfo.poitype.subway_line){//获取该条公交路线poi的uidbuslineid = poi.uid;break;}}}
自v5.1.0起,获取poi点类型的方式发生了变化,poiinfo.type字段返回null,应通过poiinfo.getpoidetailinfo.gettag方法获取tag字段来匹配。tag字段的取值请参考poi分类。 另外,需要在构造poicitysearchoption对象时设置scope字段值为2。 示例如下:
mpoisearch.searchincity(newpoicitysearchoption().city("北京")//必填字段.keyword("963")//必填字段.scope(2));
poi检索详细介绍请查看poi检索。
发起buslinesearch示例如下:
mbuslinesearch.searchbusline(newbuslinesearchoption().city("北京").uid(buslineid));
@overridepublicvoidongetbuslineresult(buslineresult buslineresult){if(buslineresult ==null|| buslineresult.error!=searchresult.errorno.no_error){return;}overlay.setdata(buslineresult);overlay.addtomap();overlay.zoomtospan();}
效果如图:
buslineresult包含线路 id、线路名称、线路坐标、所属公交公司、首班车时间、末班车时间、全程里程、起步价、全程票价、是否有月票、沿途站点列表、分段信息。
上一篇
下一篇
本篇文章对您是否有帮助?