読者です 読者をやめる 読者になる 読者になる

sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

201308版 Google Maps Android API v2で現在位置をフォロー (MapFragmentまるごと手抜き公開)

android GoogleMaps

以前の記事はこちら

August 2013 GoogleMapsの記事でも触れましたが、MyLocationButtonClickListenerも追加され、なんだか現在位置のフォロー動作もすこしやりやすくなったみたいですし、なによりも、 GoogleMap.OnMyLocationChangeListenerがdeprecatedになって、現在位置でなにかするならGoogle Play services Location APIを使いましょうというお達しがでましたので、ざっと処理を書き直してみました。

めんどくさいのでMapFragmentまるごとの長ったらしいソースですが、要するに位置情報を取得し、LocationSourceを通してGoogleMapにその位置をMyLocationとして設定。あとのフォロー判定とかは以前のままですが、MyLocationボタンが押されたときにアニメーションをキャンセルしているのと、強制でフォローモードに入るようにしているところで信頼性がちょっとあがってるかなと。

旧タイプのGPS Providerからも値を取るようにしているのは、Fusedの立ち上がりがなんか悪いためなのですが、これもそのうち改善されるんじゃないでしょうか。

20130901追記

1.4系の Google Maps SDK for iOS で 現在位置をフォローするマップを表示する - sos の 作業メモ

iOS版だとどう書くのかを記事にしてみました。あっちでもかなり簡単に実装できます。

Android/iOS両方とも、myLocationボタンの灰色<->水色の変更ができるようになればフォローモードがはっきり示せて便利なのになぁ…