// 创建对象
private GeocodeSearch search;
search = new GeocodeSearch(this);
// 设置监听器
search.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {
@Override
public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
RegeocodeAddress addr = regeocodeResult.getRegeocodeAddress();
Log.i(TAG, "onRegeocodeSearched:地址为:"+addr.getFormatAddress());
}
@Override
public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
}
});
//进行转换
search.getFromLocationAsyn(new RegeocodeQuery(new LatLonPoint(getLatitudeFromGD, getLongitudeFromGD), 20f, GeocodeSearch.AMAP));
具体如下:
利用高德地图,经纬度转地址
1、定义两个静态变量:
public static GeocodeSearch search;
public static RegeocodeAddress mRegeocodeAddress;
2、onCreate方法里设置search变量:
search = new GeocodeSearch(this);
search.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {
@Override
public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
mRegeocodeAddress = regeocodeResult.getRegeocodeAddress();
Log.i(TAG, "onRegeocodeSearched:地址为:"+ mRegeocodeAddress.getFormatAddress());
}
@Override
public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
}
});
3、函数真身
public static String getAddressStrByLatLng(Double lat, Double lng){
if(lat<1.0 || lng < 1.0){
return "";
}
search.getFromLocationAsyn(new RegeocodeQuery(new LatLonPoint(lat, lng), 20f, GeocodeSearch.AMAP));
return mRegeocodeAddress.getFormatAddress();
}
4、运用:
double lat = 32.xxx;
double lng = 118.xxx;
String getAddressStrFromGD = getAddressStrByLatLng(lat, lng);