html5 devicemotion加速总是会改变

时间:2016-02-09 16:30:55

标签: html5 devicemotion

我开发了一个Web应用程序,并希望使用devicemotion事件来获取加速度来测量速度和距离,但我注意到即使设备在平面上是静态的,也是y上的加速度值变化

    var clock = null, prevClock = new Date().getTime();
window.addEventListener("devicemotion", function(e) {
if (e.acceleration.x) {
    clock = new Date().getTime();
    var d = (clock - prevClock) / 1000;
    d *= d;
    motion.x = (e.acceleration.x);
    motion.y = (e.acceleration.y);
    motion.z = (e.acceleration.z);

    distance.x += (motion.x) * d;
    distance.y += (motion.y) * d;
    distance.z += (motion.z) * d;
    prevMotion = motion;
    prevClock = new Date().getTime();
}
}, true);

我如何测量准确的加速度。

1 个答案:

答案 0 :(得分:0)

你已经按照正确的方式做了。而且你也没有获得比这更准确的加速度。这是因为传感器非常敏感(或者说不够准确),即使你的设备只是躺在平坦的表面上,你也不会获得0的加速度。较新的手机拥有更准确的传感器。例如,iPhone 6+越来越接近0而不是我的Galaxy S4,但即使使用iPhone6 +,你也不会在平面上获得0加速度。