■ Geolocation API

Geolocation API は、Webアプリケーションでブラウザが実行しているPCの現在の地理的位置情報(軽度・緯度)にアクセスすることができるAPIです。地図アプリケーションと一緒に利用されることが多いのではと思います。

Geolocation API は以前から、Google Gearsでオブライン機能として実装されていたものでそれが W3CのGeolocation API Sepecification 策定に至ったようで、Geolocation API は厳密にはHTML5の部類ではないものの、HTML5 APIの標準化とともに注目を集めるようになったため、ここでの説明とします。

Geolocation APIは使用するデバイスによって取得される位置が異なります。
携帯電話やスマートフォンなどはGPSを搭載しているため、高精度な緯度・経度を取得することができます。しかし、デスクトップパソコンにはGPSが搭載されておらず、Wi-Fiも通常は搭載していません。

GPS情報がなくてもGeolocation APIは様々な手段を通して位置情報を取得しようとします。Wi-Fi基地局や携帯電話基地局、IPアドレス情報から推定するため、デスクトップパソコンでも取得することは可能な場合があります。しかしGPSほどの精度がないため、実際の位置とは数kmも離れた位置を指すことがあります。またブラウザーによっても結果が異なることがあります。


サポートブラウザ



ユーザー許可
位置情報はプライバシーの1つとして扱われるため、Geolocation APIではユーザーに対して位置情報を提供してもよいかどうかの許可をとるようになっています。ブラウザーでは以下のように確認ダイアログが表示されるようになっています。

IE9の場合
Firefox8の場合
Opera11の場合

測地系
Geolocation APIでの測地系は世界測地系(WGS84)です。Geolocation APIから取得した緯度・経度を地図サービスなどで利用する場合にはこれを考慮して地図サービスでの位置情報を利用する必要があります。

APIリファレンス
window.navigator.geolocation
メソッド 説明 引数 戻り値
getCurrentPosition 1度だけ非同期により現在位置を取得する。 1 onSuccess 位置情報取得に成功したときのコールバック関数
*2 onError 位置情報取得に失敗したときのコールバック関数
*3 options オプション
watchPosition 位置情報を監視し、非同期で位置情報取得を行う。
clearWatchメソッドで停止されるまで監視し続けます。
1 onSuccess 位置情報取得に成功したときのコールバック関数 watchId
*2 onError 位置情報取得に失敗したときのコールバック関数
*3 options ポジションオプション
clearWatch 位置情報取得監視を停止します。 1 watchId 停止するwatchId
ポジションオプション
getCurrentPositionメソッド、watchPositionメソッドのオプション引数を示します。JavaScriptオブジェクトリテラルとして設定されます。
プロパティ 説明 タイプ
enabelHighAccuracy 正確性の高い位置情報を要求するかどうかを指定します。 boolean
timeout 位置を取得するのに許容される時間をミリ秒単位で指定します。 integer
maximumAge キャッシュされた位置情報の有効期間をミリ秒で指定します。
この期限を過ぎた位置情報は破棄され、新しい位置情報の取得が試行されます。
0を指定すると毎回新しい位置情報を取得します。
integer
event
getCurrentPositionメソッド、watchPositionメソッドの成功コールバック関数へのパラメータと指定渡されます。
プロパティ 説明 タイプ
coords.latitude 数値による度数で緯度を取得します。 Number
coords.longitude 数値による度数で経度を取得します。 Number
coords.accuracy 緯度と経度の精度レベルを数値で取得します。(単位:メートル) Number
coords.altitude GPS高度を数値で取得します。  
coords.altitudeAccuracy GPS高度の精度レベルを数値で取得します。(単位:メートル)  
coords.heading デバイスの進行方向を0以上360未満の数値で取得します。
真北に対する時計回りの角度で表されます。
 
coords.speed デバイスの移動速度を数値で取得します。(単位:メートル/秒)  
timestamp 位置情報が取得できたときのタイムスタンプを取得します。 Date
getCurrentPositionメソッド、watchPositionメソッドの失敗コールバック関数へのパラメータと指定渡されます。
プロパティ 説明 タイプ
code エラーコードを取得します。
integer
message エラーメッセージを取得します。 string
定数 説明 タイプ
PERMISSION_DENIED 位置情報取得許可が拒否されたことを表す定数(値:1) integer
POSITION_UNAVAILABLE 位置情報の取得に失敗したことを表す定数(値:2) integer
TIMEOUT タイムアウトが発生したことを表す定数(値:3) integer

使用例
↓↓↓↓↓↓↓↓↓↓↓