我之前曾尝试对此进行解释,但由于了解不正确,所以我做了一张照片:
因此,我在侧面使用iPhone,用户可以对准后置摄像头并获得指南针方位。现在,当用户将海拔过高时,指南针将发生变化,就像它朝相反的方向一样:
Correct bearing: Elevated bearing:
0/360 180
90 90
180 0/360
270 270
现在使用加速度计,我已经制定了一种算法来帮助您:
if(numCurrentZAcc > 0){
if(numCurrentZAcc >= Math.abs(numCurrentXAcc)){
numCompass = 180 - numCompass;
if (numCompass < 0){
numCompass = numCompass + 360;
}
}
}
现在这很好用,但是如果z和x加速度计彼此太近,我会在两个结果之间出现闪烁,而不是显示期望的结果。
所以我想知道是否有一种方法可以准确地获取?(参见图片),以免闪烁。
希望这次我很有道理,如果有人有更好的方法,我将很乐意为您提供建议。谢谢