android集群管理工具,android – 如何在集群管理器中的标记中调用showinfowindow()?...

我正在使用群集中的标记(谷歌地图),在调用onclick方法时显示信息窗口没有问题.

问题是我找不到如何使用方法showInfoWindow(),就像我在标记上一样打开信息而不给出点击.

当我使用标记时

marker = map.addMarker(new MarkerOptions()

.position(position)

.snippet(info));

然后我打电话

marker.showInfoWindow();

我如何使用集群管理器中的地图上的标记(ClusterItem)来做同样的事情?

MarkCluster cluster = new MarkCluster(Lat, Lon, info);

mClusterManager.addItem(cluster);

它是我想要显示infoWindow的标记

abec10e80cd9bd2dfa172a521fbaa142.png

解决方法:

试试这个,这是我在使用群集时获取地图标记引用的方法:

创建ClusterManager时,如果不调用.setRenderer()方法并将其传递给自己的ClusterRenderer实现的实例,则它始终会创建并使用DefaultClusterRenderer的实例.如果您让ClusterManager创建自己的DefaultClusterRenderer,关键是要显式添加它,以便您可以保留对它的引用(因为ClusterManager没有getter方法,因此您可以获得对其使用的ClusterRenderer的引用):

mClusterManager = new ClusterManager(getActivity(), mMap);

mRenderer = new DefaultClusterRenderer(getActivity(), mMap, mClusterManager);

mClusterManager.setRenderer(mRenderer);

mClusterManager.addItem(ClusterItem);

然后,当您需要访问标记时,将ClusterRenderer传递给与标记关联的ClusterItem.用于查找标记的ClusterItem将是您传递给ClusterManager以将标记最初添加到集群的ClusterItem:

Marker marker = mRenderer.getMarker(ClusterItem);

if(marker != null){

marker.showInfoWindow();

}

如果标记尚未在地图上呈现,则Marker对象将为null,因此请务必在使用之前检查标记对象是否为null.

如果您确定在调用.getMarker()时标记已放置在地图上且标记仍为null,则覆盖.equals()方法

在对象中用于实现ClusterItem接口以确保您可以找到呈现器保持的正确ClusterItem对象.

标签:android,google-maps,markerclusterer

来源: https://codeday.me/bug/20190727/1555202.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值