スマホの特徴として、位置情報サービスによって現在位置を把握したうえで地図アプリが使用できる、というものがあります。
で、スマホの現在位置の取得には、GPS が使われていると思っていたのですが、どうも話はそう簡単ではないようです。
経験した変な現象というのは、
位置情報を有効にしても、現在位置(位置A)が明らかに不正確になってしまう(少しずれているというレベルではなく何十キロも離れた場所になる)。しかも、その間違った位置(位置B)というのは、自宅ではないものの、時々行く場所であることは確かである、というもの。
共通点は、
その間違った場所でも、モバイルWIFIルータ(もしくはスマホテザリング)を使用しており、今回も同じ機器で接続していた。
ということです。ネットで調べてみたところ、関連する情報がありました。
モバイルWi-FiルーターのSSIDには「_nomap」を付けた方がいいかも。
AndroidのGPS精度を劇的に改善するたった1つの設定項目
推測ですが、過去に(位置B)において、WIFIルータを経由して位置情報サービスを使うアプリが利用され、かつその回数が多くて、google location service にその情報が蓄積された。
で、今回、(位置A)における位置情報の取得において、同じWIFIルータを使用した結果、なんらかの理由で GPS 情報よりも location service の情報が表出してきた。
ということかなと。特に、アンドロイドの場合は、単に位置情報のオンオフだけでなく、3つのモードが設定できて、それぞれ
- 高精度:GPS、WIFI、モバイルネットワークで現在地を特定する。
- バッテリー節約:WIFIとモバイルネットワークで現在地を特定する。
- GPSのみ:GPS で現在地を特定する。
となっています。おかしな結果になったとき、上記のどの設定になっていたのかは確認できていませんが、この設定を変えることで改善が見込めそうな気がします。
わかったようなつもりで使用していた位置情報ですが、意外に深いですね。