Google地图群集无法使用动态数据

时间:2017-07-10 09:51:15

标签: android android-maps android-maps-utils

我对GoogleMaps的群集有疑问。在我的应用程序中,当用户放大或滚动地图时更新地图。我正在使用OnCameraIdleListenerlink):

@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();

遗憾的是,群集不起作用。例如,从地图缩小到地图的距离并不重要。有什么东西我不见了?

提前致谢!

1 个答案:

答案 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)。