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