【问题标题】:Extracting the heading (compass) from Google Maps SDK for iOS从 Google Maps SDK for iOS 中提取航向(指南针)
【发布时间】:2014-04-03 16:01:22
【问题描述】:

在我的印象中,iOS 中的 Google 地图指南针运行良好。我说的是地图中蓝色“我的位置”小圆点的指南针箭头,请参阅Google Maps SDK - My Location。它已在最新版本 1.7 enter link description here 中引入。我不知道他们是如何获得如此准确和稳定的指南针的,但我希望我的应用也能做到这一点,因为它依赖于精确的航向信息。

因此问题:是否可以从 Google Maps SDK 中提取航向角?

【问题讨论】:

  • 使用 Google SDK 是不可能的,有最简单的方法来获取数据,创建 CLLocationManager 并启用跟踪用户标题。这提供了一个 CLHeading 对象,其中包含相对于真北的航向(以度为单位)。
  • 谢谢,但这不是我要找的。我知道可以通过 CLLocationManager 获得(相当粗略的估计)当前航向。为了获得精确的航向信息,绝对有必要使用设备的其他传感器,即传感器融合算法。 Apple 通过 CMDeviceMotion 提供此类功能(例如,后者中给出的当前态度)。关键是知道我为什么要问如何从 Google SKD 中提取标题,因为在我看来,他们在这里做得比 Apple 好得多!只需自己将 Apple 指南针与 Google 地图的指南针进行比较......
  • 你可以在谷歌地图中移动指南针:stackoverflow.com/a/23489785/3607287

标签: ios google-maps compass-geolocation sensor-fusion


【解决方案1】:

需要设置位置管理器并调用startUpdatingHeading:

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager startUpdatingHeading];

然后包含以下委托方法,您应该能够从 newHeading 中提取航向角:

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
  NSLog(@"Updated heading: %@", newHeading);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多