标准化加速度计输出

时间:2012-12-22 01:54:32

标签: javascript html5 mobile cross-browser accelerometer

我目前正在编写一个HTML5网络应用程序,该应用程序严重依赖于加速计数据。我们的想法是让应用程序尽可能地跨平台(iPhone,iPad,机器人,Windows Phone等)

我遇到了麻烦,因为首先,有几种方法可以通过HTML5加速设备的加速:

  • DeviceMotionEvent
  • DeviceOrientationEvent
  • navigator.accelerometer

其次,不同的设备给出不同的值。例如,一个设备可能会给出介于0-10和另一个0-100之间的值。为了使这更令人沮丧,同一设备上的不同浏览器也不一致。

有没有办法以某种方式获取这些信息并以一种方式使用它,我不必为设备和浏览器的每个组合编写单独的案例?例如,将加速度计数据从原始的,无意义的数字转换为设备的方向,以度为单位?

1 个答案:

答案 0 :(得分:0)

您可以随时为每个流行设备设置除数,或以某种方式获取最大值和最小值。如果最小数为负数,则从当前值中减去该数,使其为正数,然后除以最大值。然后你应该在0和1之间得到一个小数。不保证。我用随机数测试了这个,但没有实际的加速器输入,它似乎将数字转换为小数。

if (device=="iphone")
{
minval=-10 ; maxval=10
    }
if (device=="somethingelse")
    {
    minval=0 ; maxval=100
        }
if (minval<0)
        {
        rawdataa = rawdata - minval
        }
    rawdataaa = rawdataa / maxval
    alert(rawdataaa);