疯狂ios讲义之使用CoreLocation定位(1)

9.1 iOS的定位支持

iOS设备支持的定位方式有多种最先期的iPhone只支持经过运营商的基站信号进行定位后来iOS系统开始引入WiFi支持从而容许iOS设备经过周围的WiFi信号进行定位。服务器

iPhone 3g开始iPhone手机提供了内置的GPS模块处理芯片从而容许经过GPS卫星系统进行定位。从iPhone 4开始iPhone手机更换了精确度更高、耗电量更少、灵敏度更高的芯片所以可使用GPS进行精肯定位。网络

下面先简单介绍iOS定位支持的3种模式。ide

9.1.1 GPS卫星定位

GPS是英文Global Positioning System全球定位系统的简称GPS20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统。从这个介绍不难发现GPS的做用就是为全球的物体提供定位功能。优化

GPS定位系统由3部分组成即由GPS卫星组成的空间部分、若干地面站组成的控制部分和普通用户手中的接收机这3个部分。对于手机用户来讲手机就是GPS定位系统的接收机也就是说GPS定位须要手机的硬件支持GPS功能。spa

GPS定位须要能收到卫星信号才行卫星信号可能会被建筑物好比高楼遮挡所以通常须要在室外进行接收、定位。虽然iPhone 4采用了高灵敏度的GPS芯片但仍然须要在窗户旁或者户外才能进行接收、定位由于只有这些地方才能确保卫星信号的强度和稳定性。开发

与基站定位、WiFi定位相比GPS定位耗电量最大速度最慢可是精度最高。it

须要说明的是iOSGPS定位与单纯的GPS定位不一样它是一种所谓辅助GPS简称A-GPSA-GPS首先经过基站定位或WiFi定位得到该设备的大概位置而后经过将设备的大体位置发到远程服务器由服务器负责进行查询和计算从而获取当前位置的卫星信息并经过网络将这些卫星信息反馈给iOS设备这样就避免了iOS设备直接经过GPS扫描、分析天上的卫星信息如哪些卫星可见、具体在什么位置、时钟是多少等。所以一般来讲A-GPS比单纯的GPS更快。固然这只是通常而论对于专业级的GPS定位设备其GPS芯片的灵敏度可能更好所以这种GPS定位设备确定更快。io

A-GPS的优势是定位快缺点是须要网络但也只是在初次定位时须要网络一旦卫星信息返回在一段时间和范围内这些卫星信息无须改变接下来的GPS定位就无须联网直接使用已有的卫星参数便可。class

iOS设备上iOS系统会综合使用上述定位方式。通常来讲iOS系统可能先按照最快的“无网基站定位”返回一个位置当有网络链接时再使用“有网基站定位”来更新位置而后利用A-GPS查询卫星星图最后在能收到GPS信号的状况下转为使用GPS定位。原理

根据当前卫星信号状况和网络环境iOS系统可能在上述方式之间反复迭代不必定按照特定步骤或方式并且随着iOS系统升级定位顺序和规则可能改变。

9.1.2基站定位

每一个手机基站都有一个标识符iOS设备能够搜集周围全部收到信号的基站和它们的标识符经过联网发送到苹果云端服务器再由服务器根据这些基站的位置信息查询并计算出当前位置而后把该定位信息返回给手机。由于基站信号的辐射范围大因此相对来讲偏差是比较大的一般在500米到几千米范围内。

基于基站定位的方式具备速度快耗电量比较少但偏差较大的特征。

在没有网络的状况下iOS 4对其进行了优化能够在没有网络链接时采用无网定位由于Apple已经预先将一些重要基站几十千米选一个提早存储在iOS系统中所以即便不联网iOS系统也可经过这些本地基站信息定位到设备的位置。这种定位方式的偏差更大一般在10千米到50千米范围内。

无网基站定位的前提是iOS设备能接收到内置在手机中的那些“重要基站”的信号不必定是你的手机所属运营商只要能收到信号就能够了因此室内、室外同样均可以进行基站定位。

9.1.3WiFi定位

WiFi定位和基站定位的原理大体类似iOS设备经过无线网卡搜集周围全部的WiFi热点得到它们的MAC地址而后经过Apple的云端服务器查询该WiFi热点是否已经登记若是已经登记便可获取该WiFi热点的位置最后经过对多个WiFi热点折中计算获得当前位置并返回给iOS设备。

只要能收到手机信号的地方均可经过WiFi定位室内、室外的效果相同。

WiFi定位速度、耗电量和精度都介于基站和GPS之间精度大概在几十米范围内。

传统的WiFi定位是须要网络的可是iOS系统对其进行了优化能够实现无网WiFi定位。无网WiFi定位的原理是iOS设备在联网状态下会大体定位出设备的位置并自动将设备所在地周围全部的WiFi热点信息保存在手机系统中。在接下来的时间内即便当前iOS设备没有联网iOS系统也能够利用以前保存的本地的WiFi热点信息定位出设备的位置。

根据无网WiFi定位的原理不难看出无网WiFi定位的前提是该iOS设备以前在该区域附近曾经接入过网络若是初次到一个陌生的地方无网WiFi是没法定位的。

iOS系统在进行定位时已将底层具体的定位细节进行了屏蔽——也就是说这些定位细节对开发者而言是透明的iOS系统会智能地根据设备的状况和周围的环境采用一套最佳的解决方案。例如可以接收GPS信号那么优先使用GPS定位不然采用WiFi或基站定位在WiFi和基站之间优先使用WiFi若是没法链接WiFi才使用基站定位。

相关文章
相关标签/搜索