Как реализовать приемник событий на карте Google ClusterManager? - PullRequest
0 голосов
/ 14 января 2019

Я использую кластер GoogleMaps, доступный в библиотеке утилит. При нажатии на Cluster нижеприведенный метод onClusterClick() и onClusterItemClick() не вызывается. Есть событие Cluster click?

@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;
        }
    });
}

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Все, что мне нужно было сделать, это добавить эту строку перед использованием событий в кластерах.

  map.setOnMarkerClickListener(yourClusterManager);
0 голосов
/ 14 января 2019

Вероятно, вы ищете метод setOnMarkerClickListener() из GoogleMap объект:

googleMap.setOnMarkerClickListener(clusterManager)

Тогда вы должны установить:

clusterManager.setOnClusterClickListener()
...