如何根据phonegap中的加速度计x y z值计算位置

时间:2013-12-04 08:58:46

标签: javascript android cordova

我正在使用phonegap AccelListener来获取加速度计读数。我的代码如下:

var acc = [];
var watchId;
function startWatch() {

        var options = { frequency: 3000 };

        watchID = navigator.accelerometer.watchAcceleration(onSuccess,onError, options);
    }

    function stopWatch () {

        if (watchID) {
            navigator.accelerometer.clearWatch(watchID);
            watchID = null;
        }

    }

function onSuccess(acceleration) {
    console.log(acceleration);

        var element = 'Acceleration X: ' + acceleration.x         + '<br />' +
                            'Acceleration Y: ' + acceleration.y         + '<br />' +
                            'Acceleration Z: ' + acceleration.z         + '<br />' +
                            'Timestamp: '      + acceleration.timestamp + '<br />';
    console.log(element);
    acc.push(element);
    }
function onError() {
        alert('onError!');
    }

这将给我每3秒的x y z值。我知道加速度计值用于找出设备运动。但有没有办法从这些值计算位置。任何帮助?

1 个答案:

答案 0 :(得分:-1)

正如可以在cordova文档here中看到的那样,“加速度计是一种运动传感器,可以检测相对于当前设备方向的运动变化(delta),沿x,y和三维z轴。“因此,加速度计可以为您提供用户手机握持方式的角度。

要获取当前位置,您可以使用cordova提供的Geolocation插件。