leshka leshka - 11 months ago 74
Android Question

Associate an object with Marker (google map v2)

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 ... {
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?


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.

// Create the hash map on the beginning
WeakHashMap <Marker, Object> haspMap = new WeakHashMap <Marker, Object>();

// whenever adding your marker
Marker m = mMap.addMarker(new MarkerOptions().position(lat, lng).title("Hello World").icon(icon_bmp));
haspMap.put(m, your_data);