Phonegap - 设备方向的度数和磁场

8

请问通过Phonegap是否可以获取Android设备的方向(手机相对于地面的角度)?此外,是否也可以获取磁场信息?

3个回答

13

PhoneGap 文档

指南针是一种感应器,用于检测设备的朝向或方向。它以0到359.99度的角度测量方向。

指南针方向信息通过 CompassSuccess 回调函数返回 CompassHeading 对象。

function onSuccess(heading) {
    alert('Heading: ' + heading.magneticHeading);
};

function onError(error) {
    alert('CompassError: ' + error.code);
};

navigator.compass.getCurrentHeading(onSuccess, onError);

如果您想访问手机的x、y或z轴的旋转度数,可以使用原生HTML5。这是一个关于此主题的很棒的文章:THIS END UP: USING DEVICE ORIENTATION

代码示例:

  window.addEventListener('deviceorientation', function(eventData) {
// gamma is the left-to-right tilt in degrees, where right is positive
var tiltLR = eventData.gamma;

// beta is the front-to-back tilt in degrees, where front is positive
var tiltFB = eventData.beta;

// alpha is the compass direction the device is facing in degrees
var dir = eventData.alpha

// deviceorientation does not provide this data
var motUD = null;

// call our orientation event handler
deviceOrientationHandler(tiltLR, tiltFB, dir, motUD);
}, false);

示例


嗨,Stephan,感谢您的回复 - 我想我没有清楚地表达我的问题。我知道有指南针,但是我需要的是手机相对于地面倾斜的角度。指南针也可以确定这一点吗? - user1809790
太好了!另外,有没有办法在Phonegap中锁定轴?原因是如果用户将手机放平,则z轴将指向上方。但是,如果用户将手机放在车用电话支架中,则z轴很可能会朝向并远离您。不确定如何解决这个问题 :( - user1809790
@user1809790 我不这样认为。我曾经遇到过同样的问题,而且找不到一个简单的方法来解决这个问题。您可能需要规范化页面加载时接收到的数据,并为用户提供校准方向的方法。 - Stephan Bönnemann-Walenta
你有没有关于如何进行规范化的教程?我对这些都很新,正在尝试使用Phonegap和JQuery Mobile创建应用程序。 - user1809790
@user1809790 正规化(normalization)的意思是你不使用报告的绝对值,而是记录一个参考方向(例如在应用程序启动时或我提到的校准按钮上),并使用相对于这些值的所有值。很遗憾,我手头没有教程 :/ - Stephan Bönnemann-Walenta

1

使用html5可以确定设备的方向。

请访问此处获取更多详细信息。

由于我们可以使用html5/phonegap使用加速度计,因此可以从中获取方向角度和所有相关数据。


0

加速度计和陀螺仪类似吗?它的精度如何? - user1809790

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接