百度定位SDK的使用示例
2016-09-25 09:46
337 查看
本文基于最新的百度地图定位SDK(V4.0 版本)使用的定位Demo
使用百度地图SDK进行实时定位的主要有6步:
使用百度地图SDK进行实时定位的主要有6步:
// 启用定位 mBaiduMap.setMyLocationEnabled(true); // 1. 初始化LocationClient类 mLocationClient = new LocationClient(getApplicationContext()); // 2. 声明LocationListener类(负责监听位置变化) locationListener = new MyLocationListener(); // 3. 注册监听函数 mLocationClient.registerLocationListener(locationListener); // 4. 设置参数 LocationClientOption clientOption = new LocationClientOption(); clientOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);// 设置定位模式 clientOption.setCoorType("bd09ll"); // 设置定位结果类型 clientOption.setScanSpan(5000); // 设置发起定位请求的时间间隔,ms clientOption.setIsNeedAddress(true); // 设置返回的定位结果包含地址信息 clientOption.setNeedDeviceDirect(true);// 设置返回结果包含手机的方向 // 5. 应用上面的参数 mLocationClient.setLocOption(clientOption); // 6. 注册位置提醒监听事件 // 7. 开启/关闭 定位SDK mLocationClient.start(); mLocationClient.stop(); 为了实时监听我们位置的变化,我们需要实现BDLocationListener类,获得系统实时的位置信息,并重载onReceiveLocation方法返回位置结果 class MyLocationListener implements BDLocationListener { // 异步返回的定位结果 @Override public void onReceiveLocation(BDLocation bdLocation) { if (bdLocation == null) { return; } locType = bdLocation.getLocType(); Toast.makeText(MainActivity.this, "当前定位的返回值是:" + locType, Toast.LENGTH_SHORT).show(); longitude = bdLocation.getLongitude(); latitude = bdLocation.getLatitude(); if (bdLocation.hasRadius()) {// 判断是否有定位精度半径 radius = bdLocation.getRadius(); } if (locType == BDLocation.TypeGpsLocation) {// Toast.makeText(MainActivity.this, "当前速度是:" + bdLocation.getSpeed() + "定位使用卫星数量:" + bdLocation.getSatelliteNumber(), Toast.LENGTH_SHORT).show(); } else if (locType == BDLocation.TypeNetWorkLocation) { addrStr = bdLocation.getAddrStr();// 获取反地理编码(文字描述的地址) Toast.makeText(MainActivity.this, addrStr, Toast.LENGTH_SHORT).show(); } direction = bdLocation.getDirection();// 获取手机方向,【0~360°】,手机上面正面朝北为0° province = bdLocation.getProvince(); // 省份 city = bdLocation.getCity(); // 城市 district = bdLocation.getDistrict(); // 区县 Toast.makeText(MainActivity.this, province + "~" + city + "~" + district, Toast.LENGTH_SHORT).show(); // 构造定位数据 MyLocationData locData = new MyLocationData.Builder() .accuracy(radius) // 定位精度半径 .direction(direction) // 方向 .latitude(latitude) // 纬度 .longitude(longitude) // 精度 .build(); // 设置定位数据 mBaiduMap.setMyLocationData(locData); LatLng ll = new LatLng(latitude, longitude); MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(ll); mBaiduMap.animateMapStatus(msu); } }
相关文章推荐
- Android使用百度定位SDK 方法及错误处理
- Android使用GSP和百度SDK定位
- 百度定位SDK使用
- 使用百度sdk定位相关参数设定
- 百度地图SDK和百度定位SDK的使用(笔记)
- android中使用百度定位sdk实时的计算移动距离
- 百度Android 定位SDK 的使用及错误
- 使用百度sdk简单定位
- 使用百度SDK进行定位完整Demo
- 使用百度sdk定位需要注意的事项
- 利用百度地图API定位为什么使用百度自己开发的locSDK2.6.jar包
- 百度定位SDK使用V4.0
- Android开发百度SDK的使用--定位图层的使用
- android中使用百度定位sdk实时的计算移动距离
- 百度定位SDK使用V4.0
- Android使用百度定位SDK方法及错误处理
- 使用百度定位SDK步骤
- Android应用程序实现定位功能(使用百度定位SDK)
- 【代码】Android 使用百度定位SDK 方法及处理错误
- 使用百度定位sdk,在text中显示当前位置信息