在android中,我们从磁传感器获取读数并确定方向。但我们知道磁北不是真正的北方。结果是真正的北方偏转。同样,这种偏转对于所有地方都不一样。同样在同一个地方,当磁北以40kms /年的速度从真正的北方移动时,偏转随时间而变化。因此,如果没有一些修正,我们从传感器获得的数据是不可用的。
现在我有两个点A,B,它们的纬度,经度,海拔如下图所示。我需要确定正确的向量。因为,我的位置是A,我的传感器方向不正确我无法得到正确的矢量X& Y从A到B.有没有办法通过过滤磁传感器数据来获得正确的矢量?
答案 0 :(得分:0)
android中有GeomagneticField,它可以让你在当前时刻从当前位置的真北向偏转。因此,您可以使用以下代码从正北方获得偏差
gmf = new GeomagneticField((float) ur_Latitude(),
(float) ur_Longitude(),
(float) ur_Altitude(),
System.currentTimeMillis());
myAngle = Math.toRadians(-gmf.getDeclination());
现在,您可以通过此角度myAngle