android利用百度api解析经纬度

利用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);
}





原文地址:https://www.cnblogs.com/arthur3/p/2396483.html