BDLocationListener中的onReceiveLocation方法每次定位就调用,如果需要每次定位后即可刷新POI,需要注意以下几点,否则将不会显示POI。
1、poiSearchNearBy必须要在地图刷新及反向GEO搜索之后。并且要在onGetAddrResult中调用。
//刷新地图
refreshMap();
//反Geo搜索
mSearch.reverseGeocode(ptCenter);
//搜索POI
//mSearch.poiSearchNearBy("ATM", ptCenter, 6000);//不能在此执行,否则不能进入onGetAddrResult,无法反Geo搜索。
public void onGetAddrResult(MKAddrInfo res, int error)
{
Log.d(TAG, "Enter onGetAddrResult()");
//poiSearchNearBy必须要在地图刷新及反向GEO搜索之后。
//poiSearchNearBy必须要在onGetAddrResult中调用,否则不能进入onGetAddrResult。
mSearch.poiSearchNearBy("ATM", ptCenter, 6000);
2、initMKSearch(MKSearch初始)的初始必须在定位方式后调用,并且不能在onReceiveLocation中调用。
//初始地图
initMap();
//定位初始、设置、启动
setLocClient();
//初始化地址搜索模块,注册事件监听编码。
initMKSearch();//rwb:该方法需要在定位方式后调用,并且不能在onReceiveLocation中调用。