高德地图(实时获取定位)
获取定位数据
第 1 步,配置AndroidManifest.xml
声明Service组件
在application标签中声明service组件,每个app拥有自己单独的定位service。
<service android:name="com.amap.api.location.APSService"></service>
然后,声明权限
(6.0以上)
<!--用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><
!--用于写入缓存数据到扩展存储卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!--用于申请获取蓝牙信息进行室内定位-->
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
最后,设置高德Key
在application标签中加入:
<meta-data android:name="com.amap.api.v2.apikey" android:value="key">//开发者申请的key
</meta-data>
第 2 步,初始化定位
请在主线程中声明AMapLocationClient类对象,需要传Context类型的参数。推荐用getApplicationContext()方法获取全进程有效的context。
//声明AMapLocationClient类对象
public AMapLocationClient mLocationClient = null;
//声明定位回调监听器public AMapLocationListener mLocationListener = new AMapLocationListener();
//初始化定位
mLocationClient = new AMapLocationClient(getApplicationContext());
//设置定位回调监听
mLocationClient.setLocationListener(mLocationListener);
//声明AMapLocationClient类对象public AMapLocationClient mLocationClient = null;//声明定位回调监听器public AMapLocationListener mLocationListener = new AMapLocationListener();//初始化定位mLocationClient = new AMapLocationClient(getApplicationContext());//设置定位回调监听mLocationClient.setLocationListener(mLocationListener);
第 3 步,配置参数并启动定位
创建AMapLocationClientOption对象
AMapLocationClientOption对象用来设置发起定位的模式和相关参数。
//声明AMapLocationClient类对象
public AMapLocationClient mLocationClient = null;
//声明定位回调监听器
public AMapLocationListener mLocationListener = new AMapLocationListener();
//初始化定位
mLocationClient = new AMapLocationClient(getApplicationContext());
//设置定位回调监听
mLocationClient.setLocationListener(mLocationListener);
//声明AMapLocationClientOption对象
public AMapLocationClientOption mLocationOption = null;
//初始化AMapLocationClientOption对象
mLocationOption = new AMapLocationClientOption();
选择定位场景
说明:该部分功能从定位SDK v3.7.0开始提供。如果开发者选择了对应的定位场景,
那么则不用自行设置AMapLocationClientOption中的其他参数,SDK会根据选择的场景自行定制option参数的值,
当然开发者也可以在基础上进行自行设置。实际按最后一次设置的参数值生效。
//声明AMapLocationClient类对象
public AMapLocationClient mLocationClient = null;
//声明定位回调监听器
public AMapLocationListener mLocationListener = new AMapLocationListener();
//初始化定位
mLocationClient = new AMapLocationClient(getApplicationContext());
//设置定位回调监听
mLocationClient.setLocationListener(mLocationListener);
AMapLocationClientOption option = new AMapLocationClientOption();
/** * 设置定位场景,目前支持三种场景(签到、出行、运动,默认无场景) */
// option.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn);
// option.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn);
if(null != mLocationClient){mLocationClient.setLocationOption(option);//设置场景模式后最好调用一次stop,再调用start以保证场景模式生效mLocationClient.stopLocation();mLocationClient.startLocation();
}
选择定位模式
高德定位服务包含GPS和网络定位(Wi-Fi和基站定位)两种能力。定位SDK将GPS、网络定位能力进行了封装,
以三种定位模式对外开放,SDK默认选择使用高精度定位模式。
高精度定位模式:会同时使用网络定位和GPS定位,优先返回最高精度的定位结果,以及对应的地址描述信息
//设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//设置定位模式为AMapLocationMode.Battery_Saving,低功耗模式。mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);//设置定位模式为AMapLocationMode.Device_Sensors,仅设备模式。mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Device_Sensors);//获取一次定位结果:
//该方法默认为false。mLocationOption.setOnceLocation(true);
//获取最近3s内精度最高的一次定位结果:
//设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。mLocationOption.setOnceLocationLatest(true);//设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。mLocationOption.setInterval(1000);//设置是否返回地址信息(默认返回地址信息)mLocationOption.setNeedAddress(true);//关闭缓存机制mLocationOption.setLocationCacheEnable(true);//给定位客户端对象设置定位参数mLocationClient.setLocationOption(mLocationOption);
//启动定位mLocationClient.startLocation();
//结束!!Over 么么哒!!!!!1
高德地图(实时获取定位)相关推荐
- android使用高德地图SDK获取定位信息
注册账号.创建应用.获取API KEY等这些就不说了,按照官网来就行,我们来讲讲项目的配置及示例代码. 高德地图获取定位信息配置要比百度地图简单多了,这是我比较喜欢的一点,而且之前用百度地图嵌入一个应 ...
- uniapp+高德地图api 获取定位信息及详细地址
引入高德地图js api 高德地图api官方文档 根据官方文档建议,我使用的是JSAPI Loader 并且是通过npm安装的 npm i @amap/amap-jsapi-loader --save ...
- Android 高德地图key获取、坐标定位
前期准备 点击进入高德平台获取key **步骤一:**登录注册进入控制台 步骤二: **步骤三:**获取sha1值,以及其包名. **步骤四:**获取sha1值 步骤五:复制获取到key值 到这前期工 ...
- 高德地图地位获取地址
高德地图地位获取地址 高德地图开发平台地址:https://lbs.amap.com/ 1导入依赖库 implementation 'com.amap.api:location:4.4.0' 2权限 ...
- 调用腾讯地图API、高德地图API 获取当前地理位置、经纬度
调用腾讯地图API.高德地图API 获取当前地理位置.经纬度 web开发中,很多情况下都会需要获取当前位置的经纬度,在网上找了几个不同的地图,最终找到兼容比较好的腾讯地图API 1.调用腾讯地图API ...
- 高德地图实时路况数据-拥堵持续时长预测
一.Request爬取数据 1.获取AK 进入[高德地图开放平台]→注册认证成为开发者→[应用管理]→[我的应用]→[创建新应用]→获得AK 2.所需爬取数据 研究所需数据主要由两部分构成, ①高德地 ...
- java获取经纬度_java调用高德地图api获取某个位置的经纬度
java调用高德地图api获取经纬度的方法,废话少说,直接上代码: import com.fasterxml.jackson.databind.JsonNode; import com.ning.ht ...
- 在高德地图中获取鼠标点击的经纬度
本文目录 一.注册高德开放平台 (一)创建应用 (二)添加 Key 二.代码实现 1. 引入必要的 CSS 文件与 JS 文件 2. 放置地图容器 3. 核心 JavaScript 代码 三.效果图 ...
- 高德地图-鼠标获取坐标
1.问题背景 鼠标点击地图,获取点击处的经纬度,并将经度和纬度放到输入框中 2.实现源码 <!DOCTYPE html> <html><head><meta ...
最新文章
- 三维点云的深度学习研究综述
- 【建站系列教程】3.2、ajax使用精讲
- 由4G向5G进发的物联网:NB-IoT与LTE-M
- 同学遇见过的面试问题
- java platform_Java Platform Module系统中的可选依赖项
- ehcache springboot_Spring Boot 入门示例合集(附源代码)
- mysql索引的创建及删除
- 【转】关于“Please install at least one language pack”的详
- [转]vc6如何设置Unicode字符集
- (转)C++的tie()函数
- SocksCap64
- Oculus消费者版在路上,留给“山寨”VR的时间有多少?
- 叶三《我们唱》-野孩子(白银饭店)
- 推荐七个逆天神器APP,让你分分秒秒变优秀
- Linux系统版本大全
- 如何使网站被搜索引擎快速收录
- Python学习笔记-数据分析-Pandas02-Dataframe
- 解决ElementUI列表大数据操作卡顿问题
- 零散点整理[201709-11]
- 基于matlab的全阶观测器三自由度运动系统状态反馈控制系统的仿真