我可以在 iPhone 的 CLLocationManager 中设置自定义位置吗

Posted

技术标签:

【中文标题】我可以在 iPhone 的 CLLocationManager 中设置自定义位置吗【英文标题】:Can I set custom location in CLLocationManager in iPhone 【发布时间】:2015-06-05 08:15:55 【问题描述】:

我正在开发一个显示真实航向(即指向真北)的指南针应用程序,它使用苹果文档描述的位置

重要 仅当相应位置管理器对象也启用了位置更新时,此属性才包含有效值。由于真北位置与地表磁北位置不同,Core Location 需要设备的当前位置来计算该属性的值。

我想要做的是,如果用户的设备未连接到互联网或用户拒绝访问其位置的权限,那么我会手动从用户那里获取坐标并将这些坐标提供给 CoreLocation 以获得正确的真实航向。这可能吗? 提前致谢!

【问题讨论】:

我也会对 obj-c 代码感到满意 我不认为你的要求是可能的,如果没有真正的坐标,你必须制作第二个 CLLocation 或 CLLocationCoordinate2D 并使用它。 【参考方案1】:

直接使用 CoreLocation 无法实现您的要求。使用 LocationManager,如果您想要真北,则必须调用“startUpdatingLocation”,以便可以返回带有真北值的航向。没有手动设置位置供 LocationManager 使用的方法。

但是,您可以根据返回的磁值计算真北。作为设置的一部分,您可以让用户手动设置他们的大致位置,并将其存储起来以供计算真北时使用。您可以使用包含位置和磁偏角值的基本查找表。有点像真正的地图和指南针会使用。但是,磁偏角值会随着时间而变化,因此您需要一种方法来更新它。

如果你不熟悉磁偏角,这里有一个pretty good link from REI,应该会给你基本的概念。

这些链接提供了有关如何计算磁偏角的更多详细信息:

NOAA - http://www.ngdc.noaa.gov/geomag/WMM/

ios - https://github.com/stephent/ObjectiveWMM

查找表 - http://www.societyofrobots.com/robotforum/index.php?topic=11855.0

【讨论】:

你提供的链接证明了你的答案

以上是关于我可以在 iPhone 的 CLLocationManager 中设置自定义位置吗的主要内容,如果未能解决你的问题,请参考以下文章

CLLocationManager 和 iBeacons:requestState(for: region) 有必要吗?

我可以在 iphone3.0 上安装用 iphone sdk 3.1.3 开发的 iphone 应用程序吗?

是否可以在没有 iPhone 的情况下发布 iPhone 应用程序?

我可以限制我的 iPhone 应用程序被 iPhone3G 使用吗?

我是不是需要拥有 iPhone 才能获得签名密钥? (或者:我可以在没有 iPhone 的情况下构建我的 Phonegap 应用程序吗?)

iPhone新手:可以在iPhone上使用NFC吗?