百度地图的使用和学习2
2016-03-15 11:07
197 查看
上周由于项目赶工,时间比较紧张,周末也没有休息,在杆项目进度,所以没来得及更新,今天调休就把上周的补上。
之前是介绍了一下百度地图在android中的基础的使用,主要就是在手机中显示地图,然后可以调节地图的缩放,主要的就是关于百度地图的一个开发者的申请,百度地图API key的申请以及将百度地图sdk加载到项目中,并且通过配置参数后再我们的项目中成功的显示地图。那关于地图的功能,现在应用的也是非常的多的,比如现在比较火热的订餐app,大多都会用到定位用户位置的功能,这一个功能的实现以后能够把用户附近附近的加盟商户搜索出来并显示给用户,用户可以根据自己的喜好进行选择。那接下来我们就来对地图定位这一功能进行一个了解和学习。
首先是关于百度地图sdk的选择,之前我们下载的sdk是不包含定位功能的,所以大家在选择sdk下载的时候一定要把定位功能给勾上。如下图:
下载完后就可以运用到我们的项目当中啦,配置和前面讲的一样,然后就是对于定位代码的实现了,我们需要实现的一个是定位sdk的定位方式,另一个就是定位接口的实现。
这一段代码主要就是对于定位服务的申明以及定位方式的设置,这些设置好了以后就可以去实现我们注册的定位监听的接口了,这个接口主要就是获取手机所在的地理位置的经度和纬度,然后进行定位,最后显示在我们的地图上面。
接口实现的代码如下:
在接口当中,我们奖获取的位置的经度和纬度加到我们需要的参数当中,这样子我们就能够实现定位的我一个功能了,最后附上定位的图片:
图中蓝点就是定位所在的位置,我们可以发现成功的定位到了我们所在的位置,好了,这次的定位功能就写到这里了。
之前是介绍了一下百度地图在android中的基础的使用,主要就是在手机中显示地图,然后可以调节地图的缩放,主要的就是关于百度地图的一个开发者的申请,百度地图API key的申请以及将百度地图sdk加载到项目中,并且通过配置参数后再我们的项目中成功的显示地图。那关于地图的功能,现在应用的也是非常的多的,比如现在比较火热的订餐app,大多都会用到定位用户位置的功能,这一个功能的实现以后能够把用户附近附近的加盟商户搜索出来并显示给用户,用户可以根据自己的喜好进行选择。那接下来我们就来对地图定位这一功能进行一个了解和学习。
首先是关于百度地图sdk的选择,之前我们下载的sdk是不包含定位功能的,所以大家在选择sdk下载的时候一定要把定位功能给勾上。如下图:
下载完后就可以运用到我们的项目当中啦,配置和前面讲的一样,然后就是对于定位代码的实现了,我们需要实现的一个是定位sdk的定位方式,另一个就是定位接口的实现。
//实例化定位服务,LocationClient类必须在主线程中声明 mLocClient= new LocationClient(getApplicationContext()); //注册定位监听接口 mLocClient.registerLocationListener(new BDLocationListenerImpl()); /** * locationClientOption该类用来设置定位SDK的定位方式。 */ LocationClientOption option =new LocationClientOption(); option.setOpenGps(true);//打开GPS option.setAddrType("all");//返回的定位结果包含地址信息 option.setCoorType("bd0991");//返回的结果是百度的经纬度,默认值gcj02 option.setPriority(LocationClientOption.GpsFirst);//设置GPS优先 option.setScanSpan(5000);//设置发起定位请求的间隔时间为5000ms option.disableCache(false);//禁止启动缓存定位 mLocClient.setLocOption(option);//设置定位参数 mLocClient.start();//调用此方法开始定位 //定位图层初始化 myLocationOverlay=new LocationOverlay(mMapView); //实例化定位数据,并设置在我的图层 mLocData =new LocationData(); myLocationOverlay.setData(mLocData); //添加定位图层 mMapView.getOverlays().add(myLocationOverlay); //修改定位数据后刷新图层生效 mMapView.refresh();
这一段代码主要就是对于定位服务的申明以及定位方式的设置,这些设置好了以后就可以去实现我们注册的定位监听的接口了,这个接口主要就是获取手机所在的地理位置的经度和纬度,然后进行定位,最后显示在我们的地图上面。
接口实现的代码如下:
*/ public class BDLocationListenerImpl implements BDLocationListener{ @Override public void onReceiveLocation(BDLocation location) { if (location == null) { return; } mLocData.latitude = location.getLatitude(); mLocData.longitude = location.getLongitude(); //如果不显示定位精度圈,将accuracy赋值为0即可 mLocData.accuracy = location.getRadius(); mLocData.direction = location.getDerect(); //将定位数据设置到定位图层里 myLocationOverlay.setData(mLocData); //更新图层数据执行刷新后生效 mMapView.refresh(); if(isFirstLoc || isRequest){ //将给定的位置点以动画形式移动至地图中心 mMapController.animateTo(new GeoPoint( (int) (location.getLatitude() * 1e6), (int) (location .getLongitude() * 1e6))); } i }
在接口当中,我们奖获取的位置的经度和纬度加到我们需要的参数当中,这样子我们就能够实现定位的我一个功能了,最后附上定位的图片:
图中蓝点就是定位所在的位置,我们可以发现成功的定位到了我们所在的位置,好了,这次的定位功能就写到这里了。
相关文章推荐
- 斗战神 隐藏任务
- JDBC编程之事务处理
- Android HandlerThread 复习
- 安装完grunt和grunt-cli仍然无法识别grunt
- JMeter压力测试入门教程[图文]
- python实现各个排序算法【转】
- 【转载】组合式测试:移动测试服务的发展趋势
- PHP--根据手机号-淘宝平台获取归属地运营商信息
- Github——建立博客
- android 性能优化-工具篇
- hdoj 1872 稳定排序
- LeetCode:Shell题目
- JAVA一些符号符的简单了解
- php 编码问题集锦
- Java中泛型的作用
- JS的getter和setter
- 查看Data Guard同步--使用EM 12c
- Gridview
- xml数据解析
- sql时间格式化