百度地图根据经纬度获取地址
查询地址要内部实现MKSearchListener接口
- Java代码
- public class SearchListener implements MKSearchListener {
- /**
- * 根据经纬度搜索地址信息结果
- *
- * @param result
- * 搜索结果
- * @param iError
- * 错误号(0表示正确返回)
- */
- @Override
- public void onGetAddrResult(MKAddrInfo result, int iError) {
- if (result == null) {
- String str = String.format("错误号:%d", iError);
- Toast.makeText(mContext, str, Toast.LENGTH_LONG).show();
- return;
- }
- StringBuffer sb = new StringBuffer();
- // 经纬度所对应的位置
- sb.append(result.strAddr);
- Log.d("debug", "address--==>"+sb.toString());
- }
- /**
- * 驾车路线搜索结果
- *
- * @param result 搜索结果
- * @param iError 错误号(0表示正确返回)
- */
- @Override
- public void onGetDrivingRouteResult(MKDrivingRouteResult result, int iError)
- {
- }
- /**
- * POI搜索结果(范围检索、城市POI检索、周边检索)
- *
- * @param result搜索结果
- * @param type
- * 返回结果类型(11,12,21:poi列表 7:城市列表)
- * @param iError
- * 错误号(0表示正确返回)
- */
- @Override
- public void onGetPoiResult(MKPoiResult result, int type, int iError)
- {
- }
- /**
- * 公交换乘路线搜索结果
- *
- * @param result
- * 搜索结果
- * @param iError
- * 错误号(0表示正确返回)
- */
- @Override
- public void onGetTransitRouteResult(MKTransitRouteResult result, int iError)
- {
- }
- /**
- * 步行路线搜索结果
- *
- * @param result
- * 搜索结果
- * @param iError
- * 错误号(0表示正确返回)
- */
- @Override
- public void onGetWalkingRouteResult(MKWalkingRouteResult result, int iError)
- {
- }
- }
在初始化MKSearch之前,要先初始化BMapManager
- Java代码
- // 定义搜索服务类
- private MKSearch mMKSearch;
- // 初始化MKSearch
- mMKSearch = new MKSearch();
- mMKSearch.init(application.mapManager, new SearchListener());
- mMKSearch.reverseGeocode(new GeoPoint((int) (latitude * 1e6), (int) (longitude * 1e6)));