Как выбрать маркер с помощью API Android Maps V2?

В настоящее время я использую класс ItemizedOverlay из API карт V1, который отслеживает, какой маркер (если таковой имеется) выбран в настоящий момент. Есть ли аналогичные функции в Maps V2 для определения того, какой маркер выбран в настоящий момент? Кроме того, есть ли способ программно выбрать новый маркер?

Solutions Collecting From Web of "Как выбрать маркер с помощью API Android Maps V2?"

Да.

Чтобы определить, какой маркер выбран, добавьте OnInfoWindowClickedListener в свой GoogleMap:

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

Переопределите метод onInfoWindowClicked () внутри OnInfoWindowClickListener:

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

И отслеживайте выбранный маркер, возможно, с переменной экземпляра.

Чтобы программно выбрать маркер, вам нужно сохранить список всех ваших маркеров, затем получить дескриптор на одном и вызвать 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(); } 

Вы можете использовать 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; } });