浅析LocationManager的位置定位-程序员宅基地

技术标签: python  移动开发  

针对定位服务,android的API里提供了LocationManager这么一个类

通过getLastKnownLocation(String provider)以及requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)方法可以获取到当前位置

此类提供两种定位方式:GPS定位和网络定位(基站+WIFI)

GPS定位的provider是LocationManager.GPS_PROVIDER, 网络定位则是LocationManager.NETWORK_PROVIDER

不过这两个接口都受限于系统设置,如下图:

如果上面两个开关都关了,自然就无法获取到GPS经纬度了(如何摆脱这种限制通过其他方式获取经纬度在下一章再介绍)

(假定开关都打开的前提)

GPS定位的获取方式

通过getLastKnownLocation(String provider)传对应参数,此时得到的Location并非当前的GPS位置信息,而是上一次获取到的位置信息

requestLocationUpdates才是真正去请求位置信息的更新,可以理解为调用该方法后,会安装指定的规则去收集GPS信息,例如你请求locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,30 * 1000, 0, myListenGPS);

则每隔三十秒钟会收集一次GPS信息,如果收集到的话,会保存到系统存储中(保存至系统存储属个人理解)并通知myListenGPS监听器位置信息改变同时调用监听器onLocationChanged(Location location),那么每次我们调用getLastKnownLocation事实上就是从这个系统存储中获取这个信息,所以如果我们不调用此方法,getLastKnownLocation获取到的就

可能是N天以前的位置信息了。

网络定位的获取方式

其实同GPS差不多,保存到系统存储中的位置自然是跟GPS分开的。

二者区别

GPS定位准确,但在室内几乎无法定位而导致无法收集信息,即有定位盲区;网络定位偏差较大,但无盲区,只要有网络一般都可以收集的到;

另外经过本人手机实测,如果requestLocationUpdates的时候设置最少更新时间1S,最小更新距离为0的时候,GPS定位在有信号的情况下的确是每秒都刷新位置,

但网络定位大概是四五十秒更新一次(可能跟手机信号有关),如果把它设置为60秒的话,基本上两种定位方式都在六七十秒后更新位置信息

所以这个时间还是有些偏差的,这点大家务必要注意

部分童鞋可能对网络定位(基站+WIFI)不是很理解,简单来说就是你当前接入WIFI就使用WIFI定位,当前接入2G或3G网就是基站定位

其实针对基站和WIFI有单独的定位方式,只不过系统帮我们封装了这么个智能的方法,好是好就是受限于设置开关

为了达到实时定位的功能,现在广为流传的是GPS+基站定位方式,该基站定位即单独的定位方式,不受开关限制,所以在各个应用中用得比较多

如何基站定位且听下回分解

为了让大家更好理解本文,附上工程,连接如下:

http://download.csdn.net/download/geniuseoe2012/4252947

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yunlonglove/article/details/84208878

智能推荐

JAVA学习:JAVA中一些常用的方法和使用技巧_java的妙用方法-程序员宅基地

文章浏览阅读401次。目录一、修改数据结构中的Compare二、向二维数组中快速填充同一个元素:三、StringBuilder的常用方法:四、Math的常用方法:参考链接菜鸟教程五、字符串六、容器类一、修改数据结构中的CompareComparable和Comparator的区别:[https://blog.csdn.net/qq_37768971/article/detai..._java的妙用方法

【特征工程】(一)数据集中缺失值的处理_特征工程 空值处理-程序员宅基地

文章浏览阅读9k次,点赞7次,收藏53次。目录引言一、可选处理方法二、Python中Pandas库处理缺失值1.查看数据缺失值得分布情况2.删除包含缺失值的数据 2.1. 删除包含缺失值的行或列 2.2. 根据条件删除包含缺失值的数据三、Python中其他库处理缺失值四、缺失值处理案例(一)----疝气病数据集预处理1.处理缺失值,以便使用分类算法引言 数据中的缺失值是..._特征工程 空值处理

Log4j.properties配置详解-程序员宅基地

文章浏览阅读2.8w次,点赞16次,收藏92次。1 入门示例1.1 新建一个Java工程,导入包log4j-1.2.17.jar,整个工程最终目录如下1.2 src同级创建并设置log4j.properties### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.Conso..._log4j.properties

win10 无线显示未连接到服务器,老司机详解win10系统未识别无线网络无法连接的方法介绍...-程序员宅基地

文章浏览阅读873次。许多win10系统用户在工作中经常会遇到win10系统未识别无线网络无法连接的情况,比如近日有用户到本站反映说win10系统未识别无线网络无法连接的问题,但是却不知道要怎么解决win10系统未识别无线网络无法连接,我们依照1、先打开控制面板,然后打开网络和INTERNET,再打开网络和共享中心,找到本地连接,再单击“查看状态”选项。 2、接着设置本地链接状态属性。这样的步骤就行了;如果你还不知道..._wifi未识别的网络 无法连接到internet

thymealf 高级用法_SpringBoot Thymeleaf使用教程(实用版)-程序员宅基地

文章浏览阅读179次。使用Thymeleaf 三大理由:简洁漂亮 容易理解完美支持HTML5 使用浏览器直接打开页面不新增标签 只需增强属性学习目标快速掌握Thymeleaf的基本使用(五大基础语法+常用内置对象)快速查阅— Hey Man,Don't forget to Star or Fork . —使用教程温馨提示:Thymeleaf 最为显著的特征是增强属性,任何属性都可以通过th:xx 来完成交互,例如th:..._thymeleaf中怎样获取数据总数

bzoj 2502 清理雪道 上下界网络流最小流-程序员宅基地

文章浏览阅读489次。首先可以用一种类似退流的思想,先建图跑可行流,然后删掉原图的汇点tt~源点ss之间的边,设这条边的流量为x1,再跑tt~ss的最大流x2。答案就是x1-x2。另一种做法,先不加tt~ss的边跑最大流,然后加边跑最大流x2,答案就为x2。#include#include#include#include#define maxn_清理雪道

随便推点

MinGW+Notepad++搭建C/C++开发环境-程序员宅基地

文章浏览阅读515次。一、 下载安装 Mingw,假设安装在D:\Mingw二、 配置环变量,在系统变量path中加入 D:\Mingw\bin配置完之后即可进行检查是否成功:进入cmd,然后输入:gcc-v,出现正确版本号为安装成功三、 打开Notepad++进行以下配置:①按F5,在输入框中键入“CMD/K gcc _mingw+notepad

C++与Python之间跨进程通信(socket实现)_通过socket实现python和c++数据传输-程序员宅基地

文章浏览阅读5.1k次,点赞5次,收藏35次。C++与Python之间跨进程通信(socket实现)1.引言2.实现思路3. 具体代码(1)Python服务端(2)C++客户端1.引言之前写过一篇Python调用C++程序的实现方法,这里相反,希望使用Python协助C++完成某些任务。一种解决思路为实现RPC调用,使用C++端(以下称客户端)发送数据,Python端(以下称服务端)处理数据并返回的方法,进一步来说,转换为C++与Python之间通信的问题。2.实现思路因为客户端可能希望使用的函数多种多样,这里为了保证灵活,服务端与客户端均_通过socket实现python和c++数据传输

慢查询详解-程序员宅基地

文章浏览阅读2.4k次。文章目录一、为何要对慢 SQL 进行治理二、MySQL 执行原理三、慢查询四、SQL 语句常见优化一、为何要对慢 SQL 进行治理从数据库角度看:每个 SQL 执行都需要消耗一定 I/O 资源,SQL 执行的快慢,决定资源被占用时间的长短。假设总资源是 100,有一条慢 SQL 占用了 30 的资源共计 1 分钟。那 么在这 1 分钟时间内,其他 SQL 能够分配的资源总量就是 70,如此循环..._慢查询

除,整除,被整除那些事以及辗转相除法的证明_整除 被整除-程序员宅基地

文章浏览阅读1.7k次。今天在做杭电OJ的一道题时突然想到了一个之前一直在用但是不知道其原理的一个古老的算法——辗转相除法!奋战许久之后,终于完美理解了。下面我将用比较浅显易懂的语言来进行描述以及给出证明! 在这之前,我们先来复习一些小学数学的概念(别笑,不是所有人都能够知道的!)整除:如果整数a除以非零整数b,若余数为零,则我们称a能被b整除!或者说,b能整除a!其中,a为被除数,b为除数!_整除 被整除

前端面试、笔试题总结_有程里ffc4d5-程序员宅基地

文章浏览阅读4.6k次,点赞6次,收藏34次。文章目录HTML部分JavaScript部分 CSS部分React部分其他HTML部分JavaScript部分 new 的原理创建一个新对象将构造函数的作用域赋给新对象 newObj.prototype=obj.proto将属性,方法赋给新对象返回新对象自加 var a=5 var b=6 => a+++b=11 , a=6’132’-13 ..._有程里ffc4d5

PHP 处理导入CSV 时间格式_php csv导出来的时间格式错误问题-程序员宅基地

文章浏览阅读1.6k次。/** * 处理csv导入的时间格式数据 * @param $strTime string 导入时间字符串 * @return $strtotimr int 转换后的时间戳 * @author lihu */function disposeImportTimeData($strTime){ $strtoTime = strtotime($strTime); //如果st_php csv导出来的时间格式错误问题