5

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

4

2 に答える 2

17

はい。

どのマーカーが選択されているかを判断するには、OnInfoWindowClickedListener を GoogleMap に追加します。

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

OnInfoWindowClickListener 内の 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();
        }
    };      
}

そして、おそらくインスタンス変数を使用して、選択したマーカーを追跡します。

プログラムでマーカーを選択するには、すべてのマーカーのリストを保持してから、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();
}
于 2013-01-14T17:57:51.067 に答える