获取定位数据

第 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

高德地图(实时获取定位)相关推荐

  1. android使用高德地图SDK获取定位信息

    注册账号.创建应用.获取API KEY等这些就不说了,按照官网来就行,我们来讲讲项目的配置及示例代码. 高德地图获取定位信息配置要比百度地图简单多了,这是我比较喜欢的一点,而且之前用百度地图嵌入一个应 ...

  2. uniapp+高德地图api 获取定位信息及详细地址

    引入高德地图js api 高德地图api官方文档 根据官方文档建议,我使用的是JSAPI Loader 并且是通过npm安装的 npm i @amap/amap-jsapi-loader --save ...

  3. Android 高德地图key获取、坐标定位

    前期准备 点击进入高德平台获取key **步骤一:**登录注册进入控制台 步骤二: **步骤三:**获取sha1值,以及其包名. **步骤四:**获取sha1值 步骤五:复制获取到key值 到这前期工 ...

  4. 高德地图地位获取地址

    高德地图地位获取地址 高德地图开发平台地址:https://lbs.amap.com/ 1导入依赖库 implementation 'com.amap.api:location:4.4.0' 2权限 ...

  5. 调用腾讯地图API、高德地图API 获取当前地理位置、经纬度

    调用腾讯地图API.高德地图API 获取当前地理位置.经纬度 web开发中,很多情况下都会需要获取当前位置的经纬度,在网上找了几个不同的地图,最终找到兼容比较好的腾讯地图API 1.调用腾讯地图API ...

  6. 高德地图实时路况数据-拥堵持续时长预测

    一.Request爬取数据 1.获取AK 进入[高德地图开放平台]→注册认证成为开发者→[应用管理]→[我的应用]→[创建新应用]→获得AK 2.所需爬取数据 研究所需数据主要由两部分构成, ①高德地 ...

  7. java获取经纬度_java调用高德地图api获取某个位置的经纬度

    java调用高德地图api获取经纬度的方法,废话少说,直接上代码: import com.fasterxml.jackson.databind.JsonNode; import com.ning.ht ...

  8. 在高德地图中获取鼠标点击的经纬度

    本文目录 一.注册高德开放平台 (一)创建应用 (二)添加 Key 二.代码实现 1. 引入必要的 CSS 文件与 JS 文件 2. 放置地图容器 3. 核心 JavaScript 代码 三.效果图 ...

  9. 高德地图-鼠标获取坐标

    1.问题背景 鼠标点击地图,获取点击处的经纬度,并将经度和纬度放到输入框中 2.实现源码 <!DOCTYPE html> <html><head><meta ...

最新文章

  1. 三维点云的深度学习研究综述
  2. 【建站系列教程】3.2、ajax使用精讲
  3. 由4G向5G进发的物联网:NB-IoT与LTE-M
  4. 同学遇见过的面试问题
  5. java platform_Java Platform Module系统中的可选依赖项
  6. ehcache springboot_Spring Boot 入门示例合集(附源代码)
  7. mysql索引的创建及删除
  8. 【转】关于“Please install at least one language pack”的详
  9. [转]vc6如何设置Unicode字符集
  10. (转)C++的tie()函数
  11. SocksCap64
  12. Oculus消费者版在路上,留给“山寨”VR的时间有多少?
  13. 叶三《我们唱》-野孩子(白银饭店)
  14. 推荐七个逆天神器APP,让你分分秒秒变优秀
  15. Linux系统版本大全
  16. 如何使网站被搜索引擎快速收录
  17. Python学习笔记-数据分析-Pandas02-Dataframe
  18. 解决ElementUI列表大数据操作卡顿问题
  19. 零散点整理[201709-11]
  20. 基于matlab的全阶观测器三自由度运动系统状态反馈控制系统的仿真

热门文章

  1. Mac Xcode opencv C++环境配置 保姆级教程 填坑记录 19年最新版本
  2. 28BYJ-48 步进电机
  3. 2023拼多多商品详情,拼多多sku采集
  4. 怎么才算是高级点灯工程师?
  5. IMSI前5位对应移动运营商名称的列表
  6. 请收下这 72 个炫酷的 CSS 技巧
  7. 爬虫有道词典,高精度加密版
  8. Visual Studio 2019 操作使用
  9. 为什么很多视频一模一样,也没有被判定为搬运?
  10. xlwings库的基本使用笔记