方法一:
直接粘贴代码
GeoCoder mSearch = GeoCoder.newInstance();mSearch.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {@Overridepublic void onGetGeoCodeResult(GeoCodeResult geoCodeResult) {}@Overridepublic void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {LogUtils.e("打印转换后的地址" + reverseGeoCodeResult.getAddress());}});//下面是传入对应的经纬度mSearch.reverseGeoCode(new ReverseGeoCodeOption().location(new LatLng(mCurrentLat, mCurrentLon)));
感谢博主:原文
方法二:
这个方法是获取定位的时候才可以获取详细地址:
第一步:
public LocationClient mLocationClient = null;private MyLocationListener myListener = new MyLocationListener();//BDAbstractLocationListener为7.2版本新增的Abstract类型的监听接口//原有BDLocationListener接口暂时同步保留。具体介绍请参考后文中的说明public void onCreate() {mLocationClient = new LocationClient(getApplicationContext());//声明LocationClient类mLocationClient.registerLocationListener(myListener); //注册监听函数}
第二步:
此处请开发者注意,如果想获取地址信息,需在配置LocationClientOption类时做相应的设置。设置方法与获取经纬度中第三步类似,核心代码如下:LocationClientOption option = new LocationClientOption();option.setIsNeedAddress(true);//这是重点//可选,是否需要地址信息,默认为不需要,即参数为false//如果开发者需要获得当前点的地址信息,此处必须为truemLocationClient.setLocOption(option);//mLocationClient为第二步初始化过的LocationClient对象//需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用//更多LocationClientOption的配置,请参照类参考中LocationClientOption类的详细说明
第三步:
public class MyLocationListener implements BDAbstractLocationListener{@Overridepublic void onReceiveLocation(BDLocation location){//此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果//以下只列举部分获取地址相关的结果信息//更多结果信息获取说明,请参照类参考中BDLocation类中的说明String addr = location.getAddrStr(); //获取详细地址信息String country = location.getCountry(); //获取国家String province = location.getProvince(); //获取省份String city = location.getCity(); //获取城市String district = location.getDistrict(); //获取区县String street = location.getStreet(); //获取街道信息}}
可以看下获取的地址:
可查看官方文档:百度官方文档