1. ホーム
  2. android

[解決済み] map.setMyLocationEnabled(true)の本当の役割は何なのか?

2022-02-18 03:36:10

質問

設定しています。

map.setMyLocationEnabled(true)

しかし、これが果たしてどうなのかが気になるところです。 私が知っているのは

  1. マップの右上にロケテミーボタンが表示されるようになりました。
  2. 地図上に現在地を表す青いアイコンが表示されます。

ここからは私の悩みです。 私は位置情報を認識するアプリを書いていますが、バッテリーについて懸念しています。 アプリの別の場所で(環境設定によって)LocationManagerをセットアップし、位置情報イベントをリッスンして、それを記録することができます。 しかし、私の環境設定の一部は、私が更新を取得する精度と間隔です。

LocationManagerをオフにすると。

locationManange.removeUpdates(LocationListener listener);

アプリ全体の位置情報サービスをオフにすることを期待しています。 しかし、私の携帯電話のヘッダーバーには、アプリが位置情報の更新を取得していることを示す小さなGPSアイコンが表示されたままです。 これは、マップビューでこれを設定したことから来ていることは分かっています。

map.setMyLocationEnabled(true);

LocationManagerを設定して位置情報の更新をリッスンしない場合、map.setMyLocationEnabled(true)を設定しても効果がない(つまり、私の位置情報のアイコンやボタンがない)のではないかと、当初は思っていました。 しかし、それは真実ではありません。

つまり、map.setMyLocationEnabled(true)を呼ぶことによって、googleは独自の設定で独自のLocationManagerを設定しているということでしょうか? 私は本当にmap.setMyLocationEnabled(true)を呼びたいのですが、位置情報の更新に私の設定を使用させ、googleがボンネットで何をしているかは関係ありません。 それは可能ですか? ドキュメントで何か見逃したのでしょうか? map.setMyLocationEnabled(true)を呼び出したときにLocationManagerで設定される精度や間隔について、何も書かれていないのです。

解決方法は?

<ブロッククオート

map.setMyLocationEnabled(true) を呼び出すことで、googleは独自の設定で独自のLocationManagerを設定しているということでしょうか?

そうではありません。マップV2 用途 LocationClient をデフォルトで使用します。

map.setMyLocationEnabled(true)を呼び出したいのですが、位置情報の更新に私の設定を使用し、googleがボンネットの中で何をしているかは関係ないようにしたいです。それは可能ですか?

できること 使用 setLocationSource() を使うと、my-locationレイヤーで使用するために独自の位置データを提供することができます。 以下はサンプルプロジェクトです。 のデモを行います。