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)。
我对 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)。