ついに iPhone Safari ブラウザから位置情報を取得できるようになります
以前から、国内のモバイルブラウザのように、iPhone のブラウザからでも GPS を使えるようにすべきということをつねづね言ってきたわけですが、ようやく時期バージョンから iPhone でも実装されるようです。
iPhone's Safari Browser to include Geolocationこのブログでも度々言及してきた、W3C の Geolocation API の仕様に沿っているものになるようです。
というわけで、さっそく実装してみました。http://lab.cirius.co.jp/geoloc.html
(iPhone OS 3.0 beta5 以降の Safari ブラウザで閲覧してください。)
上記URL にアクセスすると、まずは Safari 自体の Geolocation 機能の利用許可が表示されます。

次に、このページが存在するドメインに対して Geolocation 機能の利用許可が表示されます。

取得したロケーションを Google Maps に表示してみました。ちゃんとシリウスのオフィスが表示されています。
確認ダイアログですが、そのドメインでの最初の利用時にのみ聞かれて、一度許可をすればそれ以後は表示されないようになっています。
この辺は、GPS を利用する度に都度許可をしなくてはいけない日本の仕組みよりもスマートですね。
実装方法は上のページのソースを見てもらえればわかりますが、
navigator.geolocation.watchPosition(locupdate, handleError);
というメソッドで、イベントハンドラを登録するだけで使えます。
イベントハンドラ側の function は以下のようにしてみました。
function locupdate(pos) {
count ++;
var d = document.getElementById("d");
d.innerHTML = "lat : " + pos.coords.latitude +
"<br/>long : " + pos.coords.longitude +
"<br/>accuracy : " + pos.coords.accuracy + "<br/>";
if (count == 1){
initialize(pos.coords.latitude, pos.coords.longitude);
}
}
pos というパラメータに取得されたユーザの位置情報が含まれています。initialize という関数の中で、与えられた緯度経度の Google Maps 地図を表示しています。
(locupdate は位置情報を連続的に更新するので、最初の取得時にのみ地図を表示するようにしています。)
関連記事
Gears の Geolocation API の Wi-Fi 測位を使ってみたFirefoxの位置情報把握アドオン「Geode」を使ってみた
Google ClientLocation API を使って IP アドレスから現在地を取得
- Cirius Lab.内リンク
- ラボトップ
- Geo Platform API
- ジオメディアサービス
- 最近のブログ記事
- 実践:GeoKit と iPhone で作る位置情報アプリケーション(後編)
- 実践:GeoKit と iPhone で作る位置情報アプリケーション(中編)
- 実践:GeoKit と iPhone で作る位置情報アプリケーション(前編)
- WEB+DB プレスで、位置情報サービスの特集を書きました
- 7/30(金) ジオメディアサミット名古屋
- 機は熟した。ジオメディアが今熱い:第5回ジオメディアサミット開催しました。
- 第5回ジオメディアサミット、ライトニングトーク登壇者決定!
- 第5回ジオメディアサミットライトニングトーク枠争奪バトル
- 第5回ジオメディアサミット開催いたします!
- クックパッドさんとの合同勉強会:実践的な開発の裏側
コメントする