Android 地图标记仅在缩放更改后显示在地图上

Android maps markers show on map only after zooming change

我制作了一个简单的应用程序,可以根据服务器的屏幕坐标获取标记。问题是标记不会立即出现在地图上。用户用户必须放大或缩小,然后标记才可见。这是为什么?从服务器下载标记数据后是否可以立即显示标记?或者是否有可能以某种方式刷新地图?我知道在以前的版本中有方法 map.invalidate() 基本上是我现在需要的。遗憾的是,这种方法现在不可用。

我将添加代码片段如何添加我的标记

@Override
        protected void onPostExecute(ArrayList<MarkerItemData> markerItemData) {
            super.onPostExecute(markerItemData);
            if(markerItemData != null) {
                mClusterManager.addItems(markerItemData);
            }
        }

从 javadoc here,您需要在将标记添加到您的 ClusterManager 后重新聚类,执行 mClusterManager.cluster().

还需要re-clustering。

mClusterManager.addItems(markerItemData);
mClusterManager.cluster();

因为,当您添加或删除 ClusterItem (MarkerItemData) 时,它只是执行算法并计算集群。但不在地图上呈现

最后,ClusterManager监听onCameraIdle事件(包括zoom事件),并在内部调用cluster()方法。这是 用户必须放大或缩小才能看到标记的答案。