2013-09-03 6 views
5

Googleマップ上のマーカーの選択を解除する方法を探しています。私はスライダの引き出しを持っています。ユーザがマーカーをクリックするまでハンドルが見えなくなり、マーカーが「選択解除」されたら再び非表示にします。私はmarker.isInfoWindowShown()で試しましたが、動作させることができませんでした。ユーザーがGoogleマップのマーカーを選択解除するかどうかを検出する

+0

「選択解除」とは?あなたはどうやってそれをしますか? – Praveen

+0

ユーザーがマップをクリックすると、マーカーがクリックされたときに表示されたインフォウィンドウが非表示になります。 –

答えて

10

は、情報ウィンドウの消失のためのイベントはありませんが、あなたは

map.setOnMapClickListener(new OnMapClickListener() { ... }); 

と情報ウィンドウが消えるよう、他の「イベント」のカップルを使用して周りに動作する可能性があります。 marker.remove()またはmarker.setVisible(false)を使用すると、情報ウィンドウを表示するマーカーで呼び出されたときに情報ウィンドウが表示されなくなります。

(おそらくOnMarkerClickListenerまたはInfoWindowAdapter)の参照を保存する必要があります。

+0

InfoWindowを消してほしいと思っています。マーカー全体ではありません。 – bofredo

+1

@bofredo私は彼が情報ウィンドウが消えたときを知りたいと思う。それを消滅させることは簡単です: 'marker.hideInfoWindow()'。 –

+0

@MaciejGórskiありがとう、これは私が望んだものです。なぜ私は自分で考えなかったのか分かりませんが、時にはあなたの脳が休憩していると思います:) –

0

あなたは既に回答を選択していますが、選択したものは必要なものを実行していないことは知っています。

私はまた、マーカーを使用するアプリケーションで忙しく、ユーザーがマーカーを選択および選択解除したときに切り替えられるビューを持っています。

これは単なる回避策です。

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() 
      { 
       @Override 
       public void onMapClick(LatLng latLng) 
       { 
        mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() 
        { 
         @Override 
         public boolean onMarkerClick(Marker marker) 
         { 
          //Code for on marker click goes here 
          return false; 
         } 
        }); 
        //Code for marker deselect goes here 
       } 
      }); 

これはクリックリスナーを2つ使用しているため、ユーザーがクリックした内容に応じて表示を切り替えることができます。

0

これはマーカーに情報ウィンドウがある場合にのみ有効です。マーカーに情報ウィンドウが表示されると、マーカーの外側をクリックするとクリックして閉じます。そのイベントはマップで検出できます。

// Detect when Marker's Info Window is closed 
    googleMap.setOnInfoWindowCloseListener(new GoogleMap.OnInfoWindowCloseListener() { 
     @Override 
     public void onInfoWindowClose(Marker marker) { 
      // Do whatever you want to do here... 
     } 
    }); 
関連する問題