通过百度地图API实现搜索地址--第三方开源--百度地图(三)
搜索地址功能是建立在能够通过百度地图API获取位置的基础上
通过百度地图定位获取位置详情:http://www.cnblogs.com/zzw1994/p/5008134.html
- package com.zzw.baidumappoint;
- import com.baidu.location.BDLocation;
- import com.baidu.location.BDLocationListener;
- import com.baidu.location.LocationClient;
- import com.baidu.location.LocationClientOption;
- import com.baidu.mapapi.SDKInitializer;
- import com.baidu.mapapi.map.BaiduMap;
- import com.baidu.mapapi.map.MapStatusUpdate;
- import com.baidu.mapapi.map.MapStatusUpdateFactory;
- import com.baidu.mapapi.map.MapView;
- import com.baidu.mapapi.map.MyLocationData;
- import com.baidu.mapapi.model.LatLng;
- import com.baidu.mapapi.search.geocode.GeoCodeOption;
- import com.baidu.mapapi.search.geocode.GeoCodeResult;
- import com.baidu.mapapi.search.geocode.GeoCoder;
- import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
- import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.EditText;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- private LocationClient mLocationClient;
- private BaiduMap mBaiduMap;
- private GeoCoder mGeoCoder;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- SDKInitializer.initialize(getApplicationContext());// 使程序不崩溃的作用
- setContentView(R.layout.activity_main);
- final EditText city_edit = (EditText) findViewById(R.id.city);
- final EditText addr_edit = (EditText) findViewById(R.id.addr);
- // 获取LocationClient
- mLocationClient = new LocationClient(this);
- // 获得GeoCoder
- mGeoCoder = GeoCoder.newInstance();
- mGeoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
- @Override
- public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
- }
- @Override
- public void onGetGeoCodeResult(GeoCodeResult result) {
- try{
- LatLng ll = result.getLocation();
- // 只是完成了定位
- MyLocationData locData = new MyLocationData.Builder().latitude(ll.latitude).longitude(ll.longitude)
- .build();
- // 设置图标在地图上的位置
- mBaiduMap.setMyLocationData(locData);
- // 开始移动百度地图的定位地点到中心位置
- MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);
- mBaiduMap.animateMapStatus(u);
- }catch(Exception e){
- Toast.makeText(getApplicationContext(), "请检查地址", 0).show();
- }
- }
- });
- findViewById(R.id.GO).setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- String city = city_edit.getText() + "";
- String addr = addr_edit.getText() + "";
- city_edit.setText("");
- addr_edit.setText("");
- mGeoCoder.geocode(new GeoCodeOption().city(city.trim()).address(addr.trim()));
- } catch (Exception e) {
- }
- }
- });
- LocationClientOption option = new LocationClientOption();
- option.setCoorType("bd09ll");
- mLocationClient.setLocOption(option);
- // 获取BaiduMap
- MapView mapView = (MapView) findViewById(R.id.mapView);
- mBaiduMap = mapView.getMap();
- // 显示出当前位置的小图标
- mBaiduMap.setMyLocationEnabled(true);
- MyLocationListener mListener = new MyLocationListener();
- mLocationClient.registerLocationListener(mListener);
- mLocationClient.start();
- }
- @Override
- protected void onDestroy() {
- mLocationClient.stop();
- super.onDestroy();
- }
- private class MyLocationListener implements BDLocationListener {
- @Override
- public void onReceiveLocation(BDLocation location) {
- // 只是完成了定位
- MyLocationData locData = new MyLocationData.Builder().latitude(location.getLatitude())
- .longitude(location.getLongitude()).build();
- // 设置图标在地图上的位置
- mBaiduMap.setMyLocationData(locData);
- // 开始移动百度地图的定位地点到中心位置
- LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());
- MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);
- mBaiduMap.animateMapStatus(u);
- }
- }
- }
通过百度地图API实现搜索地址--第三方开源--百度地图(三)的更多相关文章
- QQ地图api里的 地址解析函数 看不懂 javascript_百度知道
QQ地图api里的 地址解析函数 看不懂 javascript_百度知道 QQ地图api里的 地址解析函数 看不懂 javascript 2011-09-18 12:18 匿名 ...
- 百度地图API地点搜索-获取经纬度
分享一下地图上的地点搜索和鼠标点击获取地点经纬度,这些都是地图比较基本和实用的代码,其中还包括了根据用户IP进行地图的显示.改变地图上的鼠标样式.启用滚轮缩放等,算是半入门吧,其他的一些可以自己参考百 ...
- 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈
原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快来看此文吧! ---------------------------- ...
- PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例
原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html&g ...
- 【百度地图API】关于如何进行城市切换的三种方式
原文:[百度地图API]关于如何进行城市切换的三种方式 摘要:本文介绍了三种切换城市的方式:查询城市.城市列表和显示城市轮廓. ------------------------------------ ...
- 使用百度地图API自动获取地址和经纬度
先上效果图,这是直接点击获取经纬度和地址的.没有做搜索的功能. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- 通过百度地图API定位--第三方开源--百度地图(一)
1.把百度地图定位API(下载地址:http://lbsyun.baidu.com/sdk/download?selected=location)里面的libs复制到自己的项目libs里面 2.进行相 ...
- 用百度地图API打造方便自己使用的手机地图
有钱人咱就不说了,因为偶是个穷银--因为穷,所以去年买的Huawei C8650+到现在还在上岗,对于没有钱买好的配置的手机的童鞋来说,类似于百度,谷歌,高德等商家的地图在自己的机器上跑起来确实是有点 ...
- 百度地图API示例之根据城市名设置地图中心点
代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" con ...
随机推荐
- HttpSolrServer-采用静态工厂方法,创建HttpSolrServer单实例
HttpSolrServer线程安全,如果使用下面构造器,必须对所有的请求重用相同的实例.如果实例在运行中创建的,它可能会导致连接泄漏.推荐的做法就是保持每个solr服务url的HttpSolrSer ...
- XACML-条件评估(Condition evaluation),规则评估(Rule evaluation),策略评估(Policy evaluation),策略集评估(PolicySet evaluation)
本文由@呆代待殆原创,转载请注明出处. 一.条件评估(Condition evaluation) <Condition>元素缺失时或评估结果为真时,条件值为True. <Condit ...
- iis8 默认不支持svc解决方法
最近在IIS8中发布WCF服务应用时,发现IIS8不支持WCF服务svc请求,后来发现IIS8缺少对WCF服务的Managed Handler,按照以下步骤添加后,IIS8即支持WCF服务. 1. 首 ...
- linux_过程问题记录
常见问题1:-bash: rz: command not found 解决: 安装lrzsz: 解决命令:yum -y install lrzsz 常见问题2:linux 解压乱码 解决11.到htt ...
- Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
执行远程shell,启动远程机器的tomat时遇到次错误.后来发现原来是远程机器的.profile被人改掉了! 在.profile里加入 export JAVA_HOME=/home/evans/jd ...
- nginx 代理服务器 502错误
在centos系统下,nginx做代理服务器总是出现502错误,百度各种搜索,出来的答案基本都是一样的,也不知道大家 从哪抄的,问题也没有解决,最后还是从谷歌找到的答案: 总归还是centos系统的问 ...
- HDU 1257 最少拦截系统 (DP || 贪心)
最少拦截系统 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- 设置input(radio,checkbox)和lable对齐的问题
在做页面的时候几次遇到label和前面的小图标无法对齐的情况,后来发现解决方法不过是 label { display:inline-block; vertical-align:top; line-he ...
- JS内存泄露常见原因
详细内容请点击 分享的笔记本-前端 开发中,我们常遇见的一些关于js内存泄露的问题,有时候我们常常会找半天找不出原因,这里给大家介绍简单便捷的方法 1.闭包上下文绑定后没有释放: 2.观察者模式在 ...
- 【Mongodb】---Scheme和Collections对应问题
Mongodb通过mongoose来与数据进行操作.而mongoose是通过model来创建数据库中对应的collection mongoose.model('User', UserSchema); ...