Mozillaは、最近W3Cが取り組んでいる地理的な位置情報へスクリプトでアクセスできるようにするためのAPIの仕様定義を使って、GeolocationサポートをFirefox3.5に組み込むと発表した。これは、先立つOpera社の発表、自社のブラウザでGeolocationをサポートとも符合する。このようにブラウザがGeolocationサポートすることによって、位置情報を認識するアプリケーションは広まるだろうか?
W3Cドラフトで提案されているように、Geolocation APIは、実装をホストしているデバイスに付随する、例えば緯度と経度のような位置情報への高レベルインタフェースである。API自身は、下層にある位置情報ソースを選ばない。位置情報の一般的なソースとしては、全地球位置測定システム(GPS)やネットワーク信号(例えばIPアドレス、RFID、WiFiやBluetooth MACアドレス、GSM/CDMAセルID)から推測される位置情報がある:
以下のコードで、位置情報を得る基本的な方法を例示する:
一回の呼び出しで位置情報を得るリクエストの例。
function showMap(position) { // Show a map centered at (position.coords.latitude, position.coords.longitude). } // One-shot position request. navigator.geolocation.getCurrentPosition(showMap);
ドラフト仕様でも、想定しうるプライバシー上の問題に対処している:
今バージョンの仕様で規定されているAPIは、ホストしているデバイスの地理学的位置を得るのに使うことができる。ほとんどすべてのケースにおいては、この情報で(デバイス自身の位置だけではなく)デバイスを使っているユーザの位置も明らかになる。このことによってユーザのプライバシーを侵害する可能性が生じる。この仕様に従っている実装では、ユーザのプライバシーを保護するメカニズムを提供しなければならない。そして、このメカニズムでは、位置情報を提供しようとしていることをユーザに告知し、同意を得られない場合には、位置情報を提供してはならない。
この強力なAPIは、 Firefoxの次のリリースである3.5においてネイティブに利用できるようになる:
動作概要
位置情報を扱えるウェブサイトを訪問すると、Firefoxは位置情報を共有したいかどうか、利用者に問い合わせる。
利用者から同意が得られた場合には、Firefoxは近隣のワイヤレスアクセスポイントとコンピュータの IPアドレスを調べる。その後で、Firefoxはデフォルトの地理場所サービス提供者であるGoogle Location Servicesに、この情報を送り、利用者の位置を推定しようとする。推定された位置は、情報を要求したウェブサイトとそれ以降共有される。
利用者から同意が得られない場合には、Firefoxは何もしない。
Opera社も、Geolocation機能を備えた版を発表した:
我々は、位置情報を扱える初めてのOperaをリリースできたことを喜んでいます。W3Cの位置情報ワーキンググループは、つい最近、位置情報API仕様のワーキングドラフトをリリースしました。Opera社ではそのAPIをサポートする初めての実験ビルドリリースしています。
ウェブページのJavascriptコードで、ブラウザの現在の緯度と経度を取得する際に、そのAPIが使われます。
ウェブで位置情報を扱うのは、目新しいことではありません。多くのサイトでは、大部分は広告ですが、すでにブラウザのIPアドレスを使っています。あなたも、[あなたの町]の友達を見つけようというバナーをみたことがあるでしょう。しかし、そのメソッドは不正確なことで評判になるぐらいで、より高等な位置情報サービスに適用するのはまず無理です。その一方で、ブラウザを実行しているデバイスにGPS装置が組み込まれている場合や、無線アクセスポイントや携帯電話アンテナ塔を利用して三角測量できたり、IPアドレスを調べることができる場合には、どこにいるかについてかなり正確に知ることができます。たとえデバイスに適当なハードウェア備わっていない場合でも、位置情報プロバイダウェブサービスを利用することができます。このビルドではSkyhookサービスを利用します、したがって、位置情報を扱えるウェブアプリケーションがユーザの位置情報を問い合わせることができるようにするには、loki.comにあなたのサイトを登録する必要があります。加えて、Windows XPを使っている場合には、svcsetup.exeを実行する必要があります。そうでないと、wifiスキャンを行う際に、多くのラップトップに出荷時からインストールされているいろいろな「wifiマネージャ」に影響を受けることになってしまいます。将来のリリースではこういうことは必要ないかもしれませんが、今のところは、クラッシュするようなことがあれば、最初にsvcsetup.exeを実行したのが原因かもしれません。
その他のブラウザには、Geolocation APIを提供しているGoogle Gearsがある:
Geolocation APIを利用すると、ウェブアプリケーションで次のようなことが可能になる:
- getCurrentPositionメソッドを用いてユーザの現在位置を得る
- watchPositionメソッドを用いて、時間の経過とともにユーザの位置が移動してもそれを確認する
- lastPositionプロパティを使用して、コストをかけることなく即座にユーザの最新位置を得る
Geolocation APIを利用すると、位置プロバイダと呼ばれる数多くのソースからより正確にユーザの位置推測できます。プロバイダは、GPSのようにデバイスに装備されている場合もあるし、ネットワーク位置プロバイダのようにサーバベースの場合もあります。getCurrentPositionとwatchPositionメソッドは、PositionOptionsタイプのオプションパラメタをサポートしますが、これを使うとどの位置プロバイダを使うかを指定できます。
Gears 0.5は、WiFiアンテナ・データを利用して、より正確な位置情報を提供する:
Gears Geolocation APIは、位置情報の補正を行うために、ネットワークサーバを利用できます。サーバは、クライアントが提供する一組のデータを使って、クライアントの位置を測定します。このデータには、クライアントのIPアドレスと見つけることができた携帯電話のアンテナ塔またはWiFiノードに関する情報を含まれています。
InfoQは、Opera社の中心的な開発者であるMax Froumentin氏にブラウザでのGeolocationの将来について尋ねた:
InfoQ: もうじき、Firefox、Operaの両ブラウザおよび、他のプラットホームではGoogle Gearsプラグインでネイティブなサポートが開始されますが、IEのようなプラットホームでネイティブな実装が提供される前に、このAPIの利用が主流になると思いますか?こういったことがすぐに実現すると思いますか?
位置情報は、ウェブでは、特にモバイル機器では、非常に役に立つ機能なので、ブラウザでサポートされるとすぐに、アプリケーションが提供されるようになるでしょう。ウェブサイト作成者は、もうしばらくの間、この機能が提供されることを望んできたので、それが利用できるようになれば、それを使うようになるでしょう。
InfoQ: このAPIがどのように使われると思いますか?単に新しいアプリケーションに追加の機能を提供するようになるだけか、それとも、全く新しいジャンルを可能にすると思いますか?
どちらもそうだと思います。現在IPや他の近似法を使って位置情報の取得を試みているウェブサイトでは、はるかに正確な情報を得ることで大きな恩恵を受けられるのは明らかです。これによって、より良いサービスを提供することができるでしょう。しかし、我々は同時に、APIが提供する新しい機能を利用して新しく革新的なアプリケーションをつくる人がきっといると信じています。
InfoQ: プライバシ上の問題で、位置情報を利用するブラウジングへの移行が遅くなると思いますか?
プライバシに関する懸念によって、移行はより遅くなるでしょう。ユーザは、ウェブサイトが自分たちを保護し、情報を不正使用しないと信用できるのでもない限り、ブラウザの位置情報機能の利用を避けるべきです。クレジットカード情報をウェブサイトに送るのと同じように、他のどのような機密情報とも同様に、適切な保護を提供することによって、ユーザが、自身のプライバシを完全かつ確実にコントロールできるようにするのはブラウザに任されています。そのような保護が実現したら、人々は移行を始めるでしょう。
次世代ウェブアプリケーションがデフォルトで位置情報を認識するということに関して、皆さんはどう考えますか?