我了解到,无法从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/