これがないドキュメントの最新バージョンです!
Click here for the latest released version.
geolocation.watchPosition
デバイスの現在の位置情報の変化を監視します。
var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
[geolocationError],
[geolocationOptions]);
パラメーター
- geolocationSuccess: 現在位置情報の取得成功時に呼ばれるコールバック関数を表します
- geolocationError: (オプション) エラー発生時に呼ばれるコールバック関数を表します
- geolocationOptions: (オプション) 位置情報取得のオプションを表します
返り値
- String: 位置変化を参照する watch ID を返します。 watch ID は
[geolocation.clearWatch](geolocation.clearWatch.html)
に渡すことで位置変化の監視を中止するために使われます。
概要
geolocation.watchPosition
関数は非同期関数です。位置情報に変化があった場合に、デバイスの現在位置を返します。デバイスが新しい位置情報を取得したとき、 [Position](Position/position.html)
オブジェクトとともに [geolocationSuccess](parameters/geolocationSuccess.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` オブジェクトを引数とする
//
function onSuccess(position) {
var element = document.getElementById('geolocation');
element.innerHTML = '緯度: ' + position.coords.latitude + '<br />' +
'経度: ' + position.coords.longitude + '<br />' +
'<hr />' + element.innerHTML;
}
// エラー時のコールバック関数は PositionError オブジェクトを受けとる
//
function onError(error) {
alert('コード: ' + error.code + '\n' +
'メッセージ: ' + error.message + '\n');
}
// もし30秒ごとに更新が取得できない場合、エラーが投げられる (オプション)
//
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { frequency: 30000 });
詳細な使用例
<!DOCTYPE html>
<html>
<head>
<title>デバイスプロパティーの使用例</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.2.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Cordova の読み込み完了まで待機
//
document.addEventListener("deviceready", onDeviceReady, false);
var watchID = null;
// Cordova 準備完了
//
function onDeviceReady() {
// もし30秒ごとに更新が取得できない場合、エラーが投げられる
var options = { frequency: 30000 };
watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
}
// onSuccess Geolocation
//
function onSuccess(position) {
var element = document.getElementById('geolocation');
element.innerHTML = '緯度: ' + position.coords.latitude + '<br />' +
'経度: ' + position.coords.longitude + '<br />' +
'<hr />' + element.innerHTML;
}
// エラー時のコールバック関数は PositionError オブジェクトを受けとる
//
function onError(error) {
alert('コード: ' + error.code + '\n' +
'メッセージ: ' + error.message + '\n');
}
</script>
</head>
<body>
<p id="geolocation">位置情報を監視中...</p>
</body>
</html>