コンパス (Compass)

コンパス (Compass)

デバイスの向いている方向に関する情報を取得します。

メソッド

引数


compass.getCurrentHeading

現在のコンパスの向きを取得します。

navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);

概要

コンパスはデバイスが向いている方向を感知するセンサーです。コンパスはその方角を0から359.99の範囲で計測します。

コンパスの向きは compassSuccess コールバック関数を通じて返ります。

サポートされているプラットフォーム

使用例

function onSuccess(heading) {
    alert('現在の方位: ' + heading);
};

function onError() {
    alert('エラーが発生しました。');
};

navigator.compass.getCurrentHeading(onSuccess, onError);

詳細な使用例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>コンパスの使用例</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // PhoneGapの読み込みを待機
    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

    // PhoneGap準備完了
    //
    function onDeviceReady() {
        navigator.compass.getCurrentHeading(onSuccess, onError);
    }

    // onSuccess: 現在の方位を取得
    //
    function onSuccess(heading) {
        alert('現在の方位: ' + heading);
    }

    // onError: 方位の取得に失敗
    //
    function onError() {
        alert('エラーが発生しました。');
    }

    </script>
  </head>
  <body onload="onLoad()">
    <h1>使用例</h1>
    <p>getCurrentHeading</p>
  </body>
</html>

compass.watchHeading

コンパス方位を一定の時間間隔で取得します。

var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);

概要

compass.watchHeading 関数は一定の時間間隔でデバイスの現在の方位を取得します。

方位情報が取得されるごとに compassSuccess コールバック関数が実行されます。 時間間隔は campassOptions オブジェクトの frequency パラメータを通じてミリ秒単位で指定します。

この関数の返り値であるwatchIDには、コンパスの監視間隔への参照が格納されます。 このIDは compass.clearWatch 関数を用いて監視を停止に使用します。

サポートされているプラットフォーム

使用例

function onSuccess(heading) {
    var element = document.getElementById('heading');
    element.innerHTML = '方位: ' + heading;
};

function onError() {
    alert('エラーが発生しました。');
};

var options = { frequency: 3000 };  // 3秒ごとに更新

var watchID = navigator.compass.watchHeading(onSuccess, onError, options);

詳細な使用例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>コンパスの使用例</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // ウォッチIDが現在の `watchHeading` を参照
    var watchID = null;

    // PhoneGapの読み込みを待機
    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

    // PhoneGap準備完了
    //
    function onDeviceReady() {
        startWatch();
    }

    // コンパスの監視を開始
    //
    function startWatch() {

        // Update compass every 3 seconds
        var options = { frequency: 3000 };

        watchID = navigator.compass.watchHeading(onSuccess, onError, options);
    }

    // コンパスの監視を停止
    //
    function stopWatch() {
        if (watchID) {
            navigator.compass.clearWatch(watchID);
            watchID = null;
        }
    }

    // onSuccess: 現在の方位を取得
    //
    function onSuccess(heading) {
        var element = document.getElementById('heading');
        element.innerHTML = '方位: ' + heading;
    }

    // onError: 方位取得に失敗
    //
    function onError() {
        alert('エラーが発生しました。');
    }

    </script>
  </head>
  <body onload="onLoad()">
    <div id="heading">方位を待機</div>
    <button onclick="startWatch();">ウォッチ開始</button>
    <button onclick="stopWatch();">ウォッチ中止</button>
  </body>
</html>

compass.clearWatch

watchID パラメータによって参照されるコンパスの監視を停止します。

navigator.compass.clearWatch(watchID);

サポートされているプラットフォーム

使用例

var watchID = navigator.compass.watchHeading(onSuccess, onError, options);

// ... 後に続く ...

navigator.compass.clearWatch(watchID);

詳細な使用例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>コンパスの使用例</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // watchIDは現在のウォッチ方位を参照します
    var watchID = null;

    // PhoneGapの読み込みを待機
    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

    // PhoneGap準備完了
    //
    function onDeviceReady() {
        startWatch();
    }

    // コンパスのウォッチを開始
    //
    function startWatch() {

        // 3秒ごとにコンパス情報を更新
        var options = { frequency: 3000 };

        watchID = navigator.compass.watchHeading(onSuccess, onError, options);
    }

    // コンパスのウォッチを停止
    //
    function stopWatch() {
        if (watchID) {
            navigator.compass.clearWatch(watchID);
            watchID = null;
        }
    }

    // onSuccess: 現在の方位を取得
    //
    function onSuccess(heading) {
        var element = document.getElementById('heading');
        element.innerHTML = '方位: ' + heading;
    }

    // onError: 方位の取得に失敗
    //
    function onError() {
        alert('エラーが発生しました。');
    }

    </script>
  </head>
  <body onload="onLoad()">
    <div id="heading">方位情報を取得しています...</div>
    <button onclick="startWatch();">ウォッチ開始</button>
    <button onclick="stopWatch();">ウォッチ終了</button>
  </body>
</html>

compassSuccess

コンパス方位の取得に成功したときに呼び出されるコールバック関数です。

function(heading) {
    // 任意のコード
}

パラメータ

使用例

function onSuccess(heading) {
    alert('現在の方位: ' + heading);
};

compassError

コンパス方位の取得に失敗したときに呼び出されるコールバック関数です。

function() {
    // エラー処理を実装
}

compassOptions

コンパスの設定をカスタマイズするためのパラメータを表します。

オプション