■ 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
使用例
↓↓↓↓↓↓↓↓↓↓↓