2017-03-29 11 views
2

私は、ユーザーが位置をカスタマイズできるとき、マーカー作成アクティビティを持っています。このアクティビティが終了したら、私は新しい、そしてより鮮明なマーカーをGoogleマップに配置したいと思います。手動でGoogleマップを更新するには?

onMapReady(GoogleMap googleMap) 

をそれが正常に動作しない:私はこの機能を使用しています

(そのマップを更新)。変更を確認するには、アプリをいったん終了してからもう一度開く必要があります。

+0

try mMap.clear(); – Elsunhoty

答えて

3

アクティビティ/フラグメントでonResumeを上書きすると、マーカー作成アクティビティが終了してから作業を行うことができます。 GoogleMapオブジェクトをグローバルとして設定した場合、そこにはonMapReadyのように地図を更新できます。たとえば:

GoogleMap mGoogleMap; 

... 

...onMapReady(GoogleMap googleMap){ 

    mGoogleMap = googleMap; 

    ... 

} 

@Override 
public void onResume(){ 
    super.onResume(); 

    if(mGoogleMap != null){ //prevent crashing if the map doesn't exist yet (eg. on starting activity) 
     mGoogleMap.clear(); 

     // add markers from database to the map 
    } 
} 

はあなたのマーカーがあなたのコードのメンテナンス性の向上のためにonResumeonMapReadyに呼び出される関数に追加することを検討できます。

+0

関数onResumeで '(GoogleMap googleMap)'を取得して、mGoogleMapをgoogleMapにするにはどうすればよいですか? –

+0

@mosómaci 'onMapReady'関数では、' onGoogleMap'を 'googleMap'に代入して、' onResume'コードの実行時にマップオブジェクトを使うようにしました。 – T3KBAU5

+0

ありがとう、私は今それを得る。 –

関連する問題