使用聚合管理器添加地图上的新标记,直到我放大和缩小地图时才会反映更改

18

当我通过簇管理器以编程方式添加新的标记时,地图上不会反映出这些更改,直到我更新缩放。

我在stackoverflow上看到了很多问题,但那些方法对我都没有用。

请告诉我如何在不清除地图的情况下更新地图。

代码:

 for (int i = 0; i < name.length; i++)
 { 
   Person_marker person_marker = new Person_marker(createRandLocation(latLng),
   name[i], getAddress(latLng), typedArray.getResourceId(i, -1), time[i], acuracy[i]);
   person_markerList.add(person_marker);
 } 
clusterManager.clearItems(); clusterManager.addItems(person_markerList);

请展示一下你目前为止所做的工作。 - Jamie Rees
@JamieRees for (int i = 0; i < name.length; i++) {Person_marker person_marker = new Person_marker(createRandLocation(latLng), name[i], getAddress(latLng), typedArray.getResourceId(i, -1), time[i], acuracy[i]); person_markerList.add(person_marker); } clusterManager.clearItems(); clusterManager.addItems(person_markerList);这是清除现有标记并在地图上添加新标记的代码。 - Edward Collins
1个回答

33

在添加完所有标记后,如果调用clusterManager.cluster(),它会绘制先前添加的内容。

希望这有所帮助。


2
非常好,帮了我大忙!这个在哪里有文档记录?Google的聚类演示并没有使用这个功能,https://github.com/googlemaps/android-maps-utils/blob/master/demo/src/com/google/maps/android/utils/demo/ClusteringDemoActivity.java - Eduardo
4
你说得对,我也没有在任何地方看到它被正确记录,但是如果你打开ClusterManager的代码(https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/clustering/ClusterManager.java),并检查cluster方法,javadoc确实说过你可能需要在添加新项目后调用它。 - k3v1n4ud3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接