Android 集群和标记点击 [英] Android cluster and marker clicks

查看:24
本文介绍了Android 集群和标记点击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在地图上使用了 android 集群实用程序,并成功地为集群库处理的所有标记实现了一个带有 mClusterManager.setOnClusterItemClickListener() 的 onclick 侦听器.

I'm using the android clustering utility on a map and succesffuly implemented an onclick listener with mClusterManager.setOnClusterItemClickListener() for all the markers handled by the clustering library.

因为我也希望一些标记始终不聚集,所以我也添加了一些标记,而不使用 mClusterManager,而是直接使用地图的 mMap.addMarker(),这样我就可以确定它们永远不会聚集在地图上.

Because I also want some markers to always be unclustered, I also add some markers without using the mClusterManager but directly using the map's mMap.addMarker(), this way I'm sure that they are never clustered on the map.

我的问题是我无法拦截对这些标记(总是未聚集的)的点击,因为我已经使用 mMap.setOnMarkerClickListener(mClusterManager) 来处理点击的集群的标记.

My problem is that I cannot intercept clicks on those markers (the always unclustered ones) because I already used mMap.setOnMarkerClickListener(mClusterManager) to handle the clicked clusters' markers.

有没有办法监听点击的聚类标记和聚类库未处理的点击标记?

Is there a way to listen to the clicked clustered markers AND the clicked markers not handled by the clustering library ?

或者有没有办法指定集群管理器从不集群某些标记?在这种情况下,我将不必处理那些不同的点击侦听器,因为所有标记都将使用聚类实用程序显示.

Or is there a way to specify the cluster manager to never cluster some markers ? In this case I won't have to handle those different click listener since all markers would be shown using the clustering utility.

谢谢

推荐答案

您可以创建一个新的 MarkerManager,并将其传递给 ClusterManager 构造函数.然后使用 MarkerManager#newCollection 创建一个新的 Marker 集合,并使用 MarkerManager.Collection#addMarker 方法将普通的 Marker 添加到地图中.

You can create a new MarkerManager that you pass into the ClusterManager constructor. Then make a new Marker collection using MarkerManager#newCollection and add your normal Markers to the map using the MarkerManager.Collection#addMarker method.

然后,不是调用 mMap.setOnMarkerClickListener(mClusterManager),而是调用 mMap.setOnMarkerClickListener(mMarkerManager),它将处理转发您的 Marker 单击事件到适当的侦听器.您还需要使用 MarkerManager.Collection#setOnMarkerClickListener(GoogleMap.OnMarkerClickListener markerClickListener) 函数为普通标记设置 onMarkerClick 侦听器.

Then, instead of calling mMap.setOnMarkerClickListener(mClusterManager), call mMap.setOnMarkerClickListener(mMarkerManager), and it will handle forwarding your Marker click events to the proper listeners. You'll also need to set up your onMarkerClick listener for normal Markers with the MarkerManager.Collection#setOnMarkerClickListener(GoogleMap.OnMarkerClickListener markerClickListener) function.

我建议查看 MarkerManagerClusterManager 类以更好地了解这些类的交互方式.

I recommend looking over the source of the MarkerManager and ClusterManager classes to get a better idea of how the classes interact.

这篇关于Android 集群和标记点击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆