您的位置:首页 > 移动开发 > Android开发

Android开发 关于百度地图的定位

2015-11-10 19:21 441 查看
一、将普通地图加载到界面

二、之后获取BaiduMap(利用百度空间的get方法获取)

三、获取LocationClient 对象 *上下文要写Application的上下文

四、获取LocationClientOption的对象

五、为这个对象设置参数

option.setLocationMode(LocationMode.Hight_Accuracy);// 高精度

option.setLocationMode(LocationMode.Battery_Saving);// 低功耗定位

option.setLocationMode(LocationMode.Device_Sensors);// 仅用设备

option.setCoorType("bd0911");// 坐标编码

option.setOpenGps(true);// 打开GPS

option.setScanSpan(1000);// 扫描频频率*当扫描时间小于1000毫秒时 地图不会每次扫描强行将当前位置设置为中心

option.setTimeOut(5000);// 超时时间

option.setNeedDeviceDirect(true);// 是否需要手机的方向(设备头的方向)

option.setIsNeedAddress(true);// 是否接收地址信息

六、为LocationClient注册监听

locationClient.registerLocationListener(Listener);

1)这个监听需要BDLocationListener 接口

2) 需要实现onReceiveLocation方法

3)这个方法带有一个BDLocation类型的参数(通过这个参数我们可以获得我们当前位置的经纬度坐标以及手机头方向等数据)

4)用baiduMap.setMyLocationData(data);给百BaiduMap设置定位信息 这是我们需要一个MyLocationData来打包这个信息所以应该在这之前先执行下面代码

MyLocationData data = new MyLocationData.Builder()

.latitude(result.getLatitude())// 获取维度坐标

.longitude(result.getLongitude())// 获取经度坐标

.direction(result.getDirection())// 获取手机头方向

.accuracy(result.getRadius())// 获取定位精度

.build();

5)LatLng ll = new LatLng(result.getLatitude(),

result.getLongitude());

MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);

baiduMap.animateMapStatus(update);

利用这段代码来将地图刷新使显示的位置更新到定位的位置

七、protected void onDestroy() {

super.onDestroy();

locationClient.unRegisterLocationListener(myLocationListener);

locationClient.stop();

}

最后关闭资源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: