このページの本文へ

古籏一浩の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);


この連載の記事

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

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

みんなが買ってる最新アイテムはコレだ!

VOCALOID3 スターターIA ARIA ON THE PLANETES

VOCALOID3 スターターIA ARIA ON THE PLANETES

ヤマハ

17,745円〜

24人が購入

Google上位表示 64の法則 (WEB PROFESSIONAL)

Google上位表示 64の法則 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

71人が購入

標準HTML5タグリファレンス (WEB PROFESSIONAL)

標準HTML5タグリファレンス (WEB PROFESSIONAL)

アスキー・メディアワークス

2,205円〜

60人が購入

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

スペックコンピュータ

4,262円〜

23人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

39人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

9人が購入

Windows 7 Home Premium 通常版 Service Pack 1 適用済み

Windows 7 Home Premium 通常版 Service Pack 1 適用済み

マイクロソフト

20,271円〜

4人が購入

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

59人が購入

Amazon.co.jp