JavaScript でスマホの加速度センサーやジャイロによる加速度、向き、傾きの値を取得する。DeviceOrientationEventとDeviceMotionEvent。
対象 : Android Chrome、iOS(iPhone、iPod touch)Safari
<div id="ex_orientation"></div> <script> window.addEventListener('deviceorientation', function(e){ var output = "<b>absolute</b><br />" + e.absolute + "<br /><br />" + "<b>alpha(z軸)GPS有りは北が0、なしは最初の位置が0</b><br />" + e.alpha + "<br /><br />" + "<b>beta(x軸)前後の傾き</b><br />" + e.beta + "<br /><br />" + "<b>gamma(y軸)左右の傾き</b><br />" + e.gamma; document.getElementById('ex_orientation').innerHTML = output; }, false); </script>deviceorientationイベントにてabsolute、alpha、beta、gammaの値を取得できる。
<div id="ex_motion"></div> <script> window.addEventListener('devicemotion', function(e){ var output = "<b>acceleration.x(x軸の加速度)</b><br />" + e.acceleration.x + "<br /><br />" + "<b>acceleration.y(y軸の加速度)</b><br />" + e.acceleration.y + "<br /><br />" + "<b>acceleration.z(z軸の加速度)</b><br />" + e.acceleration.z + "<br /><br />" + "<b>accelerationIncludingGravity.x(x軸の加速度)左右の傾きは水平0</b><br />" + e.accelerationIncludingGravity.x + "<br /><br />" + "<b>accelerationIncludingGravity.y(y軸の加速度)前後の傾きは水平0</b><br />" + e.accelerationIncludingGravity.y + "<br /><br />" + "<b>accelerationIncludingGravity.z(z軸の加速度)前後の傾きは垂直0</b><br />" + e.accelerationIncludingGravity.z + "<br /><br />" + "<b>rotationRate.alpha(z軸回転)</b><br />" + e.rotationRate.alpha + "<br /><br />" + "<b>rotationRate.beta(x軸回転)</b><br />" + e.rotationRate.beta + "<br /><br />" + "<b>rotationRate.gamma(y軸回転)</b><br />" + e.rotationRate.gamma + "<br /><br />" + "<b>interval(デバイスからデータを取得する間隔・ミリ秒or秒)</b><br />" + e.interval; document.getElementById('ex_motion').innerHTML = output; }, false); </script>加速度センサーやジャイロスコープが搭載されていないスマホでは accelerationIncludingGravity のみ表示さ、他はnullとなる。