我对GoogleMaps
的群集有疑问。在我的应用程序中,当用户放大或滚动地图时更新地图。我正在使用OnCameraIdleListener
(link):
@Override
public void onCameraIdle() {
clearItems();
do API Call
}
当发生这种情况时,我正在使用新的半径进行API调用,并且我正在接收在当前半径内可见的新对象列表。在我收到数据后,我将新的POI绘制到我的地图上。因此,我遍历列表并为每个元素创建一个集群项并将其添加到集群管理器。
CustomClusterItem clusterItem = new CustomClusterItem(new LatLng(item.getLocation().getLatitude(), item.getLocation().getLongitude()), poi);
mClusterManager.addItem(clusterItem);
在迭代后我调用
mClusterManager.cluster();
遗憾的是,群集不起作用。例如,从地图缩小到地图的距离并不重要。有什么东西我不见了?
提前致谢!
答案 0 :(得分:1)
我的地图上只有4个POI,而群集只是从5个项目开始。所以没有错。我只是不知道默认配置了一个大小。如果有人想用少于5个项目实现聚类,你可以使用
@Override
protected boolean shouldRenderAsCluster(Cluster<T> cluster) {
//start clustering if at least 2 items overlap
return cluster.getSize() > 1;
}
此方法来自DefaultClusterRenderer(https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/clustering/view/DefaultClusterRenderer.java)。