rob*_*ven 3 android google-maps markerclusterer
我正在使用群集中的标记(谷歌地图),在调用onclick方法时显示信息窗口没有问题.问题是我找不到如何使用方法showInfoWindow(),就像我在标记上一样打开信息而不给出点击.
当我使用标记时
marker = map.addMarker(new MarkerOptions()
.position(position)
.snippet(info));
Run Code Online (Sandbox Code Playgroud)
然后我打电话
marker.showInfoWindow();
Run Code Online (Sandbox Code Playgroud)
我如何使用集群管理器中的地图上的标记(ClusterItem)来做同样的事情?
MarkCluster cluster = new MarkCluster(Lat, Lon, info);
mClusterManager.addItem(cluster);
Run Code Online (Sandbox Code Playgroud)
试试这个,这是我在使用群集时获取地图标记引用的方法:
当您创建ClusterManager它时,它始终创建并使用DefaultClusterRenderer如果您不调用该.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);
Run Code Online (Sandbox Code Playgroud)
然后,当你需要访问标记经过ClusterRenderer了ClusterItem与标记关联.在ClusterItem您使用找到的标记将是ClusterItem你传递给ClusterManager到标记添加到原来的集群:
Marker marker = mRenderer.getMarker(ClusterItem);
if(marker != null){
marker.showInfoWindow();
}
Run Code Online (Sandbox Code Playgroud)
Marker如果尚未在地图上渲染标记,则该对象将为null,因此请务必在使用之前检查标记对象是否为空.
如果您确定在调用时标记已放置在地图上.getMarker()且标记仍为null,则覆盖.equals()对象用途中的方法以实现ClusterItem接口,以确保您可以找到ClusterItem呈现器保持的正确对象.
| 归档时间: |
|
| 查看次数: |
1535 次 |
| 最近记录: |