Я пытаюсь перенести приложение на новый API Карт Google v2, но у меня возникают проблемы при взаимодействии с маркерами.
Мой контекст: у меня есть карта, показывающая остановки автобусов и автобусов. В старой библиотеке у меня был свой ItemizedOverlay для автобусных остановок и еще один для автобусов. У каждого из них был другой OnTapListener (на самом деле я использую внешнюю библиотеку для отображения воздушных шаров), поэтому, когда пользователь удаляет маркер шины, ничего не происходит, но когда он отбирает маркер остановки автобуса, открывается активность с его информацией. Кроме того, в моем ItemizedOverlay я сопоставил каждый маркер с его объектом остановки шины модели.
Теперь с новым API у меня есть две основные проблемы:
- Вы устанавливаете слушателя с помощью методов setOnInfoWindowClickListener() или setOnMarkerClickListener() вашего объекта GoogleMap. Другими словами, вы можете установить только один прослушиватель для всех карт, поэтому я не могу различать краны на остановках или автобусах.
- Метод onClick обоих маркеров получает только объект Marker, откуда я не могу получить слишком много информации, например, номер остановки шины, чтобы открыть его активность (и я надеюсь, что есть лучший способ, чем разбор заголовка String! O_O )
Я думаю, что эти две проблемы могут быть решены с использованием разных подклассов Marker, но у него нет конструктора, и вы получаете его ссылку при добавлении его на карту, поэтому я не знаю, можно ли использовать пользовательскую реализацию.
API является новым, поэтому в Интернете мало информации о подобных проблемах. Я пытался выяснить, как это решить, но я ничего не получил. Кто-нибудь знает о возможном решении этого?
Спасибо.
EDIT: Снимок экрана из моей текущей карты приложений с двумя типами маркеров: