CLLocationmanager 中的 GPS 位置更新

Posted

技术标签:

【中文标题】CLLocationmanager 中的 GPS 位置更新【英文标题】:GPS location updates in CLLocationmanager 【发布时间】:2013-02-01 10:02:27 【问题描述】:

我正在开发一个应用程序。我正在使用 CLLocation Manager 获取位置更新。我知道当我调用启动位置更新方法时 gps 已关闭,而当我们调用停止位置更新时 gps 已关闭。但我想关闭 gps,我仍然想使用蜂窝塔或 wifi 获取位置更新。如何做到这一点。

【问题讨论】:

【参考方案1】:

您可以使用CLLocationManagerdesiredAccuracy 属性告诉系统位置需要有多准确。您无法控制是否打开 GPS,但将desiredAccuracy 设置为较低的精度会消耗较少的电量。

来自CLLocationManager Class Reference:

接收机尽最大努力达到要求的精度;但是,不能保证实际的准确性。

您应该为此属性分配一个适合您的使用场景的值。换句话说,如果您只需要几公里范围内的当前位置,则不应为精度指定 kCLLocationAccuracyBest。更准确地确定位置需要更多时间和更多精力。

在请求高精度位置数据时,位置服务提供的初始事件可能没有您请求的精度。定位服务尽快提供初始事件。然后,它会继续按照您要求的准确度确定位置,并在数据可用时根据需要提供其他事件。

【讨论】:

好吧,那是不可能的。 除了 GPS 之外,还有其他任何方法可以使用蜂窝塔或 wifi 获取位置更新 您永远不知道操作系统何时决定打开 GPS。您可以监控重大的位置变化,但如果没有 GPS 就无法确定位置,即使是这些变化也会回退到 GPS。 阅读位置感知编程指南,尤其是“获取用户位置”部分:developer.apple.com/library/ios/#documentation/UserExperience/…

以上是关于CLLocationmanager 中的 GPS 位置更新的主要内容,如果未能解决你的问题,请参考以下文章

如何同时计算来自 CLLocationManager 的所有 gps 数据

核心位置,是不是可以在没有 GPS 芯片的情况下向 iPad 提供 GPS/位置日期,以便在 CLLocationManager 类中使用?

我应该为 CLLocationManager 选择哪种所需的精度?

iOS 8 使用外部 GPS

如何查看 WIFI 或 GPS 提供的用户位置

使用 CLLocationManager 时查找速度的问题