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