G-BRIDとは? 対応機種 FAQ ご利用上の注意 コラム

コラム

コラム >JavaScriptを利用した位置情報の取得方法

JavaScriptを利用した位置情報の取得方法を解説します。

Geolocation APIを利用する

Geolocation APIとは,JavaScriptで位置情報を取得するAPIのことで,現在W3Cで仕様を策定中ではありますが,FirefoxやGoogle Chrome,Safari,IE9など,いくつかのモダンなブラウザではすでに利用できます。

ただし,プラグインや設定などによって利用できるかどうかは変わってくるため,コードの中で利用可否の判定を行う場合は,ブラウザ名とバージョンで判定するのではなく,geolocationオブジェクトが利用可能かどうかで判定するのが一般的です。

位置情報を取り扱うgeolocationオブジェクトは,window.navigatorから取得することができます。window.navigator.geolocationについて,仕様では現在のところ以下の3つのメソッドが提供されています。

navigator.geolocation.getCurrentPosition( successCallback , errorCallback , option)
現在の位置を取得する
navigator.geolocation.watchPosition( successCallback , errorCallback , option)
位置を定期的に取得する
navigator.geolocation.clearWatch( watchId)
watchPositionの定期的な位置情報取得を止める

getCurrentPositionとwatchPositionの第一引数には,位置情報取得が成功したときのコールバック関数を指定します。コールバック関数は,以下のpositionオブジェクトを受け取ります。

position.coords 緯度経度などを保持するCordinatesオブジェクト。
position.timestamp 位置情報を取得した時刻。

緯度経度を保持するCordinatesオブジェクトは,以下のプロパティを保持しています。緯度経度に加えて,高度や方位,速度が定義されていますが,デバイスが対応していない場合は取得することはできません。

coords.latitude 緯度
coords.longitude 経度
coords.altitude 高度
coords.accuracy 正確性(値が小さいほど正確)
coords.altitudeAccuracy 高度の正確性
coords.heading 方位
coords.speed 速度

getCurrentPositionとwatchPositionの第二引数には,位置情報取得が失敗したときのコールバック関数を指定します。コールバック関数は,以下のerrorオブジェクトを受け取ります。

error.code エラーコード
1.位置情報の取得が許可されていない
2.位置情報の取得が利用できない
3.タイムアウト
error.message エラーメッセージ

getCurrentPositionとwatchPositionの第三引数には,関数実行時のオプションを指定します。

option.enableHighAccuracy より高い正確性を求める(ただし,取得時間が長くなる)
スマートフォンでこのオプションを指定するとGPSを利用する
option.timeout 処理のタイムアウト
option.maximumAge キャッシュされている位置情報オブジェクトを許容するキャシュ時間

watchPositionはlong値のidを返します。clearWatch 関数にこのidを渡すと,位置情報の監視を停止します。

▲TOP



会社案内  利用規約  プライバシーポリシー  お問い合わせ  한글  简体中文  繁體中文  English


©G-BRID All rights reserved.