「cordova-plugin-geolocation」
を利用することで可能です。プロジェクトにpluginをインストールして利用します。 プロジェクトへのインストール
プロジェクトへのインストールは、下記のコマンドを実行します。ionic cordova plugin add cordova-plugin-geolocation
コードの実装
実装するには、下記のメソッドが利用可能です。navigator.geolocation.getCurrentPosition(geolocationSuccess,
[geolocationError],
[geolocationOptions]);
var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
[geolocationError],
[geolocationOptions]);
navigator.geolocation.clearWatch(watchID);
navigator.geolocation.getCurrentPosition
PositionオブジェクトをパラメータとしてgeolocationSuccessコールバックに、デバイスの現在位置を返します。 エラーがある場合、geolocationErrorコールバックにPositionErrorオブジェクトが渡されます。
geolocationError:エラーが発生した場合に実行されるコールバック。※オプション
geolocationOptions:ジオロケーションオプション。※オプション
navigator.geolocation.watchPosition
位置の変化が検出されたときのデバイスの現在の位置を返します。 デバイスが新しい場所を取得すると、geolocationSuccessコールバックはPositionオブジェクトをパラメータとして実行されます。 エラーがある場合、geolocationErrorコールバックはPositionErrorオブジェクトをパラメータとして実行されます。
geolocationError:エラーが発生した場合に実行されるコールバック。※オプション
geolocationOptions:ジオロケーションオプション。※オプション
geolocationOptions
ジオロケーションの位置の取得をカスタマイズするためのオプションのパラメータ。
{enableHighAccuracy:true, timeout:5000, maximumAge:3000 };
navigator.geolocation.clearWatch
watchIDパラメータで参照されるデバイスの場所の変更を監視しないようにします。
Position
Positionオブジェクトは、ジオロケーションAPIによって作成された位置座標とタイムスタンプが含まれます。
timestamp:座標の作成タイムスタンプ。 (DOMTimeStamp)
coords(座標)
longitude:10進数の経度。 (数値)
altitude:楕円の上のメートルの位置の高さ。 (数値)
accuracy:メートル単位の緯度と経度座標の精度レベル。 (数値)
altitudeAccuracy:高度座標の精度レベル(メートル単位)。 (数値)
heading:真の北に相対して時計回りに数えて指定された移動の方向。 (数値)
speed:デバイスの現在の地上速度。メートル/秒で指定します。 (数値)
サンプルソース
ionViewDidLoad() {
this.loadMap();
navigator.geolocation.getCurrentPosition(this.onSuccess, this.onError);
}
ionViewDidLeave(){
this.map.remove();
}
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');
};
// onError Callback receives a PositionError object
//
onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}