我想找到不垂直于地面的设备的方位角。
这是一个已经存在的答案,但对我来说还不完整:
这是关于这个问题的被接受的答案,几乎是相同的。Android上方位/偏航和滚动的方向传感器值不一致
问题:
但是在这个问题中,可接受的答案给出的方位角值在-89到89范围内。我要计算0-359 degree
从磁北移动时在range内的方位角值。如何在Android Sensors中进行计算?
找到了答案:
像这样计算方位角:
mAzimuthAngleNotFlat = (int) Math.toDegrees(Math
.atan2((rotationMatrix[1] - rotationMatrix[3]), (rotationMatrix[0] + rotationMatrix[4])));
要将其转换为0到359,只需应用以下命令:
if (mAzimuthAngleNotFlat < 0) {
mAzimuthAngleNotFlat += 360;
}
这样就完成了。当设备不平坦时,该角度将是准确的。有关更多信息,您可以查看有关已接受答案的讨论。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句