利用GPS获取到了经纬度,结果geocoder解析出来的不够精确,改用百度的api(可以定位到大道,貌似没有精确到网上说的街道这么准,不过至少比只能解析到区的geocoder要好)
1、下百度地图的SDK,有一个.so文件和jar包要copy至libs\armebi下
2、导入上面的jar包
这样就可以使用百度的api啦,注意在AndroidMainfest.xml申明相关权限
mapManager = new BMapManager(app)
mapManager.init(key,null);//key需要手动到相应网址去申请
mapManager.start();// the most important!
mMKSearch = new MKSearch();
mMKSearch.reverseGeocod(mGeocode);//注意经纬度转化为geocode的时候要*1e6
mMKSearch.init(mapManager,new myMKSearchListener());
然后在myMKSearchListener()里的onGetAddrResult方法里就可以获取到相应的地址信息了
@Override
public void onGetAddrResult(MKAddrInfo res, int error)
{
if(res==null)
return;
StringBuffer sb = new StringBuffer();
sb.append(res.strAddr);//经纬度所对应的位置
bAddStr = sb.toString();
Util.showToast(context, "百度定位-当前位置:"+bAddStr, Toast.LENGTH_LONG);
}