Maps API v2 mit verschiedenen Markierungsaktionen

Ich versuche, meine Anwendung auf die neue Google Maps-API v2 zu portieren, habe jedoch Probleme bei der Interaktion mit Markern.

Mein Kontext: Ich habe eine Karte mit Bussen und Haltestellen. Mit der alten Bibliothek hatte ich mein eigenes ItemizedOverlay für Bushaltestellen und ein anderes für Busse. Jeder hatte einen anderen OnTapListener (eigentlich verwende ich eine externe Bibliothek, um Luftballons anzuzeigen). Wenn der Benutzer also auf den Busmarker tippt, passiert nichts, aber wenn er auf den Bushaltestellenmarker tippt, wird eine Aktivität mit ihren Informationen geöffnet. Außerdem habe ich in meinem ItemizedOverlay jeden Marker mit seinem Bushaltestellenobjekt des Modells abgebildet.

Jetzt mit der neuen API habe ich 2 Hauptprobleme:

Sie legen einen Listener mit den Methoden setOnInfoWindowClickListener () oder setOnMarkerClickListener () Ihres GoogleMap-Objekts fest. Mit anderen Worten, Sie können nur einen Listener für die gesamten Maps festlegen, sodass ich nicht zwischen Tippen auf Bushaltestellen oder Busse unterscheiden kann.Die onClick-Methode beider Marker empfängt nur das Marker-Objekt, von dem ich nicht zu viele Informationen wie die Bushaltestellennummer abrufen kann, um die Aktivität zu öffnen (und ich hoffe, es gibt einen besseren Weg, als den Titel-String zu analysieren! O_O).

Ich denke, diese beiden Probleme könnten mit verschiedenen Unterklassen von Marker gelöst werden, aber es gibt keinen Konstruktor und Sie erhalten seine Referenz, wenn Sie es der Karte hinzufügen. Daher weiß ich nicht, ob es möglich ist, eine benutzerdefinierte Implementierung zu verwenden.

Die API ist neu, daher gibt es im Web nicht viele Informationen zu ähnlichen Problemen. Ich habe versucht, herauszufinden, wie ich das lösen kann, aber ich habe nichts bekommen. Kennt jemand eine mögliche Lösung dafür?

Vielen Dank.

BEARBEITEN: Ein Screenshot von der Karte meiner aktuellen Anwendung mit zwei Arten von Markern:

Antworten auf die Frage(4)

Ihre Antwort auf die Frage