Google 地图聚类不适用于动态数据

Google Maps Clustering not working with dynamic data

我对 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();

很遗憾,集群不起作用。例如,我将地图缩小多远并不重要。我缺少什么吗?

提前致谢!

我的地图上只有 4 个兴趣点,聚类刚开始时有 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)。