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

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

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

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

【问题讨论】:

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

标签: ios swift core-location cllocationmanager


【解决方案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

【讨论】:

  • 你提供的链接证明了你的答案
猜你喜欢
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
相关资源
最近更新 更多