缩放更改后,Android地图标记仅显示在地图上 [英] Android maps markers show on map only after zooming change

查看:126
本文介绍了缩放更改后,Android地图标记仅显示在地图上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I made simple application where I get markers based on screen coordinates from the server. Problem is that markers doesn't appear on map immediately. User user must zoom in or zoom out only then marker is visible. Why is that? Is it possible to show marker as soon when marker data is downloaded from server? Or is it possible to somehow refresh map? I know that in previous version there was method map.invalidate() that is basically what I need to have now. Unfortunately this method is not available now.

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

I will add code snippet how my markers is added

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


推荐答案

它需要重新聚类。

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

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

Because, when you add or remove an ClusterItem (MarkerItemData), it just performs the algorithm and calculates clusters. But does not render on map

最后,ClusterManager侦听onCameraIdle事件(包括缩放事件)并在内部调用cluster()方法。这是用户必须放大或缩小的答案,只有标记可见。

Finally, ClusterManager listens onCameraIdle event(includes zoom events) and invokes cluster() method internally. This is the answer of user must zoom in or zoom out only then marker is visible.

这篇关于缩放更改后,Android地图标记仅显示在地图上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆