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 - 以度数和磁场为单位的设备方向的主要内容,如果未能解决你的问题,请参考以下文章

GeoTools 从以米为单位的 CRS 转换为以度数为单位的 CRS (WGS84)

从度数获取方向

PhoneGap:iOS下的设备方向

高中物理 磁场 帮忙画一下叠加的图哈 谢谢

iPhone Phonegap 方向问题

关于电磁场中的E.B.D.H的理解