首先集成百度的基础sdk Application中初始化sdk
SDKInitializer.initialize(this);
工具类BdMapUtils
/**
* date:2021/7/14
* author:wsm(admin)
* funcation:通过百度定位经纬度获取详细地址
*/
public class BdMapUtils {
// private MKSearch mkSearch;
// 创建地理编码检索实例
static GeoCoder geoCoder = GeoCoder.newInstance();
/**
* 将经度纬度反向译为文字地址
*
* @param lon
* 经度
* @param lat
* 纬度
* @param listener
* OnGetGeoCoderResultListener监听器,对接收到的结果进行处理
*/
public static void reverseGeoParse(double lon, double lat,
OnGetGeoCoderResultListener listener) {
geoCoder.setOnGetGeoCodeResultListener(listener);
LatLng pt1 = new LatLng(lat, lon);
geoCoder.reverseGeoCode(new ReverseGeoCodeOption().location(pt1));
}
}
使用中传入经纬度即可
BdMapUtils.reverseGeoParse(data..getLongitude(), data.getLatitude(), new OnGetGeoCoderResultListener() {
//获取正向解析结果时执行函数
@Override
public void onGetGeoCodeResult(GeoCodeResult arg0) {
}
//获取反向解析结果时执行函数
@Override
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
// 没有检测到结果
} else {
System.out.println(result.getAddress());
txtAddress.setText(result.getAddress());
}
}
});
|