Tag: 指南针 地理定位

用iPhone 4上的陀螺仪补偿指南针滞后

我一直在iPhone 4上进行罗盘和陀螺仪的试验,并希望得到一些帮助。 我想用陀螺仪的数据补偿指南针的慢度。 使用CMMotionManager及其CMDeviceMotion对象( motionManager.deviceMotion ),我得到CMAttitude对象。 纠正我,如果我错了(请),但这是我从CMAttitude对象的yaw属性(我不需要pitch或roll为我的目的)推断: 当手机朝下(如deviceMotion.gravity.z )和逆时针摆动时, yaw范围从0到PI当顺时针摆动时, 0到deviceMotion.gravity.z 当设备向上时, yaw范围从-PI到0和PI到0 并从指南针数据(我使用locationManager.heading.magneticHeading ),我看到指南针给出的值从0到360 ,顺时针方向摆动 好的,所有这些信息一起使用,我可以得到一个我称之为horizontal的值,无论设备是向上还是向下,都会给出从0到360值,当设备顺时针摆动(尽pipe当deviceManager.gravity.z在0左右时,我仍然遇到了麻烦 – yaw值在这个gravity.z值处出现deviceManager.gravity.z )。 在我看来,我可以使用计算出的horizontal值映射到magneticHeading ,“同步” horizontal和magneticHeading值,当我觉得指南针“已经卷入”时,将horizontal值“同步”到magneticHeading 。 所以我的问题: 我在这个正确的轨道? 我是否正确使用CMDeviceMotion的陀螺仪数据,以及上面列出的假设是否正确? 当gravity.z在0左右时,为什么可能会gravity.z呢? 非常感谢你。 我期待听到你的答案!