Associate an object with Marker (google map v2) Associate an object with Marker (google map v2) android android

Associate an object with Marker (google map v2)


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 beginningWeakHashMap <Marker, Object> haspMap = new WeakHashMap <Marker, Object>();// whenever adding your markerMarker m = mMap.addMarker(new MarkerOptions().position(lat, lng).title("Hello World").icon(icon_bmp));haspMap.put(m, your_data);


You can associate arbitrary object by using Marker's setTag() method

Marker amarker = mMap.addMarker(new MarkerOptions().position(lat, lng).title("Hello World"));amarker.setTag(new SomeData());

To retrieve data associated with marker, you simply read it using its getTag() and then cast it to its original type.

SomeData adata = (SomeData) amarker.getTag();

More information


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.