我做了一个简单的应用程序,我根据服务器的屏幕坐标得到标记。问题是标记不会立即出现在地图上。用户用户必须放大或缩小才能看到标记。这是为什么?从服务器下载标记数据时是否可以立即显示标记?或者有可能以某种方式刷新地图?我知道在以前的版本中有方法map.invalidate()
基本上是我现在需要的。不幸的是,这种方法现在还没有。
我将添加代码片段,添加我的标记
@Override
protected void onPostExecute(ArrayList<MarkerItemData> markerItemData) {
super.onPostExecute(markerItemData);
if(markerItemData != null) {
mClusterManager.addItems(markerItemData);
}
}
答案 0 :(得分:8)
它需要重新聚类。
mClusterManager.addItems(markerItemData);
mClusterManager.cluster();
因为,当您添加或删除ClusterItem(MarkerItemData)时,它只执行算法并计算群集。但是不在地图上渲染
最后,ClusterManager侦听onCameraIdle事件(包括缩放事件)并在内部调用cluster()方法。这是用户必须放大或缩小的答案,只有标记可见。
答案 1 :(得分:2)
在javadoc here中,您需要在将标记添加到执行ClusterManager
的{{1}}之后重新标记您的标记。