iOS 定位原理

news/2024/11/7 16:46:56/

iOS 定位原理

iOS定位有三种方式<iBeacon 不再本次研究范围内>, 手机基站定位, wifi定位, GPS(AGPS辅助定位系统, 比GPS更优), apple会根据当前信号情况和网络环境, 动态的去调整三种方法组合起来的调用次数和顺序, 这个开发者无法干预, 只能在CLLocation中直接拿到计算结果, 所以如果想要做优化, 从应用层的角度来讲的话, 也就只能放在CoreLocation 采集到精度之后了.

手机基站定位:

原理:每个手机基站都有一个标识符,iPhone或3G iPad可以搜集周围所有收到信号的基站和它们的标识符,通过联网发送到苹果云端服务器,再由服务器根据这些基站的的位置信息查询并计算出当前位置,然后返回给手机。因为基站信号辐射范围大,所以误差也大,在500米 ~ 几公里.

特点:定位速度最快, 耗电最少,误差几百上千米.

iOS优化(无网基站定位):传统的基站定位需要连接云端服务器,产生网络流量,iOS 4对其进行了优化,可以在没有网络连接时支持无网定位,因为苹果预先已经将一些重要基站(几十公里选一个)提前存储在iOS系统中,在无网情况下,不用上网也能通过这些本地基站信息定位到用户位置,但这个误差范围更大,在10公里到50公里。无网基站定位的前提是,您的手机能接受到内置在手机中的那些“重要基站”的信号,不一定是您手机所属运营商,只要能收到信号就可以了。

WIFI定位:

原理: 和基站定位原理差不多, iOS设备(或者Mac电脑)通过无线网卡手机周围所有的WiFi热点(不需要连接上,只需要有信号就行),获得它们的MAC地址,然后到苹果云端服务器查询这个热点是否已经登记,登记的话它的位置是多少,最后通过计算(多个热点折中)得到当前位置并返回给用户。只要收到手机信号的地方都可以基站定位,所以室内室外一样。

**特点:**WIFI定位速度、耗电和精度都介于基站和GPS之间,精度大概在几十米。(注意,WIFI定位的支持范围没有基站定位广,但是苹果的云端服务器一直在不断增加新的热点信息,使得热点定位支持的地区越来越多)

iOS优化(无网WIFI定位):传统的WIFI定位需要网络,但是iOS对其进行了优化,可以实现无网WIFI定位。原理时iOS设备在您有网络连接时,会大致定位出您的位置,并自动下载您所在地区周围(几个街区宽度或者更多)所有的WIFI热点的信息到本地。之后,当您在周围行走并WIFI定位的时候,即使没有网络,iOS照样可以利用之前下载的WIFI热点信息定位出您的位置。这也是为什么有人号称WIFI无网可定位的原因,但注意,无网WIFI定位的前提是您在这个区域附近曾经成功上过网,如果初次到一个陌生的地方,是无法定位的哦。

关于自动下载的热点个数和范围,这个是苹果根据当地热点的密度动态决定的,当地热点很多时(如市中心),可能只下载几条街道范围的所有热点,当地热点密度很小时(例如海滨城市),可能会下载整个城市的所有热点。

GPS定位

这个是美国军方搞的, 军民两用, 但仍然完全受军方控制(比如可以随时随地设置某个地区收到的信号与否及其精度), 其原理就是:利用天上的卫星(共24颗)不断地广播信号, 地面的GPS接收设备收到信号后, 通过分析多个卫星信号,就可以计算出地球坐标, GPS保证全球任何一个地方(98%)都可以同时收到至少4个卫星的信号, 从而可以准确确定您的经纬度以及海拔位置. GPS定位精度可达10米以内, 不过这是美国军方控制的, 战争时期可能变的不稳定或者误报. (不过我国也有自己的系统, 北斗系统, 目前已经亚洲的覆盖, 还在推广中)

卫星定位必须要能收到卫星信号,因为卫星信号都是很微弱的,虽然iPhone 4开始提升了GPS硬件的灵敏度,但仍然需要在窗户旁,或者户外使用,才能确保卫星信号的强度和稳定性。与基站定位和WIFI定位相比,GPS耗电最大,速度最慢,但是精度最高。而iPhone的GPS与纯粹的GPS定位不同, 称为A-GPS, 即辅助GPS.(比GPS更优,不过GPS也分芯片和性能的,不是说所有的AGPS比所有的GPS都好)

因为GPS定位中最耗时、最耗电的就是获取当前天上的卫星信息,哪些卫星可见、在什么位置、时钟是多少等等,这个过程可能花费数十秒甚至几分钟,而AGPS就是利用网络,首先将基站定位或者WIFI定位获得的大概位置发到远程服务器,有服务器进行查询和计算,得出这个位置下当前卫星信息,反馈给iOS设备,iOS设备就可以直接用这些信息来接受卫星信号,不用自己去扫描分析了。这样可以极大提高定位速度,将初次定位时间缩短到1~2秒完成。

A-GPS优点是定位快,缺点是需要网络,但也只是在初次定位时需要网络,因为一旦卫星信息返回,在有限时间和范围内,这些信息无须改变,之后的GPS定位就不再需要联网,都是直接用这些卫星参数接受信息了。

综述

在iOS设备上,上述定位方式会综合应用,一般地,可能先按照最快的“无网基站定位”返回一个位置,当有网络连接时,在用有网基站定位更新位置,然后,利用AGPS上网查询卫星星图,最后,在能收到GPS信号的情况下,转为使用GPS定位。根据当前信号情况和网络环境,iOS可能在上述方式之间反复迭代,不一定一致特定步骤或者方式,而且随着iOS升级,定位顺序和规则可能改变。

开始优化

1 苹果官方文档:

The framework gathers data using all available components on the device, including the Wi-Fi, GPS, Bluetooth, magnetometer, barometer, and cellular hardware.

activityType属性研究

真正影响刷新频率的是activityType属性和distanceFilter属性,前者决定位置的更新时机,后者决定位置更新的距离阀值


http://www.ppmy.cn/news/730917.html

相关文章

2021年最新UI/UE设计软件全家桶

2021年最新最全的UI/UE设计软件全家桶新鲜出炉了。知识体系完备&#xff0c;从小白到大神各阶段读者均能学有所获。生动形象&#xff0c;化繁为简&#xff0c;讲解通俗易懂。结合工作实践及分析应用&#xff0c;培养解决实际问题的能力。学习资源充足&#xff0c;多种资料配合后…

Vue全家桶入门精细讲解

Vue入门精细讲解 感谢coderwhy老师的精心讲解&#xff0c;本笔记全部内容源于coderwhy老师的课堂笔记&#xff1b; 一. Hello Vuejs 1.1. 认识Vuejs 为什么学习Vuejs 可能你的公司正要将原有的项目使用Vue进行重构。 也可能是你的公司新项目决定使用Vue的技术栈。 当然&…

KVO全家桶

KVO KVO(Key-Value-Observer)也就是观察者模式,是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。 1、KVO使用 监听对象的某个属性- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyV…

为什么flyme不支持谷歌服务器,大家的flyme能正常使用谷歌全家桶吗

满意答案 sxkjf 2017.12.05 采纳率:56% 等级:9 已帮助:367人 从初代的Flyme 1.0,到如今的Flyme5.0,Flyme凝聚了魅族多年来对智能手机用户体验的深度发掘和在其历代操作系统上演进优化的经验和技术实力,将「化繁为简,纯简绝俗」的设计理念发挥到了极致。Flyme作为安卓…

最全总结 | 聊聊 Python 数据处理全家桶(配置篇)

1.前言 在实际项目中&#xff0c;经常会接触到各种各样的配置文件&#xff0c;它可以增强项目的可维护性 常用配件文件的处理方式&#xff0c;包含&#xff1a;JSON、ini / config、YAML、XML 等 本篇文章&#xff0c;我们将聊聊 Python 数据处理全家桶之配置文件大总结 2.…

苹果HomeKit与谷歌 Home对比:谁是最佳选择?

没有所谓最好的产品&#xff0c;只有最适合的选择&#xff01;最适合您的选择主要取决于你与家人正在使用的设备。 如果长期使用iPhone、iPad 或其他Apple 设备&#xff0c;甚至有苹果全家桶&#xff0c;那么选择HomeKit&#xff0c;因为支持HomeKit 认证的产品加上苹果设备&a…

安装vue全家桶(mac)

下载node npm -v sudo npm install webpack -g sudo npm install -g cnpm --registryhttps://registry.npm.taobao.org sudo npm install -g vue/cli vue create 1113(回车默认选择) 进入新建文件夹根目录&#xff0c;cd 1113 npm run serve

c++ vs2015 播放音乐_苹果音乐全家桶有哪些 苹果音乐全家桶介绍_智能常识

花火网消息&#xff0c;一转眼也差不多当了十来年的苹果全家桶用户了&#xff0c;iPhone、iPad、Mac换了又换。虽然孩子已经长大了&#xff0c;但没变过的&#xff0c;是我对音乐的喜爱。还记得第一次买了iPod&#xff0c;从店里出来的满心欢喜&#xff0c;戴上耳机都不舍得摘下…