我正在尝试将我的应用程序移植到新的 Google Maps API v2,但在与标记交互时遇到了问题。
我的背景:我有一张显示公共汽车和公共汽车站的地图。在旧图书馆中,我有自己的 ItemizedOverlay 用于公共汽车站,另一个用于公共汽车。每个都有一个不同的 OnTapListener (实际上我使用外部库来显示气球),所以当用户点击公交车标记时没有任何反应,但是当他点击公交车站标记时,会打开一个带有其信息的活动。此外,在我的 ItemizedOverlay 中,我将每个标记与模型的巴士站对象进行了映射。
现在有了新的 API,我有两个主要问题:
- 您可以使用 GoogleMap 对象的 setOnInfoWindowClickListener() 或 setOnMarkerClickListener() 方法设置侦听器。换句话说,您只能为整个地图设置一个侦听器,因此我无法区分公共汽车站或公共汽车上的水龙头。
- 两个标记的 onClick 方法只接收 Marker 对象,从中我无法获得太多信息,例如公交车站号来打开其活动(我希望有比解析标题字符串更好的方法!O_O)
我认为这两个问题可以使用 Marker 的不同子类来解决,但是它没有构造函数,并且在将其添加到地图时会得到它的引用,所以我不知道是否可以使用自定义实现。
该 API 是新的,因此网络上没有太多关于类似问题的信息。我一直试图弄清楚如何解决这个问题,但我什么也没得到。有谁知道可能的解决方案?
谢谢。
编辑:我当前应用程序地图的屏幕截图,带有两种类型的标记: