搜索地址功能是建立在能够通过百度地图API获取位置的基础上

通过百度地图定位获取位置详情:http://www.cnblogs.com/zzw1994/p/5008134.html

  1. package com.zzw.baidumappoint;
  2.  
  3. import com.baidu.location.BDLocation;
  4. import com.baidu.location.BDLocationListener;
  5. import com.baidu.location.LocationClient;
  6. import com.baidu.location.LocationClientOption;
  7. import com.baidu.mapapi.SDKInitializer;
  8. import com.baidu.mapapi.map.BaiduMap;
  9. import com.baidu.mapapi.map.MapStatusUpdate;
  10. import com.baidu.mapapi.map.MapStatusUpdateFactory;
  11. import com.baidu.mapapi.map.MapView;
  12. import com.baidu.mapapi.map.MyLocationData;
  13. import com.baidu.mapapi.model.LatLng;
  14. import com.baidu.mapapi.search.geocode.GeoCodeOption;
  15. import com.baidu.mapapi.search.geocode.GeoCodeResult;
  16. import com.baidu.mapapi.search.geocode.GeoCoder;
  17. import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
  18. import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
  19.  
  20. import android.app.Activity;
  21. import android.os.Bundle;
  22. import android.view.View;
  23. import android.view.View.OnClickListener;
  24. import android.widget.EditText;
  25. import android.widget.Toast;
  26.  
  27. public class MainActivity extends Activity {
  28.  
  29. private LocationClient mLocationClient;
  30. private BaiduMap mBaiduMap;
  31. private GeoCoder mGeoCoder;
  32.  
  33. @Override
  34. protected void onCreate(Bundle savedInstanceState) {
  35. super.onCreate(savedInstanceState);
  36. SDKInitializer.initialize(getApplicationContext());// 使程序不崩溃的作用
  37. setContentView(R.layout.activity_main);
  38.  
  39. final EditText city_edit = (EditText) findViewById(R.id.city);
  40. final EditText addr_edit = (EditText) findViewById(R.id.addr);
  41. // 获取LocationClient
  42. mLocationClient = new LocationClient(this);
  43.  
  44. // 获得GeoCoder
  45. mGeoCoder = GeoCoder.newInstance();
  46. mGeoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
  47.  
  48. @Override
  49. public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
  50.  
  51. }
  52.  
  53. @Override
  54. public void onGetGeoCodeResult(GeoCodeResult result) {
  55. try{
  56. LatLng ll = result.getLocation();
  57. // 只是完成了定位
  58. MyLocationData locData = new MyLocationData.Builder().latitude(ll.latitude).longitude(ll.longitude)
  59. .build();
  60.  
  61. // 设置图标在地图上的位置
  62. mBaiduMap.setMyLocationData(locData);
  63.  
  64. // 开始移动百度地图的定位地点到中心位置
  65. MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);
  66. mBaiduMap.animateMapStatus(u);
  67. }catch(Exception e){
  68. Toast.makeText(getApplicationContext(), "请检查地址", 0).show();
  69. }
  70. }
  71. });
  72.  
  73. findViewById(R.id.GO).setOnClickListener(new OnClickListener() {
  74.  
  75. @Override
  76. public void onClick(View v) {
  77. try {
  78. String city = city_edit.getText() + "";
  79. String addr = addr_edit.getText() + "";
  80. city_edit.setText("");
  81. addr_edit.setText("");
  82. mGeoCoder.geocode(new GeoCodeOption().city(city.trim()).address(addr.trim()));
  83. } catch (Exception e) {
  84.  
  85. }
  86.  
  87. }
  88. });
  89. LocationClientOption option = new LocationClientOption();
  90. option.setCoorType("bd09ll");
  91. mLocationClient.setLocOption(option);
  92.  
  93. // 获取BaiduMap
  94. MapView mapView = (MapView) findViewById(R.id.mapView);
  95. mBaiduMap = mapView.getMap();
  96.  
  97. // 显示出当前位置的小图标
  98. mBaiduMap.setMyLocationEnabled(true);
  99.  
  100. MyLocationListener mListener = new MyLocationListener();
  101. mLocationClient.registerLocationListener(mListener);
  102. mLocationClient.start();
  103. }
  104.  
  105. @Override
  106. protected void onDestroy() {
  107. mLocationClient.stop();
  108. super.onDestroy();
  109. }
  110.  
  111. private class MyLocationListener implements BDLocationListener {
  112.  
  113. @Override
  114. public void onReceiveLocation(BDLocation location) {
  115.  
  116. // 只是完成了定位
  117. MyLocationData locData = new MyLocationData.Builder().latitude(location.getLatitude())
  118. .longitude(location.getLongitude()).build();
  119.  
  120. // 设置图标在地图上的位置
  121. mBaiduMap.setMyLocationData(locData);
  122.  
  123. // 开始移动百度地图的定位地点到中心位置
  124. LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());
  125. MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);
  126. mBaiduMap.animateMapStatus(u);
  127. }
  128.  
  129. }
  130.  
  131. }

通过百度地图API实现搜索地址--第三方开源--百度地图(三)的更多相关文章

  1. QQ地图api里的 地址解析函数 看不懂 javascript_百度知道

    QQ地图api里的 地址解析函数 看不懂 javascript_百度知道     QQ地图api里的 地址解析函数 看不懂 javascript    2011-09-18 12:18     匿名 ...

  2. 百度地图API地点搜索-获取经纬度

    分享一下地图上的地点搜索和鼠标点击获取地点经纬度,这些都是地图比较基本和实用的代码,其中还包括了根据用户IP进行地图的显示.改变地图上的鼠标样式.启用滚轮缩放等,算是半入门吧,其他的一些可以自己参考百 ...

  3. 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

    原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快来看此文吧! ---------------------------- ...

  4. PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例

    原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html&g ...

  5. 【百度地图API】关于如何进行城市切换的三种方式

    原文:[百度地图API]关于如何进行城市切换的三种方式 摘要:本文介绍了三种切换城市的方式:查询城市.城市列表和显示城市轮廓. ------------------------------------ ...

  6. 使用百度地图API自动获取地址和经纬度

    先上效果图,这是直接点击获取经纬度和地址的.没有做搜索的功能. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...

  7. 通过百度地图API定位--第三方开源--百度地图(一)

    1.把百度地图定位API(下载地址:http://lbsyun.baidu.com/sdk/download?selected=location)里面的libs复制到自己的项目libs里面 2.进行相 ...

  8. 用百度地图API打造方便自己使用的手机地图

    有钱人咱就不说了,因为偶是个穷银--因为穷,所以去年买的Huawei C8650+到现在还在上岗,对于没有钱买好的配置的手机的童鞋来说,类似于百度,谷歌,高德等商家的地图在自己的机器上跑起来确实是有点 ...

  9. 百度地图API示例之根据城市名设置地图中心点

    代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" con ...

随机推荐

  1. HttpSolrServer-采用静态工厂方法,创建HttpSolrServer单实例

    HttpSolrServer线程安全,如果使用下面构造器,必须对所有的请求重用相同的实例.如果实例在运行中创建的,它可能会导致连接泄漏.推荐的做法就是保持每个solr服务url的HttpSolrSer ...

  2. XACML-条件评估(Condition evaluation),规则评估(Rule evaluation),策略评估(Policy evaluation),策略集评估(PolicySet evaluation)

    本文由@呆代待殆原创,转载请注明出处. 一.条件评估(Condition evaluation) <Condition>元素缺失时或评估结果为真时,条件值为True. <Condit ...

  3. iis8 默认不支持svc解决方法

    最近在IIS8中发布WCF服务应用时,发现IIS8不支持WCF服务svc请求,后来发现IIS8缺少对WCF服务的Managed Handler,按照以下步骤添加后,IIS8即支持WCF服务. 1. 首 ...

  4. linux_过程问题记录

    常见问题1:-bash: rz: command not found 解决: 安装lrzsz: 解决命令:yum -y install lrzsz 常见问题2:linux 解压乱码 解决11.到htt ...

  5. Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    执行远程shell,启动远程机器的tomat时遇到次错误.后来发现原来是远程机器的.profile被人改掉了! 在.profile里加入 export JAVA_HOME=/home/evans/jd ...

  6. nginx 代理服务器 502错误

    在centos系统下,nginx做代理服务器总是出现502错误,百度各种搜索,出来的答案基本都是一样的,也不知道大家 从哪抄的,问题也没有解决,最后还是从谷歌找到的答案: 总归还是centos系统的问 ...

  7. HDU 1257 最少拦截系统 (DP || 贪心)

    最少拦截系统 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  8. 设置input(radio,checkbox)和lable对齐的问题

    在做页面的时候几次遇到label和前面的小图标无法对齐的情况,后来发现解决方法不过是 label { display:inline-block; vertical-align:top; line-he ...

  9. JS内存泄露常见原因

    详细内容请点击 分享的笔记本-前端 开发中,我们常遇见的一些关于js内存泄露的问题,有时候我们常常会找半天找不出原因,这里给大家介绍简单便捷的方法 1.闭包上下文绑定后没有释放:   2.观察者模式在 ...

  10. 【Mongodb】---Scheme和Collections对应问题

    Mongodb通过mongoose来与数据进行操作.而mongoose是通过model来创建数据库中对应的collection mongoose.model('User', UserSchema); ...