たとえば東京に出張して帰ってきたあとでも、現在地が東京のままという具合で「誤差」「(大きめの)ずれ」というレベルではありません。
ただ別の地図アプリを使うと、正しく現在地が表示されたりします。
つまり、GPSによる位置情報がとれていないというわけではないのです。
調べてみるとモバイルルーターを使っていることが原因のようです。
対処法は2つ。
- モバイルルーターのSSIDの末尾に「_nomap」を付ける(参考)
- Android端末の設定で、位置情報にWiFiを使わないようにする
- 初代XPERIA(SO-01B)の場合
「設定」-「現在地情報とセキュリティ」-「無線ネットワークを使用」をオフにする - Galaxy Nexus(SC-04D)の場合
「設定」-「位置情報サービス」-「Googleの位置情報サービス」をオフにする
すでに色々な機器をモバイルルーターに接続してしまっているので、僕は後者の設定を行いました。
しかし、この設定をオフにしたとたん、屋外でも「一時的に現在地を検出できません」と表示されてしまいました。田んぼの真ん中なので、GPSだけでいけるはずなのに…。おそらく、この設定変更により、キャリアの基地局からのアシスト情報も取得しないようになってしまったせいではないか、と想像しています。そこは設定を分けておくべきですよね?>Googleさん
というわけで、すぐに設定をオンに戻したところ、WiFiの位置情報もクリアされたのか、正しい位置が検出されるようになりました。
ちなみに、引っ越しなどで据え置き型の無線ルーターを移動させた場合も同様の現象が発生するようです。対処方法も同じですね。
同じような症状でお困りの方は参考にしてみてください。