【问题标题】:Android maps markers show on map only after zooming changeAndroid地图标记仅在缩放更改后显示在地图上
【发布时间】:2017-01-18 04:45:01
【问题描述】:

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

我将添加代码 sn -p 如何添加我的标记

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

【问题讨论】:

  • 如果您调用 mClusterManager?.clearItems() 然后调用 mClusterManager?.addItems(items) 并委托 mClusterManager?.cluster() ,但如果不更改缩放级别,则不会显示任何内容:(。任何人都可以帮助我吗?

标签: android google-maps google-maps-markers


【解决方案1】:

需要重新聚类。

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      相关资源
      最近更新 更多