如何在集群管理器中的标记中调用 showinfowindow()?
How I can call showinfowindow() in a marker within cluster manager?
我正在集群中使用标记(google 地图),在调用 onclick 方法时显示信息 window 没有问题。
问题是我无法找到如何使用 showInfoWindow() 方法,就像我在标记上所做的那样,无需单击即可打开信息。
当我使用标记时
marker = map.addMarker(new MarkerOptions()
.position(position)
.snippet(info));
然后我打电话给
marker.showInfoWindow();
如何使用集群管理器中地图上的标记 (ClusterItem) 执行相同的操作?
MarkCluster cluster = new MarkCluster(Lat, Lon, info);
mClusterManager.addItem(cluster);
这是我要显示信息窗口的标记
试试这个,这是我在使用聚类时获取地图标记引用的方法:
当您创建 ClusterManager
时,如果您不调用 .setRenderer()
方法并向其传递您自己的 ClusterRenderer
执行。如果您让 ClusterManager
创建自己的 DefaultClusterRenderer
关键是明确添加它以便您可以保留对它的引用(因为 ClusterManager
没有 getter 方法所以你可以参考 ClusterRenderer
它的使用):
mClusterManager = new ClusterManager<ClusterItem>(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
对象将为空,因此请务必在使用前检查标记对象是否为空。
如果您确定在调用 .getMarker()
时标记已放置在地图上并且标记仍然为空,则覆盖 .equals()
方法
在对象中用于实现 ClusterItem
接口,以确保您可以找到渲染器持有的正确 ClusterItem
对象。
我正在集群中使用标记(google 地图),在调用 onclick 方法时显示信息 window 没有问题。 问题是我无法找到如何使用 showInfoWindow() 方法,就像我在标记上所做的那样,无需单击即可打开信息。
当我使用标记时
marker = map.addMarker(new MarkerOptions()
.position(position)
.snippet(info));
然后我打电话给
marker.showInfoWindow();
如何使用集群管理器中地图上的标记 (ClusterItem) 执行相同的操作?
MarkCluster cluster = new MarkCluster(Lat, Lon, info);
mClusterManager.addItem(cluster);
这是我要显示信息窗口的标记
试试这个,这是我在使用聚类时获取地图标记引用的方法:
当您创建 ClusterManager
时,如果您不调用 .setRenderer()
方法并向其传递您自己的 ClusterRenderer
执行。如果您让 ClusterManager
创建自己的 DefaultClusterRenderer
关键是明确添加它以便您可以保留对它的引用(因为 ClusterManager
没有 getter 方法所以你可以参考 ClusterRenderer
它的使用):
mClusterManager = new ClusterManager<ClusterItem>(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
对象将为空,因此请务必在使用前检查标记对象是否为空。
如果您确定在调用 .getMarker()
时标记已放置在地图上并且标记仍然为空,则覆盖 .equals()
方法
在对象中用于实现 ClusterItem
接口,以确保您可以找到渲染器持有的正确 ClusterItem
对象。