Phonegap - 以度数和磁场为单位的设备方向
Posted
技术标签:
【中文标题】Phonegap - 以度数和磁场为单位的设备方向【英文标题】:Phonegap - Device Orientation in degrees & Magnetic Field 【发布时间】:2012-12-18 14:18:57 【问题描述】:谁能告诉我是否有可能通过 Phonegap 获得以度为单位的 android 设备方向(手机相对于地面的角度)?还有,是不是也可以得到磁场?
【问题讨论】:
【参考方案1】:PhoneGap Docs
指南针是一种传感器,可检测设备指向的方向或航向。它测量从 0 到 359.99 度数的航向。
指南针航向信息通过 CompassHeading 返回 使用 compassSuccess 回调函数的对象。
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);
【讨论】:
嗨,斯蒂芬,感谢您的回复 - 我想我的问题没有说清楚。我知道指南针,但是我需要的是手机相对于地面倾斜的角度。这也可以用指南针来确定吗? 太棒了!另外,有没有办法将轴锁定在phonegap中?原因是如果用户将手机平放,z轴会指向上方。但是,如果用户将手机放在车载电话支架中,z 轴很可能会指向和远离您。不知道如何解决这个问题:( @user1809790 我不这么认为。我曾经遇到过同样的问题,但找不到解决此问题的简单方法。您可能必须对页面加载时收到的数据进行规范化,并为用户提供一种校准方向的方法。 你有任何关于如何进行标准化的教程吗?我对这一切都很陌生,正在尝试使用 Phonegap 和 JQuery Mobile 创建一个应用程序 @user1809790 标准化只是意味着您不使用报告的绝对值,但您记录了参考方向(例如,在应用程序启动或我提到的校准按钮上)并使用与这些相关的所有值价值观。不,不幸的是我手头没有教程:/【参考方案2】:可以使用html5判断设备方向
访问 here了解更多详情。
由于我们可以通过 html5/phonegap 使用加速度计,我们可以从中获取方向角度和所有此类数据。
【讨论】:
【参考方案3】:据我所知,在 phonegap android 中您可以获得accelerometer 数据
和 compass数据
【讨论】:
加速度计类似于陀螺仪吗?它有多准确?以上是关于Phonegap - 以度数和磁场为单位的设备方向的主要内容,如果未能解决你的问题,请参考以下文章