【发布时间】:2013-02-04 11:17:57
【问题描述】:
对于我的应用,我需要计算设备相对于真北的加速度。我的想法是计算设备的磁北方向并将偏角应用于它以获得真正的北方向。然后我想计算设备的加速度并将其参考方向,但我不知道该怎么做。
我会尝试使用SensorManager.getRotationMatrix() 和SensorManager.getOrientation() 获取设备方向。然后我通过GeomagneticField.getDeclination()得到偏角并将其应用到来自SensorManager.getOrientation()的方向值的方位角上。
但是如何将加速度计值映射到这个方向?甚至可能吗?
【问题讨论】:
-
如果我理解正确的话,你的意思是如果设备向西或向东移动,那么这种情况下的加速器值应该是 0,对吗?
-
不,我需要以这种方式重新映射加速度计的轴,当设备(即)向北移动时,y 值为正,向南移动时为负。向东移动时 x 值为正,向西移动时为负。目前不需要 z 值。我想我在这个问题中找到了一个很好的来源:stackoverflow.com/questions/11578636/…
-
当然,当向任何方向进行恒定运动时,该值应为 0,因为无法测量加速度。
-
上述链接中解决方案中的所有计算似乎都不太合理。请参阅下面的解决方案。
标签: android orientation accelerometer sensors