从Google Maps SDK for iOS中提取航向(指南针)

从Google Maps SDK for iOS中提取航向(指南针),ios,google-maps,compass-geolocation,sensor-fusion,Ios,Google Maps,Compass Geolocation,Sensor Fusion,在我的印象中,iOS中谷歌地图的指南针运行得非常好。我说的是地图上蓝色小点“我的位置”的指南针箭头,参见。它已在最新版本1.7中引入。我不知道他们是如何获得如此精确和稳定的罗盘的,但我希望我的应用程序也能获得同样的罗盘,它依赖于精确的航向信息 因此,问题是:是否可以从Google Maps SDK提取航向角度?需要设置位置管理器并调用startUpdatingHeading: self.locationManager = [[CLLocationManager alloc] init]; sel

在我的印象中,iOS中谷歌地图的指南针运行得非常好。我说的是地图上蓝色小点“我的位置”的指南针箭头,参见。它已在最新版本1.7中引入。我不知道他们是如何获得如此精确和稳定的罗盘的,但我希望我的应用程序也能获得同样的罗盘,它依赖于精确的航向信息


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

需要设置位置管理器并调用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);
}

使用GoogleSDK是不可能的,因为有一种最简单的方法可以在启用用户标题的情况下创建跟踪数据。这提供了一个包含相对于正北方向的航向(以度为单位)的对象。谢谢,但这不是我要找的。我知道可以通过CLLocationManager获得当前航向(相当粗略的估计)。为了获得精确的航向信息,绝对有必要利用设备的其他传感器,即传感器融合算法。苹果公司通过CMDeviceMotion(如后者中给出的当前态度)提供此类服务。关键是我为什么要问如何从谷歌SKD中提取标题,因为在我看来,他们在这方面比苹果做得好得多!您只需将苹果指南针与谷歌地图的指南针进行比较……您可以在谷歌地图中移动指南针: