IOS Core Location 框架精度
Posted
技术标签:
【中文标题】IOS Core Location 框架精度【英文标题】:IOS Core Location framework accuracy 【发布时间】:2016-02-07 01:10:10 【问题描述】:我正在用 Swift 编写一个应用程序来捕获并保存手机的位置。 我打算使用核心位置框架。该框架提供了多种服务,您可以使用这些服务来获取和监控设备的当前位置。 我有几个问题:
1. Core Location框架是使用手机GPS获取经纬度还是手机数据?
2. 如果手机在您的车、口袋、包或钱包里怎么办。它还能得到正确的位置(经度和纬度)吗?
3. 如果#2 的答案是否定的,那我还有什么其他选择?
【问题讨论】:
查看文档(要求 ios 应用中存在定位服务)developer.apple.com/library/ios/documentation/UserExperience/… 【参考方案1】:Core Location 框架是使用手机 GPS 来获取经纬度还是手机数据?
如果它需要 GPS 以达到指定的精度,它会这样做。当您使用 Core Location 时,您会告诉它您需要的准确度,如果 a) GPS 在设备上可用,并且 b) 它需要 GPS 来获得您要求的准确度,Core Location 将打开 GPS。
如果手机在您的汽车、口袋、包或钱包里怎么办。它还能得到正确的位置(经度和纬度)吗?
它可以,除非它不能。 GPS在汽车中运行得相当好。口袋、包等都不是问题。但 GPS 接收器确实需要能够接收来自卫星的无线电信号,因此如果您的汽车停在地下停车场的底层,或者即使您只是在建筑物内,它也可能无法工作。然后,Core Location 将使用任何其他可用的方法来确定位置,例如 WiFi 和蜂窝塔三角测量。
如果 #2 的答案是错误的,那么我还有什么其他选择?
您确实没有任何替代核心位置的方法,但核心位置有多种确定位置的方法。因此,在必要时使用它(并避免在不需要时使用它,因为它确实会消耗电力)并相信它会做正确的事情。
【讨论】:
感谢迦勒。所以我想知道是否有办法只从 GPS 获取位置?我不确定到底发生了什么,但我在我家外面,可以说地址是西街 123 号。如果我在 WIFI 上,我会得到一个大约 800 英尺外的地址。如果我在单元格数据中,在这种情况下,我会得到我的实际地址 123 West street。所以我想知道是否有办法说首先使用 GPS,如果不可用,然后使用其他方法?也在我的代码中我设置了 locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters 再一次,不,您无法指定确定位置的机制。您确实可以指定您的期望准确度,但这并不意味着报告的每个位置都那么准确。获取时检查每个位置的horizontalAccuracy
属性。以上是关于IOS Core Location 框架精度的主要内容,如果未能解决你的问题,请参考以下文章
Core Audio框架详细解析(二) —— 基于CoreAudio的ios音频服务总结分析
如何关联 UIKit、Core Image、Quartz 2D 以及 iOS 中的各种框架?
Fused Location Provider - 获得高精度