カメニッキ

カメとインコと釣りの人です

HTML5でGeolocationAPIを使用する

ブラウザのみで位置情報の取得が可能になりました。

WiFi/GPS/携帯電話基地局/IPアドレス
といったものから位置情報を算出し、ブラウザへ渡します。
といっても勝手に読み取られる訳ではなく、利用者の許可のもとでのみブラウザは位置情報へアクセスできます。
※ブラウザにアラートがあがり、確認させる

以下のように位置情報を取得します。

<script type="text/javascript">
//GeolocationAPIの使用可否はnavigetor.geolocationが持っています
if(!navigator.geolocation){
//使用不可 メッセージを出力するなどの処理を記述します
}else{
//使用可能
//getCurrentPositionを用いて現在の位置情報を取得できます
//引数は?成功時のコールバック?失敗時のコールバック?オプションを指定します
navigator.geolocation.getCurrentPosition(success, error, option);
}
/*
optionの種類
-enableHighAccuracy:true or false
-timeout:タイムアウトまでの時間をミリ秒
-maximumAge:位置情報の有効期間をミリ秒
{}で囲って渡す
*/

//成功した場合のコールバック関数
//positionオブジェクトが渡される
function success(position){
//緯度の取得
var A1 = position.coords.latitude;
//経度の取得
var A2 = position.coords.longitude;
//高度の取得
var A3 = position.coords.altitude;
//誤差の取得(m単位)
var A4 = position.coords.accuracy;
//方角の取得(度単位)
var A5 = position.coords.heading;
//速度の取得
var A6 = position.coords.speed(m/s)
/*
※端末により対応していないものがある。その場合はnullが返る
上記の値を使用しての何らかの処理
*/
}

//失敗した時のコールバック関数
//positionErrorオブジェクトが渡される
function error(positionError){
//エラーコードを取得
var A1 = positionError.code;
//エラーメッセージを取得
var A2 = positionError.message;
/*
エラーコードの種類
-1(PERMISSION_DENIED)->GeolocationAPI使用不可
-2(POSITION_UNAVAILABLE)->位置情報取得不可
-3(TIMEOUT)->タイムアウト
-0(UNKNOWN_ERROR)->不明なエラー
*/
}