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

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

问题描述

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



因为我还希望某些标记始终是非集群的,所以我还添加了一些标记而不使用mClusterManager,但直接使用了地图的mMap.addMarker(),这样我就可以确定它们从未聚集在地图上。



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



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



或者有没有一种方法可以指定集群管理器永远不会聚集一些标记?在这种情况下,我将不必处理那些不同的点击监听器,因为所有标记都将使用群集实用程序显示。



谢谢
您可以创建一个新的 MarkerManager ,并将其传递到 ClusterManager code>构造函数。然后使用 MarkerManager#newCollection 创建一个新的Marker集合,并使用 MarkerManager.Collection#addMarker 方法。
$ b 然后,不要调用 mMap.setOnMarkerClickListener(mClusterManager),而是调用 mMap.setOnMarkerClickListener(mMarkerManager),它会处理将 Marker 点击事件转发给适当的监听器。您还需要使用 MarkerManager.Collection#setOnMarkerClickListener(GoogleMap.OnMarkerClickListener markerClickListener)函数为普通标记设置onMarkerClick侦听器。



我建议您查看 MarkerManager ClusterManager 类,以更好地了解这些类如何交互。


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.

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.

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.

Thank you

解决方案

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.

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.

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天全站免登陆