从Android磁传感器获取正确的方向

时间:2016-04-25 15:29:14

标签: android android-sensors

在android中,我们从磁传感器获取读数并确定方向。但我们知道磁北不是真正的北方。结果是真正的北方偏转。同样,这种偏转对于所有地方都不一样。同样在同一个地方,当磁北以40kms /年的速度从真正的北方移动时,偏转随时间而变化。因此,如果没有一些修正,我们从传感器获得的数据是不可用的。

现在我有两个点A,B,它们的纬度,经度,海拔如下图所示。我需要确定正确的向量。因为,我的位置是A,我的传感器方向不正确我无法得到正确的矢量X& Y从A到B.有没有办法通过过滤磁传感器数据来获得正确的矢量?

http://i.stack.imgur.com/7VAQ2.png

1 个答案:

答案 0 :(得分:0)

android中有GeomagneticField,它可以让你在当前时刻从当前位置的真北向偏转。因此,您可以使用以下代码从正北方获得偏差

gmf = new GeomagneticField((float) ur_Latitude(), 
                                       (float) ur_Longitude(),
                                       (float) ur_Altitude(), 
                                       System.currentTimeMillis());
            myAngle = Math.toRadians(-gmf.getDeclination());

现在,您可以通过此角度myAngle

在Y轴上旋转矢量