如何在 google map Cluster Manager 上实现事件侦听器?

How to implement event listenner on google map ClusterManager?

我正在使用 utils 库中提供的 GoogleMaps 标记聚类。单击 Cluster 时,不会调用下面的 onClusterClick()onClusterItemClick() 方法。是否有集群点击事件?

@Override
public void onMapReady(GoogleMap googleMap) {

    /*start clustring*/

    clusterManager = new ClusterManager<>(getActivity(), map);
    map.setOnCameraIdleListener(clusterManager);

    /*end clustring*/



    LatLng karawanbazar1 = new LatLng(36.861666, 10.156551);
    LatLng karawanbazar2 = new LatLng(36.860179, 10.152874);



    MyItemMap myItemMap1 = new MyItemMap(karawanbazar1);
    MyItemMap myItemMap2 = new MyItemMap(karawanbazar2);


    clusterManager.addItem(myItemMap1);

    clusterManager.addItem(myItemMap2);


    clusterManager.cluster();
    clusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MyItemMap>() {
        @Override
        public boolean onClusterItemClick(MyItemMap myItemMap) {
            Toast.makeText(getContext(),"onclusterItemClick"+ myItemMap.getPosition(),Toast.LENGTH_LONG);
            System.out.println("this is cluster clusteItemClick "+myItemMap.toString() );
            return true;
        }
    });
    clusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MyItemMap>() {
        @Override
        public boolean onClusterClick(Cluster<MyItemMap> cluster) {
            Toast.makeText(getContext(),"setOnClusterClickListener"+ cluster.getSize(),Toast.LENGTH_LONG);
            System.out.println("this is cluster onClusterClick "+cluster.toString() );

            return true;
        }
    });
}

可能您正在寻找的是 GoogleMap 对象的方法 setOnMarkerClickListener()

googleMap.setOnMarkerClickListener(clusterManager)

然后你要设置:

clusterManager.setOnClusterClickListener()

我所要做的就是在集群上使用事件之前添加这一行。

  map.setOnMarkerClickListener(yourClusterManager);