我了解到,无法从iPod Touch 4G上的CoreLocation框架获取磁航向读数,但是可以使用CoreMotion框架生成磁强计读数。

我也了解我需要使用CMMotionManager并设置deviceMotionUpdateInterval来实现此目的。然后,我可以使用- (void)startMagnetometerUpdates- (void)stopMagnetometerUpdates pectationley启动和停止更新。

现在我有了原始的磁力计数据(x,y,z),如何使用它来实现磁航向?

我在网上看到了一些非常复杂的解释,但希望您喜欢示例代码。

编辑:我的错误,无法在iPod Touch 4G上获得磁力计读数。

最佳答案

iPod touch没有磁力计(请参见apple-devices-with-magnetometer),因此您所称的磁力计数据不能是磁力计数据。

也来自CMMotionManager Class Reference(我的重点)


  CMMotionManager对象是运动服务的网关
  由iOS提供。这些服务为应用程序提供了
  加速度计数据,转速数据,磁力计数据等
  设备运动数据(例如姿态)。这些类型的数据起源
  使用设备的加速度计和(在某些型号上)其磁力计
  和陀螺仪。


因此,您将无法产生磁航向。

您所看到的是iPod touch确实具有的其他传感器的运动数据。

关于iphone - iPod Touch 4G上的指南针磁力仪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10247167/

10-11 19:49