gpt4 book ai didi

java - 使用 ClusterManager 时如何更新 map 上的标记

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:12 26 4
gpt4 key购买 nike

我正在尝试使用来自服务器的较新数据更新我的 map ,但我不知道如何从中删除旧项目(标记和集群 - 使用 ClusterManager) map ( - 在我看来,我只能在 ClusterManager 中添加。

我有 BroadcastReceiver,它在有新数据时获得 Intent 。我正在尝试这样的事情:(但它给了我 UnsupportedOperationException"...getMarkers().clear();"

private BroadcastReceiver myRefrestMapBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "onReceive");
mClusterManager.clearItems();
mClusterManager.getMarkerCollection().getMarkers().clear();
mClusterManager.getClusterMarkerCollection().getMarkers().clear();
mClusterManager.addItems(LocationGetter.getReports());
}
};

添加数据到 map 只有这个功能。

java.util.Collection<Marker> userCollection = mClusterManager.getMarkerCollection().getMarkers();
ArrayList<Marker> userList = new ArrayList<Marker>(userCollection);
// now is userList empty
for(Marker marker: userList){
marker.remove();
}

java.util.Collection<Marker> userCollection2 = mClusterManager.getClusterMarkerCollection().getMarkers();
ArrayList<Marker> userList2 = new ArrayList<Marker>(userCollection2);
// now is userList2 empty
for(Marker marker: userList2){
marker.remove();
}

mClusterManager.addItems(LocationGetter.getReports());

最佳答案

根据 ClusterManager documentation , 我们可以使用 mClusterManager.cluster();

This method Force a re-cluster. You may want to call this after adding new item(s).

关于java - 使用 ClusterManager 时如何更新 map 上的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32727453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com