首先集成百度的基础sdk
Application中初始化sdk
SDKInitializer.initialize(this);
工具类BdMapUtils
/*** date:/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() {//获取正向解析结果时执行函数@Overridepublic void onGetGeoCodeResult(GeoCodeResult arg0) {}//获取反向解析结果时执行函数@Overridepublic void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {// 没有检测到结果} else {System.out.println(result.getAddress());txtAddress.setText(result.getAddress());}}});