Ich verwende derzeit die ItemizedOverlay
Klasse von der Maps V1 API, die verfolgt, welcher Marker (falls vorhanden) aktuell ausgewählt ist. Gibt es ähnliche Funktionen in Maps V2, um festzustellen, welcher Marker gerade ausgewählt ist? Gibt es auch eine Möglichkeit, einen neuen Marker programmatisch auszuwählen?Wie wähle ich eine Markierung mithilfe der Android-API von Google Maps V2 aus?
5
A
Antwort
16
Ja.
Um festzustellen, welche Marker ausgewählt wird, eine OnInfoWindowClickedListener zu Ihrem GoogleMap hinzufügen:
//mMap is an instance of GoogleMap
mMap.setOnInfoWindowClickListener(getInfoWindowClickListener());
Aufschalten der onInfoWindowClicked() -Methode innerhalb des 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();
}
};
}
Und halten Sie den Überblick über die ausgewählten Marker vielleicht mit einer Instanzvariable.
Um einen Marker programmatisch auswählen, erhalten Sie eine Liste aller Markierungen halten müssen, dann den Griff bekommen ein und rufen showInfoWindow(), ähnlich wie dies:
//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();
}
1
Sie die verwenden können, 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;
}
});
Nur was ich brauchte, danke! – noisecapella