问题复现:
Android使用高德地图定位,定位成功回调,有经纬度坐标信息,但是地址城市等信息为空,会出现在部分机型或者虚拟定位中
下面是问题复现截图
问题原因:
暂时不明,使用的是2.X版本
解决问题:
既然不正确的定位信息里其他信息没有,但是有坐标点关键信息是可以进行反编码获取地址的
所以通过这个思路在高德API里找到反编码方法就OK了,废话不多说,直接上根据经纬度坐标点获取地址的代码
GeocodeSearch geocoderSearch =new GeocodeSearch(MyApplication.getInstance());
geocoderSearch.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {
@Override
public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
if(TextUtils.isEmpty(PreferencesUtils.getString(MyApplication.getInstance(),Constant.CITY))){
String c = regeocodeResult.getRegeocodeAddress().getCity();
String a = regeocodeResult.getRegeocodeAddress().getFormatAddress();
//这里你可以点出很多信息,根据情况自己去获取
}
}
@Override
public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
}
});
// 第一个参数表示一个Latlng,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系
LatLonPoint point =new LatLonPoint(location.getLatitude(),location.getLongitude());
RegeocodeQuery query =new RegeocodeQuery(point, 200,GeocodeSearch.AMAP);
geocoderSearch.getFromLocationAsyn(query);
OK,问题到此结束,各位码农编码快乐*^_^*