百度定位SDK的使用示例
本文基于最新的百度地图定位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的使用示例相关推荐
- android开发游记:集成百度定位SDK进行实时定位 获取当前城市地理信息
定位功能在app开发中很常用,大多数企业都是不具备定位资质的,所有一般是通过接入第三方的sdk来进行定位,比较熟悉的有如:百度.高德.谷歌.腾讯等.而国内比较地图策划比较成熟的主要是百度和高德,这里就 ...
- 百度定位SDK实现获取当前经纬度及位置
使用Android自带的LocationManager和Location获取位置的时候,经常会有获取的location为null的情况,并且操作起来也不是很方便,在这个Demo里我使用了百度地图API ...
- android 百度定位 封装,百度定位SDK使用V4.0
前言:最近在做一个应用,要用到LBS定位,本想自己写,可技术还是不到位,而且时间也不多了,还是以先实现为主吧,然后就研究百度的LBS定位,谷歌的也有LBS定位服务,但总感觉谷歌大神被赶到香港以后,就一 ...
- 百度定位实时获取位置android,通过百度定位sdk获取实时位置
之前有一片关于基站定位的文章,当时的测试环境是小米+移动,比较顺利. 但在实际运用中就出现问题了-联通和电信的号完全没办法定位! 最好的解决方法就是用第三方sdk来定位了. 百度的定位sdk还是很不错 ...
- 百度定位SDK 申请密钥步骤
原文地址:http://developer.baidu.com/map/wiki/index.php?title=android-locsdk/guide/key#.E7.99.BB.E5.BD.95 ...
- 百度定位SDK无法定位
最近的项目中,有使用到百度定位SDK,在自己的debug环境安装apk,手机可以进行定位.但是发布release版本后安装,手机却无法定位.后面找到问题是百度配置的秘钥不对. 百度地图SDK在申请秘钥 ...
- 百度定位sdk的api使用时获取地址信息为null的原因
我的情况是这样的 清单文件中加了service 加了key的值 在activity的主线程中使用了百度定位SDK的api 截图如下 写了一个类继承了BDAbstractLocationListen ...
- IOS接入百度地图SDK,百度定位SDK记录
地图显示 Xcode新建一个项目,我取名叫BaiduMapIOSAgain,包名为com.unity.BaiduMapIOSAgain. 在百度SDK的控制台创建应用,过程略,跟着官方说明即可 首先先 ...
- 解决集成百度定位SDK获取不到定位信息的问题
我们很多场景都需要获取用户的定位信息,包括使用友盟统计,其实也会根据设备的定位信息来分析用户的使用行为. 1)集成百度推送,需要打开百度开发文档,并且注册账户. 2)根据开发文档下载基础定位的SDK. ...
最新文章
- UI设计学习的对比原则怎么运用?
- 揭秘人工智能(系列):深度学习是否过分夸大?
- 如何从字符串中删除文本?
- 2021-08-27 思考:1000瓶药水,1瓶有毒,老鼠毒发24h,如何用最少的老鼠在24h内找出毒药?
- 记-python中socket服务器设置中的setsockopt
- Jenkins忘记密码的修复方法(Windows/Linux)
- java面试题40 当编译并运行下面程序时会发生什么结果()
- 安装了虚拟机后mysql用不了_在虚拟机上安装mysql,安装好了并且初始化之后,一直无法启动mysql如何解决?...
- DDoS booter滥用 DTLS 服务器放大攻击
- 这台计算机上缺少此项目引用的 NuGet 程序包,DotNetCompilerPlatform
- idea快捷键,可摆脱鼠标
- Matlab中clc;clear;clear all;clf;close;close all作用
- JBE与JLE的区别
- 《全球互联网金融商业模式:格局与发展》——第3章,第2节互联网保险经纪/代理公司...
- 微信小程序~textarea字数限制与计算
- 瑞德西韦成为首个获美国FDA批准新冠药物;蚂蚁集团与马来西亚最大货币服务运营商之一建立合作伙伴关系 | 美通企业日报...
- neo4j-OGM 动态cypher java查询
- java两map取交集_Java Map 求交集 并集 差集
- 惠普envy x360 15 MAC安装
- 《C++ Concurrencyin Action》第4章--同步并发操作