搜索地址功能是建立在能够通过百度地图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. 1.5.7 CharFilterFactories

    CharFilterFactories 字符过滤器是一个预处理输入字符的组件,字符过滤器可以链接如token过滤器,并放置在Tokenizer(分词器)的前面,字符过滤器可以添加,更改或删除字符,同时 ...

  2. 使用 mina 传输大字节数组

    转载自:http://seara520.blog.163.com/blog/static/16812769820103214817781/ 使用mina传输超过2k以上的数据时(采用tcp方式,如果是 ...

  3. struts2 零配置

    一.新建一个web项目,命名为:struts2 二.导入strut2所需的jar包 所需jar下载:http://pan.baidu.com/s/1dDxP4Z3 三.配置struts2的启动文件,在 ...

  4. linux服务监控脚本

    配置需要监控的服务器 数组定义:host_ports=(host_name=host_port=uri_path)host_name为容易识别的服务器名称host_port为服务器ip和服务端口uri ...

  5. 使用JSON进行数据传输的总结

    一.选择的意义 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.为了更好的使用ajax, 我们将学习一种有用的数据格式 JavaScript Object Notation ...

  6. http错误码大全

    响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行.响应码分五种类型,由它们的第一位数字表示:1.1xx:信息,请求收到,继续处理2.2xx:成功,行为被成功地接受.理解和采纳3 ...

  7. php的一些简单算法程序(冒泡、快速等)

    冒泡排序: function buttle_sort($array) { $len=count($array); if($len<2){ return $array; } for($i=0;$i ...

  8. 服务器调用JS

    服务器控件调用JS一.两类JS的触发设计1.提交之前的JS -- 加js的事件例:<script language="javascript"> // 构造函数 func ...

  9. Matlab之文件操作

    1.判断是否存在文件夹:if (exist(folderName,'dir')) 2.创建文件夹:mkdir(folderName) 3.删除文件夹:rmdir(folderName,'s') 4.当 ...

  10. Socket 两平台互相 通信 .NET

    两个平台互相通信,对方发送数据过来,我方接收数据,对数据进行处理后发送结果给对方,对方进行相应的操作. 首页,我方开启服务监听: Socket socket = new Socket(AddressF ...