2012-01-09

_nomap で Google 位置情報からアクセスポイントを削除する

ポータブル Wi-Fi ルーターに Android 端末を繋いで使っていると、頻繁に自宅に連れ戻される症状に大変困っていました。これは周辺に他のアクセスポイントがない場合に、Wi-Fi 位置情報によりポータブルルーターの位置を引いてしまい、普段ずっと使っている自宅を現在位置と認識するためのようです。

2011/11 に Google により発表された Wi-Fi位置情報システムからのオプトアウト方法 に従って、SSID の変更を 2011/11/16 に行い、オプトアウトの完了を 2012/1/8 に確認しました。位置情報データのアップデートは月に1回程度行われるようです。

SSID の末尾に _nomap を付ける変更後、電波出力を 100% にして、より多くの Android 端末に捕捉されるようにしてみました。オプトアウト完了後は Google Map を使っても頻繁に現在地が自宅に戻る不愉快な動作もなく快適に利用できています。そもそも、移動するノードはすべて出荷時デフォルトが _nomap で良いと思います。

Google 側の更新を待てないお急ぎの方は、アクセスポイントを SSID ステルス設定にして使うと、Wi-Fi 位置情報クライアントがそれを認識し、近隣のアクセスポイントとして送信されなくなり、_nomap によるオプトアウト完了後相当の測位結果になるのでお試しください。

なぜ SSID ステルスモードへの変更でオプトアウト出来ないのか?
Google の位置情報サービスの説明 にあるように、位置情報サービスは公共に発信され、誰でも得ることができる情報 (広告されている ESSID, BSSID, 電界強度) のみに基づきサービスを運用しているので、送信される近隣アクセスポイント一覧には SSID が広告されているアクセスポイントのみの情報が含まれ、自分が繋いでいる SSID ステルスなアクセスポイントについての情報は送信されません。

したがって、サーバー側から見た場合、あるアクセスポイントが SSID ステルスモードに変化したのか、電源を落とされたのかは区別できず、電源の落ちているアクセスポイントの自動削除などは行われないため、SSID ステルスに変更する前の情報が記録されたままとなります。
この状況を改善するためには、以下のいずれかのようなものを用意すれば良いと考えられます。

  • BSSID (MACアドレス) の入力によるオプトアウト
  • SSID ステルスに変更したことを送信するツール
  • 一定期間非アクティブなアクセスポイントの自動削除

メモ
ブラウザ用 Google 位置情報 API ではアクセスポイント 1 個の場合は測位不能になる一方で、Android からは1個でも測位可能なようです。

リンク
Google Map ヘルプ - 位置情報サービス
高木浩光@自宅の日記 - Wi-FiのMACアドレスはもはや住所と考えるしかない