本文基于最新的百度地图定位SDK(V4.0 版本)使用的定位Demo

使用百度地图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);
}
}

  

转载于:https://www.cnblogs.com/hot-destiny/p/5904976.html

百度定位SDK的使用示例相关推荐

  1. android开发游记:集成百度定位SDK进行实时定位 获取当前城市地理信息

    定位功能在app开发中很常用,大多数企业都是不具备定位资质的,所有一般是通过接入第三方的sdk来进行定位,比较熟悉的有如:百度.高德.谷歌.腾讯等.而国内比较地图策划比较成熟的主要是百度和高德,这里就 ...

  2. 百度定位SDK实现获取当前经纬度及位置

    使用Android自带的LocationManager和Location获取位置的时候,经常会有获取的location为null的情况,并且操作起来也不是很方便,在这个Demo里我使用了百度地图API ...

  3. android 百度定位 封装,百度定位SDK使用V4.0

    前言:最近在做一个应用,要用到LBS定位,本想自己写,可技术还是不到位,而且时间也不多了,还是以先实现为主吧,然后就研究百度的LBS定位,谷歌的也有LBS定位服务,但总感觉谷歌大神被赶到香港以后,就一 ...

  4. 百度定位实时获取位置android,通过百度定位sdk获取实时位置

    之前有一片关于基站定位的文章,当时的测试环境是小米+移动,比较顺利. 但在实际运用中就出现问题了-联通和电信的号完全没办法定位! 最好的解决方法就是用第三方sdk来定位了. 百度的定位sdk还是很不错 ...

  5. 百度定位SDK 申请密钥步骤

    原文地址:http://developer.baidu.com/map/wiki/index.php?title=android-locsdk/guide/key#.E7.99.BB.E5.BD.95 ...

  6. 百度定位SDK无法定位

    最近的项目中,有使用到百度定位SDK,在自己的debug环境安装apk,手机可以进行定位.但是发布release版本后安装,手机却无法定位.后面找到问题是百度配置的秘钥不对. 百度地图SDK在申请秘钥 ...

  7. 百度定位sdk的api使用时获取地址信息为null的原因

    我的情况是这样的  清单文件中加了service 加了key的值 在activity的主线程中使用了百度定位SDK的api 截图如下  写了一个类继承了BDAbstractLocationListen ...

  8. IOS接入百度地图SDK,百度定位SDK记录

    地图显示 Xcode新建一个项目,我取名叫BaiduMapIOSAgain,包名为com.unity.BaiduMapIOSAgain. 在百度SDK的控制台创建应用,过程略,跟着官方说明即可 首先先 ...

  9. 解决集成百度定位SDK获取不到定位信息的问题

    我们很多场景都需要获取用户的定位信息,包括使用友盟统计,其实也会根据设备的定位信息来分析用户的使用行为. 1)集成百度推送,需要打开百度开发文档,并且注册账户. 2)根据开发文档下载基础定位的SDK. ...

最新文章

  1. UI设计学习的对比原则怎么运用?
  2. 揭秘人工智能(系列):深度学习是否过分夸大?
  3. 如何从字符串中删除文本?
  4. 2021-08-27 思考:1000瓶药水,1瓶有毒,老鼠毒发24h,如何用最少的老鼠在24h内找出毒药?
  5. 记-python中socket服务器设置中的setsockopt
  6. Jenkins忘记密码的修复方法(Windows/Linux)
  7. java面试题40 当编译并运行下面程序时会发生什么结果()
  8. 安装了虚拟机后mysql用不了_在虚拟机上安装mysql,安装好了并且初始化之后,一直无法启动mysql如何解决?...
  9. DDoS booter滥用 DTLS 服务器放大攻击
  10. 这台计算机上缺少此项目引用的 NuGet 程序包,DotNetCompilerPlatform
  11. idea快捷键,可摆脱鼠标
  12. Matlab中clc;clear;clear all;clf;close;close all作用
  13. JBE与JLE的区别
  14. 《全球互联网金融商业模式:格局与发展》——第3章,第2节互联网保险经纪/代理公司...
  15. 微信小程序~textarea字数限制与计算
  16. 瑞德西韦成为首个获美国FDA批准新冠药物;蚂蚁集团与马来西亚最大货币服务运营商之一建立合作伙伴关系 | 美通企业日报...
  17. neo4j-OGM 动态cypher java查询
  18. java两map取交集_Java Map 求交集 并集 差集
  19. 惠普envy x360 15 MAC安装
  20. 《C++ Concurrencyin Action》第4章--同步并发操作

热门文章

  1. 表达式树amp;amp;无根树转化为有根树
  2. java中insert函数
  3. Python基础07 函数
  4. Power of Two
  5. medianBlur函数
  6. 【中文模板】Latex如何写中文文档
  7. 从Vuex的Actions中理解JavaScript的解构赋值
  8. BZOJ3336: Uva10572 Black and White(插头Dp)
  9. mac phpstorm 2018 激活码
  10. RSA的密钥把JAVA格式转换成C#的格式