安卓之特色服务——定位

需求:完成一些基本的地图操作
操作一:显示当前纬度,精度,和能看懂的位置信息
步骤:
1)配置一些必备的文件和导入该有的包

 

2)获取LocationClient对象,传入context变量
3)给LocationClient绑定监听器,该监听器用于当返回具体的数据之后,会进行自动调用
4)写好监听器
5)启动LocationClient的start方法,从而请求定位功能
注意:这边涉及到几个危险权限,所以需要动态申请,且因为是多个,所以使用到集合,进行多个危险权限的同时申请

 

 

操作二:完成进行定时重复请求定位功能
步骤:
1)获取LocationClientOption对象
2)设置好间隔时间
3)将其绑定在LocationClient中
4)重写onDestroy(),并在内部写好mLocationClient.stop()方法,因为如果没有调用这个方法
,那么其会在后台一直请求定位,大量的耗电。
注意:如果没有设置1)对象,那么当LocationClient调用了start方法之后,只会请求一次定位功能,
并不会像这边如果没关闭,就会大量的耗电。

 

 

操作三:选择定位模式
1)获取LocationClientOption对象
2)调用该对象的setLocationMode()方法设置定位模式

 

 

操作四:让地图显示出来
1)写好Mapview控件,注意,这个是百度提供的自定义控件,需要将完整的包名加上。
2)调用SDKInitializer的initialize()方法,并且传入context来进行初始化操作。注意:其要在setContentView()方法之间进行调用,不然会出错。
3)获取mapview实例
4)重写onResume(),onPause(),onDestroy()方法进行对mapview管理

 

 

接下来的这两个操作其实都是对baidumap进行操作

操作五:移动到我的位置
1)利用mapview得到BaiduMap对象
2)获取LatLng对象,传入纬度和经度
3)设置好属性,从而获取MapStatusUpdate对象,然后baidumap对象调用animateMapStatus(),并且传入
设置好更新属性的MapStatusUpdata对象

 

 

 

操作六:让我显示在地图上(小红点)
1)调用baidumap的setMyLocationEnabled(true)
2)获取MyLocationData.Builder对象并传入经纬度
3)调用MyLocationData.Builder的build()方法从而获取MyLocationData对象
4)调用baidumap.setMyLocationData()方法,并且传入MylocationData变量
5)在onDestroy中,使得baidumap的setMyLocationEnabled(false)

posted @ 2017-09-28 20:16  鹏达君  阅读(150)  评论(0编辑  收藏  举报