据我所知,无法从iPod Touch 4G上的CoreLocation框架获取磁性航向读数,但可以使用CoreMotion框架生成磁力计读数。
我也理解我需要使用CMMotionManager
并设置deviceMotionUpdateInterval
来实现此目的。然后,我可以使用- (void)startMagnetometerUpdates
和- (void)stopMagnetometerUpdates
respectivley开始和停止更新。
既然我有原始磁力计数据(x,y,z),我该如何使用它来实现磁航向?
我在网上看到了一些相当复杂的解释,但我会很感激像代码一样的代码。
编辑:我的错误是,无法在iPod Touch 4G上获得磁力计读数。
答案 0 :(得分:1)
iPod touch没有磁力计(见apple-devices-with-magnetometer),所以无论你怎么称磁力计数据都不能是磁力计数据。
同样来自CMMotionManager Class Reference(我的重点)
CMMotionManager对象是运动服务的网关 由iOS提供。这些服务提供了一个应用程序 加速度计数据,转速数据,磁力计数据等 设备运动数据,如态度。这些类型的数据来自 使用设备的加速度计和(在某些型号上)其磁力计 和陀螺仪。
所以你将无法产生磁力航向。
您所看到的是来自iPod touch确实具有的其他传感器的运动数据。