In my app I have some objects that have their location displayed on the map using markers. The problem is that the only way I've found to handle marker clicks is
googleMap.setOnMarkerClickListener(new ... {
@Override
public void onMarkerClick(Marker marker) {
// how to get the object associated to marker???
}
})
In other words I get the Marker object while the only interface that I have allows me to set just MarkerOptions.
Any way to associate Marker with an object?
Another option would be to create a Map whose keys is marker.getId() and the value is our object.
In this way, we wouldn't keep a reference to a Marker in memory, and wouldn't have to worry about garbage collected markers.
Here you can see more answers.
I reckon this callback was not very thoroughly though by the Android team, but, it's what we have.
Whenever you call
mMap.addMarker();
it returns the generated marker. You can then use a HashMap or some other data holder structure to remember it.You can associate arbitrary object by using Marker's setTag() method
To retrieve data associated with marker, you simply read it using its getTag() and then cast it to its original type.
More information