I'm trying to port my application to the new Google Maps API v2, but i'm having trouble when interacting with markers.
My context: I have a map showing buses and buses stop. With the old library I had my own ItemizedOverlay for bus stops and another one for buses. Each one had a different OnTapListener (actually I use an external library to show balloons), so when the user taps the bus marker nothing happens, but when he taps the bus stop marker an activity with its information is opened. Also, in my ItemizedOverlay I mapped each marker with its bus stop object of the model.
Now with the new API I have 2 main problems:
- You set a listener with setOnInfoWindowClickListener() or setOnMarkerClickListener() methods of your GoogleMap object. In other words, you can only set one listener for the whole maps, so I can't differentiate between taps on bus stops or buses.
- The onClick method of both markers receive only the Marker object, from where I can't get too much information like the bus stop number to open its activity (and I hope there is a better way than parsing the title String! O_O)
I think these two problems could be resolved using different subclases of Marker, but it has no constructor and you get its reference when adding it to the map, so I don't know if it's possible to use a custom implementation.
The API is new so there isn't much information on the web about similar problems. I've been trying to figure out how to solve this, but I got nothing. Does anyone know a possible solution to this?
Thanks.
EDIT: A screenshot from my current application's map with two types of markers: