1

我对GoogleMaps. 在我的应用程序中,当用户放大或滚动地图时,我会更新地图。我为此使用OnCameraIdleListener链接):

@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

1 回答 1

2

我的地图上只有 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 )。

于 2017-07-10T11:39:38.570 回答