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