本人初学者,此功能完全复制了百度地图API官网的开发指南。
OnGetPoiSearchResultListener listener = new OnGetPoiSearchResultListener() {
@Override
public void onGetPoiResult(PoiResult poiResult) {
Log.v("提示:","进入poi监听器");
if (poiResult.error == SearchResult.ERRORNO.NO_ERROR) {
Log.v("提示:","poi查询结果无误");
mBaiduMap.clear();
//创建PoiOverlay对象
PoiOverlay poiOverlay = new PoiOverlay(mBaiduMap);
//设置Poi检索数据
poiOverlay.setData(poiResult);
//将poiOverlay添加至地图并缩放至合适级别
poiOverlay.addToMap();
poiOverlay.zoomToSpan();
}
else {
Log.v("提示:", "poi搜索结果有错误");
Log.v("提示:错误代码",String.valueOf(poiResult.error));
}
Log.v("提示:","poi监听器运行完成");
}
在logcat中显示出了错误代码为PERMISSION_UNFINISHED。
解决:不能把poi搜索的代码放在main_activity的oncreate()中,我把代码整个移到地图单击事件监听器中,将poi搜索作为用户单击地图后的respond(不知道该不该这样说),问题解决。此功能的代码在百度地图开放平台---安卓端地图SDK中有。PS:我发现在每个功能进行的前后都加上Log.v();非常实用,能让你对于清楚了解程序运行到了哪部分。希望能够帮到大家。