更新单个项目GoolgeMap Cluster

Que*_*ers 6 java android hashmap websocket markerclusterer

我正在使用库来在Android中集群GoogleMap.我的问题是如何从昨天更新我通过谷歌的单个项目,没有解释更新单项的答案.我在我的项目中使用websocket所以我需要更新从websocket接收的项目数据.看下面我的实现.

我的概念是每当我从websocket接收数据时都会执行mClusterManager.remove(item)mClusterManager.add(item)+ mClusterManager.cluster().

和hasmap一起识别循环上的对象,同时添加到cluseter,如: hashmap.put(_id,mClusterItem[i]);

现在,每当收到websocket数据时,我都会这样做,

    onDataReceive(String _id,String name, double latlng, ....){
    mClusterManager.remove(hashmap.get(_id));

   appClusterItem[0] = new AppClusterItem(.....);
    mClusterManager.add(appClusterItem[0])  // Here how can I add item 
    mClusterManager.cluster();
    }
Run Code Online (Sandbox Code Playgroud)

但是,上面的代码首先在第一个数据接收时起作用,然后从第二次起它将继续添加标记并且无法删除,这意味着找不到mClusterManager.remove(hasmap.get(_id)).而appClusterItem [0]是因为我不能使用hashmap.get(_id); 在上面的情况下,因为它给出了预期的错误变量.无论如何要删除相同的对象并在该地方添加对象?

Vad*_*ler 2

我还尝试通过 mClusterManager.remove 从集群中删除标记,但遇到了一些问题。因此,就我而言,当我收到数据更改时,我会这样做:我删除需要从列表中删除的项目,清除群集上的所有标记,并将mClusterManager.clearItems();新数据放入群集。