geolocation.getCurrentPosition

デバイスの現在位置を [Position](Position/position.html) オブジェクトとして返します。

navigator.geolocation.getCurrentPosition(geolocationSuccess,
                                         [geolocationError],
                                         [geolocationOptions]);

パラメーター

  • geolocationSuccess: 現在位置情報の取得成功時に呼ばれるコールバック関数を表します
  • geolocationError: (オプション) エラー発生時に呼ばれるコールバック関数を表します
  • geolocationOptions: (オプション) 位置情報取得のオプションを表します

概要

geolocation.getCurrentPositon 関数は非同期関数です。 [geolocationSuccess](parameters/geolocationSuccess.html) コールバック関数に、[Position](Position/position.html) オブジェクトをパラメーターとしてデバイスの現在位置を返します。エラーが発生した場合、 [PositionError](PositionError/positionError.html) オブジェクトとともに [geolocationError](parameters/geolocationError.html) コールバック関数が呼び出されます。

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

  • Android
  • BlackBerry WebWorks (OS 5.0 以上)
  • iOS
  • Windows Phone 7 (Mango)
  • Bada 1.2 & 2.x
  • webOS
  • Tizen

使用例

// 成功時のコールバック関数
// このメソッドは GPS の現在座標を保持する
// `Position` オブジェクトを引数とする
//
var onSuccess = function(position) {
    alert('緯度: '              + position.coords.latitude      + '\n' +
          '経度: '              + position.coords.longitude     + '\n' +
          '高度: '              + position.coords.altitude      + '\n' +
          '位置精度: '          + position.coords.accuracy      + '\n' +
          '高度精度: '          + position.coords.altitudeAccuracy + '\n' +
          '方位: '              + position.coords.heading       + '\n' +
          '速度: '              + position.coords.speed         + '\n' +
          'タイムスタンプ: '    + position.timestamp            + '\n');
};

// エラー時のコールバック関数は PositionError オブジェクトを受けとる
//
function onError(error) {
    alert('コード: '        + error.code    + '\n' +
          'メッセージ: '    + error.message + '\n');
}

navigator.geolocation.getCurrentPosition(onSuccess, onError);

詳細な使用例

<!DOCTYPE html>
<html>
  <head>
    <title>デバイスプロパティーの使用例</title>

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

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova 準備完了
    //
    function onDeviceReady() {
        navigator.geolocation.getCurrentPosition(onSuccess, onError);
    }

    // onSuccess Geolocation
    //
    function onSuccess(position) {
        var element = document.getElementById('geolocation');
        element.innerHTML = '緯度: '            + position.coords.latitude      + '<br />' +
                            '経度: '            + position.coords.longitude     + '<br />' +
                            '高度: '            + position.coords.altitude      + '<br />' +
                            '位置精度: '        + position.coords.accuracy      + '<br />' +
                            '高度精度: '        + position.coords.altitudeAccuracy + '<br />' +
                            '方位: '            + position.coords.heading       + '<br />' +
                            '速度: '            + position.coords.speed         + '<br />' +
                            'タイムスタンプ: '  + position.timestamp            + '<br />';
    }

    // エラー時のコールバック関数は PositionError オブジェクトを受けとる
    //
    function onError(error) {
        alert('コード: '        + error.code    + '\n' +
              'メッセージ: '    + error.message + '\n');
    }

    </script>
    </head>
    <body>
    <p id="geolocation">位置情報を取得中...</p>
  </body>
</html>