我有一个简单的Android谷歌地图,它实现了gmap utils集群。
我的标记也设置为可拖动,效果很好。
问题是,拖动后我缩小并且标记聚类,但是在放大我拖动的标记之后是在我创建它时的初始点,而不是我拖到它的位置。
如何更新标记在集群集合中的位置?
在onMarkerDragEnd()事件中调用mClusterManager.cluster()不起作用。
答案 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();
}
不幸的是,这会转储我为标记设置的自定义图标,但这是另一个线程。希望这会有所帮助。