群集后,Android gmap utils群集更新标记位置

时间:2017-07-11 20:18:19

标签: android google-maps cluster-computing

我有一个简单的Android谷歌地图,它实现了gmap utils集群。

我的标记也设置为可拖动,效果很好。

问题是,拖动后我缩小并且标记聚类,但是在放大我拖动的标记之后是在我创建它时的初始点,而不是我拖到它的位置。

如何更新标记在集群集合中的位置?

在onMarkerDragEnd()事件中调用mClusterManager.cluster()不起作用。

1 个答案:

答案 0 :(得分:0)

找到答案(虽然像往常一样,它只是提出了更多问题)

显然GMap utils库已更新,公开了一种允许您通过集群管理器获取集群项的方法。

因此,首先,为要移动的标记创建一个临时存储变量:

private ClusterItem tempCM;

接下来,在拖动开始时将标记放入该存储变量:

@Override
public void onMarkerDragStart(Marker marker) {
    tempCM = customRenderer.getClusterItem(marker);
}

最后,从群集管理器中删除该标记,并在拖动端添加新更新的标记:

@Override
public void onMarkerDragEnd(Marker marker) {
    ClusterMarker newCM = new ClusterMarker(marker.getPosition().latitude,marker.getPosition().longitude,marker.getTitle(),marker.getSnippet());
    mClusterManager.removeItem((ClusterMarker)tempCM);
    mClusterManager.addItem(newCM);

    mClusterManager.cluster();
}

不幸的是,这会转储我为标记设置的自定义图标,但这是另一个线程。希望这会有所帮助。