我使用谷歌地图标记聚类在utils library
可用。在点击一个集群,下面onClusterClick
方法不叫。有没有Cluster click event
?簇标记点击事件的Android
@Override
public boolean onClusterClick(Cluster<MyItem> cluster)
{
return true;
}
我使用谷歌地图标记聚类在utils library
可用。在点击一个集群,下面onClusterClick
方法不叫。有没有Cluster click event
?簇标记点击事件的Android
@Override
public boolean onClusterClick(Cluster<MyItem> cluster)
{
return true;
}
你需要前加入这一行:
map.setOnMarkerClickListener(yourClusterManager);
下面是如何实现您的要求,即点击集群或集群项目的方式。
mapSupportFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap; //(Here mMap is my GoogleMap object declared & was initialized).
// Initialize the manager with the context and the map.
mClusterManager = new ClusterManager<AppClusterItem>(MFragmentActivity.this, mMap);
mClusterManager.setRenderer(new MyCustomRender(MFragmentActivity.this, mMap, mClusterManager));
// Here which I used is my custom rendering class
// Point the map's listeners at the listeners implemented by the cluster manager.
mMap.setOnCameraChangeListener(mClusterManager);
mMap.setOnMarkerClickListener(mClusterManager);
mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<AppClusterItem>() {
@Override
public boolean onClusterClick(Cluster<AppClusterItem> cluster) {
Log.e("I clicked @ ", "Cluster which consumes whole list of ClusterItems");
return false;
}
});
mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<AppClusterItem>() {
@Override
public boolean onClusterItemClick(AppClusterItem item) {
Log.e("I clicked @ ", "Cluster Item");
return false;
}
});
}
});
该解决方案随后将不会让你使用GoogleMap.setOnMarkerClickListener方法,那就这样吧,you can read this answer。
莫比为时已晚,但如果有任何人想知道: 刚刚成立OnClusterItemClcikListener您CkusterManger:
mClusterManager.setOnClusterItemClickListener(this);
然后让你的类实现ClusterManager.OnClusterItemClickListener
activity a implements ClusterManager.OnClusterItemClickListener ....
然后finaly通话
@Override
public boolean onClusterItemClick(ClusterItem clusterItem) {
Toast.makeText(getActivity(), "clciked", Toast.LENGTH_SHORT).show();
return true;
}