在项目开发中遇到这个问题,查询百度和谷歌没有找到可行方法,在查阅了百度地图api后发现poiinfo类中又一个address字段用于存放经过该站点的所有公交车路线。
1、进行poi搜索操作
2、遍历搜索结果,筛选出公交信息
/**
* 获取定位周围的公交站点,自动定位至最近站点,也就是当前站点
* @param latLng 定位获取的当前位置
*/
private void getPoiResult(LatLng latLng){
if (latLng!=null){
PoiSearch nPoiSearcher = PoiSearch.newInstance();
OnGetPoiSearchResultListener onGetPoiSearchResultListener = new OnGetPoiSearchResultListener() {
@Override
public void onGetPoiResult(PoiResult result) {
if (result.error != SearchResult.ERRORNO.NO_ERROR ||result == null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,"检索失败",Toast.LENGTH_SHORT).show();
}
});
} else {
Listlist = result.getAllPoi();
if (list.size()>0){
String locStation = list.get(0).name;
String[] localStations = list.get(0).address.split(";");
for(String str:localStations){
Log.i("test",str);
}
}
}
}
@Override
public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {
}
@Override
public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {
}
};
nPoiSearcher.setOnGetPoiSearchResultListener(onGetPoiSearchResultListener);
nPoiSearcher.searchNearby(new PoiNearbySearchOption().keyword("公交站点").location(latLng).radius(1000));
}
}
其实思路非常简单,只要找到address字段和学会poi检索方法即可。
欢迎来到我的个人博客来互相讨论技术:http://www.strivingtree.com/