ネットサービスの開発に役立ちそうな話題を中心にお届けします。
F.Ko-Jiの「一秒後は未来」 > Javascript > Firefox 3.5の位置情報通知機能の仕組みとサンプル
2009年07月04日 18:24

Firefox 3.5の位置情報通知機能の仕組みとサンプル

スポンサード リンク

Firefox3.5から「位置情報通知機能」が使えるようになりました。これはIPアドレスや無線LANアクセスポイントの情報を利用して、GPSなしにクライアントの位置情報を取得するものです。

早速サンプルを作って試してみました。位置情報を取得してGoogle Maps APIで地図にその位置を表示します。ちなみにサンプルは iPhone の Safari でも動作します。

位置情報通知機能の仕組み

この機能は Google Location Service を利用しているそうです。サイト側がユーザの位置情報を取得するには、JavaScriptで次のような処理を実装する必要があります。

navigator.geolocation.getCurrentPosition(function(position) {
  // コールバック処理
});

» Using geolocation - MDC

ページ閲覧中に位置情報取得の要求が発生すると、Firefox3.5のタブの下に「位置情報を通知してよいかどうか」の選択を求めるダイアログが表示されます。

Firefox3.5位置情報通知

ここで「許可」を選択すると、Firefoxから https://www.google.com/loc/json というエンドポイントに対してデータが送信されます。正確にはこのリクエストの前に http://ocsp.thawte.com/ に対して OCSP のリクエストが送信されます。OCSP というのは Online Certificate Status Protocol というものだそうです。

https://www.google.com/loc/json に対しては次のようなデータが送信されています。

{
  "version":"1.1.0",
  "access_token":"xxxx",
  "wifi_towers":[
    {
      "mac_address":"xx-xx-xx-xx-xx-xx",
      "ssid":"xxxxxx",
      "signal_strength":-53
    },
    {
      "mac_address":"yy-yy-yy-yy-yy-yy",
      "ssid":"yyyyyy",
      "signal_strength":-81
    }
  ]
}

上記のように自宅で試すと無線LANのアクセスポイント情報が2つ送信されていました。一方は自宅のもので、もう一方はマンションの他の部屋のものだと思います。どうやら接続の有無に関わらず、PCが検知しているアクセスポイントの情報を送信しているようです。

Google Location Service に対するリクエストが成功すると、位置情報が JSON フォーマットで返ってきます。この位置情報通知機能は W3C の Geolocation API に準じているそうです。ドキュメントによると、

  • coords.latitude (緯度)
  • coords.longitude (経度)
  • coords.altitude (高度 ※)
  • coords.accuracy (精度)
  • coords.altitudeAccuracy (高度の精度※)
  • coords.heading (方位 ※)
  • coords.speed (秒速 ※)
  • timestamp (タイムスタンプ)

といった情報が返されるようです(「※」で示している項目は、値が返ってきませんでした)。緯度と経度がどのくらいの精度で取得できたかが分かります。

この機能で利用される無線LANアクセスポイントの場合は、位置情報自体はすでに収集されているという点で、ケータイなどに搭載されているGPSとは少し違います。ケータイのGPSの場合は使うときに初めて位置情報が通知されますから。

当然ユーザーが「許可」しないとブラウザからMACアドレスなどの情報は送信されないのですが、自宅のアクセスポイントの位置情報の収集許可なんてしてないし、やや気持ち悪い感じは残ります。

» 次世代ブラウザ Firefox | 高速・安全・カスタマイズ自在な無料ブラウザ

スポンサード リンク

Subscribe with livedoor Reader Add to Google Subscribe with Fastladder My Yahoo!に追加 Bloglinesで閲読登録 はてなRSSに追加 エキサイトリーダーに登録


トラックバック

このエントリーのトラックバックURL:

コメントを投稿

(承認されるまでコメントは表示されません。)

Google Maps API / Javascript / プログラミング

English version

前のエントリー: « F-08A/F-09Aのプライバシーモードは相変わらずヤバイ
次のエントリー: TwitterはAPI経由で同一アカウントに同じ内容のつぶやきを連続投稿できない »

タイトル:

URL:

リンク用HTMLタグ:

Agile Media Network

AMN Partner Blog

広告掲載について

東京ナイロンガールズ
持っているガジェット
powered by Gadget Party
ブログクラブ

最近のつぶやき
このブログの読者になる

F.Ko-Jiの「一秒後は未来」 - RSSフィード

クマでもわかるこのブログの便利な更新チェック方法

DailyFeed

あわせて読みたいブログパーツ

フィードメーター - F.Ko-Jiの「一秒後は未来」

メンバー by Friend Connect

月別アーカイブ


<< September 2010
SuMoTuWeThFrSa
 1234
567891011
12131415161718
19202122232425
2627282930 
人気エントリー
TopHatenar
携帯からのアクセスは
QRコード
http://mob.fkoji.com/