Cordova-geolocation
提供:Dev Guides
コルドバ-ジオロケーション
位置情報は、デバイスの緯度と経度に関する情報を取得するために使用されます。
ステップ1-プラグインのインストール
次のコードを*コマンドプロンプト*ウィンドウに入力することにより、このプラグインをインストールできます。
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-geolocation
ステップ2-ボタンを追加する
このチュートリアルでは、現在の位置を取得する方法と変更を監視する方法を示します。 まず、これらの関数を呼び出すボタンを作成する必要があります。
<button id = "getPosition">CURRENT POSITION</button>
<button id = "watchPosition">WATCH POSITION</button>
手順3-イベントリスナーの追加
次に、デバイスの準備ができたときにイベントリスナーを追加します。 以下のコードサンプルを index.js の onDeviceReady 関数に追加します。
document.getElementById("getPosition").addEventListener("click", getPosition);
document.getElementById("watchPosition").addEventListener("click", watchPosition);
ステップ3-関数を作成する
2つのイベントリスナーに対して2つの関数を作成する必要があります。 1つは現在の位置を取得するために使用され、もう1つは位置を監視するために使用されます。
function getPosition() {
var options = {
enableHighAccuracy: true,
maximumAge: 3600000
}
var watchID = navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
function onSuccess(position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};
function onError(error) {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
}
function watchPosition() {
var options = {
maximumAge: 3600000,
timeout: 3000,
enableHighAccuracy: true,
}
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
function onSuccess(position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};
function onError(error) {
alert('code: ' + error.code + '\n' +'message: ' + error.message + '\n');
}
}
上記の例では、 getCurrentPosition と watchPosition の2つのメソッドを使用しています。 どちらの機能も3つのパラメーターを使用しています。 CURRENT POSITION ボタンをクリックすると、アラートに位置情報の値が表示されます。
*WATCH POSITION* ボタンをクリックすると、同じアラートが3秒ごとにトリガーされます。 これにより、ユーザーのデバイスの動きの変化を追跡できます。
NOTE
このプラグインはGPSを使用しています。 時には値を時間通りに返せず、リクエストはタイムアウトエラーを返します。 これが、 enableHighAccuracy:true および maximumAge:3600000. を指定した理由です。これは、要求が時間通りに完了しない場合、代わりに最後の既知の値を使用することを意味します。 この例では、maximumAgeを3600000ミリ秒に設定しています。