このページの本文へ

PROGRAMMING 古籏一浩のJavaScriptラボ第28回

加速度センサーで操縦する地図サイトを作ろう

2010年03月12日 11時00分更新

古籏一浩

  • この記事をはてなブックマークに追加
本文印刷

加速度センサーの値を取得する

 まずは単純に加速度センサーの値を取得してみましょう。Firefox 3.6では、PC本体の傾きが変化した場合、MozOrientationというイベントが発生します。MozOrientationイベントが発生したら傾きを取得するイベントハンドラを呼び出します。イベントハンドラ(関数)には、どの方向に傾いたかを示す値を格納したオブジェクトが渡されます。

 オブジェクトには左右(横)方向の傾きを示すxプロパティ、奥~手前(縦)の傾きを示すyプロパティ、上下(重力)への加速度を示すzプロパティがあります。x, yプロパティは-1.0~1.0、zは0~1.0の小数値になります。

傾けた方向によって傾きを示す数値が取得できる。zは上(下)方向の加速度になる
傾けた方向によって傾きを示す数値が取得できる。zは上(下)方向の加速度になる

 サンプル01は、PCを傾けたり上昇させたりしたとき、加速度の値を表示するスクリプトです。PCを上昇させなければzの値は1になります。重力の弱いところや無重力空間であればzの値は0になるようです。詳しくはMDC (Mozilla Developer Center) を参照してください。

PCを傾けるとx,y,zの値が変化する
サンプル01。PCを傾けるとx,y,zの値が変化する

サンプル01[HTML]


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
        <title>Sample</title>
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
        <link rel="stylesheet" href="css/main.css" type="text/css" media="all">
        <script type="text/javascript" src="js/sample.js"></script>
    </head>
    <body>
        <h1>加速度センサーの値を表示</h1>
        <div id="sensor"></div>
    </body>
</html>


サンプル01[JavaScript:sample.js]


window.addEventListener("MozOrientation", function(orientData){
    var x = orientData.x; // 横方向の傾き
    var y = orientData.y; // 縦方向の傾き
    var z = orientData.z; // 上下方向の加速度
    document.getElementById("sensor").innerHTML = "x:"+x+"<br>y:"+y+"<br>z:"+z;
}, true);


Web Professionalトップページバナー

この記事の編集者は以下の記事をオススメしています

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く