Adroid利用百度地图将经纬度转换为地址信息
2016-12-09 14:58
459 查看
准备工作:
1、拥有百度账号
2、为应用申请了apk
3、下载相关的sdk并放在了libs下,这里使用的是 Android SDK v4.1.1
4、在AndroidManifest中添加了足够的permission权限,及其他配置,参照官网提供的Demo中的AndroidManifest完成
正题:
实现经纬度转为地址信息,主要用到的类是GeoCoder,通过newInstance获得类的实例。
用到的方法为 public boolean reverseGeoCode(ReverseGeoCodeOption option)即反向解析,发起反地理编码请求(经纬度->地址信息)
与其对应的是方法为 public boolean geocode(GeoCodeOption option),正向解析,(地址信息->经纬度)。
reverseGeoCode和geocode只是进行了对应的查询,并不立即返回查询结果,而是通过设置监听器,监听返回结果,方法为:
public void
setOnGetGeoCodeResultListener(OnGetGeoGoderResultListenerlistener)
将实现部分封装在BdUtils类中,这里仅实现了反向解析,即经纬度->地址信息,其他功能可根据自己需要添加
调用部分
运行时报错:you have not supplyed the global app context info from SDKInitializer.initialize(Context) function.
需要通过编写自己的Application类,如叫MyApplication,继承自系统的Application类,在其onCreate函数中添加语句SDKInitializer.initialize(this);
参考文档:
http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/1025v4.1.1/index.html http://blog.csdn.net/crazy1235/article/details/43377545
1、拥有百度账号
2、为应用申请了apk
3、下载相关的sdk并放在了libs下,这里使用的是 Android SDK v4.1.1
4、在AndroidManifest中添加了足够的permission权限,及其他配置,参照官网提供的Demo中的AndroidManifest完成
正题:
实现经纬度转为地址信息,主要用到的类是GeoCoder,通过newInstance获得类的实例。
用到的方法为 public boolean reverseGeoCode(ReverseGeoCodeOption option)即反向解析,发起反地理编码请求(经纬度->地址信息)
与其对应的是方法为 public boolean geocode(GeoCodeOption option),正向解析,(地址信息->经纬度)。
reverseGeoCode和geocode只是进行了对应的查询,并不立即返回查询结果,而是通过设置监听器,监听返回结果,方法为:
public void
setOnGetGeoCodeResultListener(OnGetGeoGoderResultListenerlistener)
将实现部分封装在BdUtils类中,这里仅实现了反向解析,即经纬度->地址信息,其他功能可根据自己需要添加
emptypublic 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)); } }
调用部分
double longitude = 117.11666; double latitude = 54.12300;//应为百度地图对应的经纬度 BdMapUtils.reverseGeoParse(Double.parseDouble(longitude,latitude,new OnGetGeoCoderResultListener(){ //获取正向解析结果时执行函数 @Override public void onGetGeoCodeResult(GeoCodeResult arg0) { } //获取反向解析结果时执行函数 @Override public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) { if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) { // 没有检测到结果 Toast.makeText(LocationActivity.this, "抱歉,未能找到结果!", Toast.LENGTH_LONG); }else{////得到结果后处理方法 Toast.makeText(LocationActivity.this, "地址为:"+result.getAddress(), Toast.LENGTH_LONG); } } });
运行时报错:you have not supplyed the global app context info from SDKInitializer.initialize(Context) function.
需要通过编写自己的Application类,如叫MyApplication,继承自系统的Application类,在其onCreate函数中添加语句SDKInitializer.initialize(this);
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); SDKInitializer.initialize(this); } }
参考文档:
http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/1025v4.1.1/index.html http://blog.csdn.net/crazy1235/article/details/43377545
相关文章推荐
- Android百度地图将经纬度转换为地址信息
- 如何通过百度地图将经纬度转换为地址信息
- 如何通过百度地图将经纬度转换为地址信息
- 百度地图5之根据经纬度查询地址信息(Android) .
- 百度地图通过经纬度获取地址信息
- 利用HTML5定位功能获取经纬度,在根据经纬度利用百度地图获取位置信息
- 百度地图根据省市县定位,经纬度和地址信息互相转化JS示例
- 利用百度地图采集大量某一区域经纬度信息
- 利用百度地图Geocoding API获取特定地区或地址的经纬度信息
- 利用cellID获取经纬度,地址信息
- 利用百度地图api通过城市地址等信息取经纬度
- 利用百度地图开源sdk获取地址信息。
- 百度地图 获取地址转换为经纬度
- 简简单单做地图-地址信息和经纬度坐标之间的转换
- Web项目实现通过经纬度获取城市信息---利用百度地图
- Android 学习意外第五季<2>——google GPS定位由经纬度转换地址信息
- 百度地图之地址信息和坐标的转换
- 利用google map获取特定地区或地址的经纬度信息
- 百度地图之根据经纬度信息获取地址方法
- Android 百度地图经纬度转换成地址