こんにちは、福田です。
今回はHTML5の新機能である位置情報(Geolocation)を使ってみます。
方法としては、jQueryを使ってGeolocationAPIから取得します。
Geolocationで現在の緯度、経度を取得
$(function(){ if (!navigator.geolocation){ alert("Geolocationが使用できません"); } var option = { timeout : 10000 } navigator.geolocation.watchPosition(successCallback, errorCallback, option); function successCallback(position){ alert("緯度:" + position.coords.latitude); alert("経度:" + position.coords.longitude); } function errorCallback(error){ alert("エラー:" + error.code); } });
かなりお手軽です。上記ではlatitude(緯度)とlongitude(緯度)を取得していますが、他にもaltitude(高度)、heading(方角)などが取得できます。その他のプロパティやオプションについては、こちらのサイトが詳しく解説されています。
■Geolocation API-HTML5のAPI、および、関連仕様
http://www.htmq.com/geolocation/
精度について
GeolocationAPIはwifi基地局やIPアドレスからも取得を試みているので、GPSがない環境でも取得することができますが、環境によっては失敗したり、数km誤差が出るようです。今回の非GPS環境(wifi)では正確に取得することができました。
おまけ
現在地を元に、地球の裏側の地図を表示してみました。
さらに方角を取得し、加速度センサーと組み合わせれば「スマホを向けた先の地球の裏側を表示」といったことができるので、もう少しだけ面白くなりそうです。(Geolocationによる方角の取得は移動中でなければならないため、断念しました。。)
地球の裏側デモ
最後に
ブラウザの対応状況は2012年11月14日現在、以下のようになっています。
IE 9~/FireFox 3.5~/Safari 5~/Google Chrome 5~/Opera 10~
動作確認は、iPodtouch(4世代)iOS6 safari のwifi環境で行いました。