【问题标题】:How to implement event listenner on google map ClusterManager?如何在谷歌地图 ClusterManager 上实现事件监听器?
【发布时间】:2019-01-14 20:12:13
【问题描述】:

我正在使用 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;
        }
    });
}

【问题讨论】:

  • 复制所有活动/片段代码

标签: android google-maps google-maps-markers


【解决方案1】:

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

googleMap.setOnMarkerClickListener(clusterManager)

那么你必须设置:

clusterManager.setOnClusterClickListener()

【讨论】:

  • 对不起,您需要设置 OnMarkerClickListener 而不是 onMapClickListener
  • 您问如何使用 GoogleMap 向 ClusterManager 添加事件侦听器,这就是该答案提供的内容。
  • onMapClickListener 不接受 clusterManager 作为参数
  • 我的错,我在信息中写了正确的方法名称,并将错误的方法名称复制到代码括号中
  • 没关系。我们是她互相帮助:P
【解决方案2】:

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

  map.setOnMarkerClickListener(yourClusterManager);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多