Googleから、Gears API というブラウザをオフラインで使用するための拡張機能が提供されています。その中の一つに、Geolocation APIという機能が用意されています。
このGeolocation API を使うと、GPS、WI-FI、IPアドレスといった情報から、ブラウザ利用者の位置を取得することができるようになります。
端末にGearsがインストールされている必要がありますが、位置取得のためのコードは、JavaScriptを使ってシンプルに書くことができます。
var geo = google.gears.factory.create('beta.geolocation'); geo.getCurrentPosition( function(
pos) {
alert('lat:' + pos.latitude + ',lon:' + pos.longitude); });
一方Firefoxには、「Geode」という似たような機能をもつアドオンが提供されています。
こちらはWI-FIからの位置情報のみですが、JavaScriptを使って同じように記述することができます。
navigator.geolocation.getCurrentPosition(function(pos) {
alert( pos.latitude + ", " + pos.longitude );
})
よーくみてもらうとわかるのですが、Geodeの位置情報取得コードは、GearsのGeolocationAPIとまったく同じ名称のオブジェクトとメソッドが使われています。
これはどういうことかというと、実はGeolocation API自体が、W3Cによって策定が進められているオープンな仕様なのです。
-Geolocation API Specification
さらにいうと、W3CのGeolocation API Specification策定には、GoogleのGeolocation API開発者が大きく関わっているようなのです。
このGeolocation API SpecificationはHTMLの次バージョンであるHTML5で標準化される方向に進んでいるようです。
※追記 GeolocationとHTML5は別物だとコメントをいただきました。
Gearsについては、Database APIとHTML5の「Client-side DB」が対応していたりと、HTML5のテクノロジープレビュー的な意味合いも持っているのかもしれません。
今のところは一部ブラウザのアドオン機能でしかないGeolocation APIではありますが、HTML5に採用されるようになると、ブラウザが標準で機能を提供するようになりますので、一気に広まることが期待されます。
特にiPhoneのSafariでは、HTML5のローカルキャッシュをすでに実装しているという流れもあり、HTML5準拠のGeolocation APIを実装してくることは、ほぼ間違いないように思います。
今までは、
携帯電話のGPSから位置情報の取得をキャリア別に実装したり、
PlaceEngineを使ってWI-FIから位置情報を特定したり、
IPアドレスから位置情報を割り出すデータベースを利用したり
様々な位置情報取得技術を個別で実装する必要がありました。
今後はこういった作業から開発者が解放され、位置情報を活用したサービスがますます増えていくことが期待されるのであります。
こんにちは。
「このGeolocation API SpecificationはHTMLの次バージョンであるHTML5で標準化される方向」とはありますが、HTML5にはGeolocationは含まれません。Geolocation APIは、W3CのGeolocation WGが策定しています(HTML5はWHATWGとW3CのHTML WGが担当)。
>myakuraさん
ご指摘ありがとうございます。
GeolocationがHTML5に含まれるとどこかで聞いたような気がしたので上記のように書いてしまいました、、、うろ覚えで記事を書くものではないですね。
>myakuraさん
>maeda さん
こんにちは。中込と申します。
HTML5にGeolocationは含まれると、私は認識しています。
紛らわしいのですが、”HTML5″ ということばはおおむね2つの意味に使われます。
狭義のHTML5はHTML5仕様自体を指します。
広義のHTML5は、HTML5仕様をコア・スペックとして、Geolocation API仕様などを含めた次期Web環境を構成する技術セットを指します。
W3CのFAQにもあるとおり( http://www.w3.org/html/wiki/FAQs#What_is_HTML5.3F )、W3Cの立場は後者です。
なお、W3C HTML5 Logo( http://www.w3.org/html/logo )では、CLASS: DEVICE ACCESSの筆頭に Geolocation API が明記されています。