2013-01-14 9 views
5

私は現在、Maps V1 APIのItemizedOverlayクラスを使用しています。このクラスは、現在選択されているマーカー(存在する場合)を追跡します。現在どのマーカーが選択されているかを判断するために、Maps V2に同様の機能はありますか?また、プログラムで新しいマーカーを選択する方法はありますか?Maps V2 Android APIを使用してマーカーを選択するにはどうすればよいですか?

答えて

16

はい。 OnInfoWindowClickListenerの内側

//mMap is an instance of GoogleMap 
mMap.setOnInfoWindowClickListener(getInfoWindowClickListener()); 

オーバーライドonInfoWindowClicked()メソッドを::

public OnInfoWindowClickListener getInfoWindowClickListener() 
{ 
    return new OnInfoWindowClickListener() 
    {  
     @Override 
     public void onInfoWindowClick(Marker marker) 
     { 
      Toast.makeText(getApplicationContext(), "Clicked a window with title..." + marker.getTitle(), Toast.LENGTH_SHORT).show(); 
     } 
    };  
} 

をそして、選択されたマーカーを追跡するために選択されたマーカーを決定するために

、あなたのGoogleMapにOnInfoWindowClickedListenerを追加おそらくインスタンス変数を使用します。これに似た

プログラムでマーカーを選択するには、あなたが)1のハンドルを取得し、(showInfoWindowを呼び出して、すべてのあなたのマーカーのリストを保持する必要がありますすることは、:

//markerList is just a list keeping track of all the markers you've added 
//to the map so far, which means you'll have to add each marker to this 
//list as you put it on the map 
Marker marker = this.markerList.get(someObjectYoureShowingAMarkerFor.getId()); 

if(marker != null) 
{ 
    marker.showInfoWindow(); 
} 
+0

ちょうど私が必要なもの、感謝! – noisecapella

1

あなたが使用することができますOnMarkerClickListener。

googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 
     @Override 
     public boolean onMarkerClick(Marker marker) { 
      Toast.makeText(getApplicationContext(), "Clicked a marker with title..." + marker.getTitle(), Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    }); 
関連する問題