我有一个让我发疯的问题。我使用集群管理器实现了一个包含大量点的地图,我的经理设置如下:
mClusterManager = new ClusterManager<myPOI>(getActivity()
.getApplicationContext(), getMap());
mClusterManager.setRenderer(new myPOIRenderer());
mClusterManager.setOnClusterClickListener(this);
mClusterManager.setOnClusterInfoWindowClickListener(this);
mClusterManager.setOnClusterItemClickListener(this);
mClusterManager.setOnClusterItemInfoWindowClickListener(this);
mMap.setOnInfoWindowClickListener(mClusterManager);
mMap.setOnCameraChangeListener(mClusterManager);
mMap.setOnMarkerClickListener(mClusterManager);
我用addItem()方法添加标记。覆盖onClusterItemInfoWindowClick方法我可以轻松检查用户何时点击信息窗口。问题是我的方法(见下文)没有提供标记,只提供与之相关的数据对象,所以我的问题是:如何以编程方式关闭该方法中的信息窗口?
@Override
public void onClusterItemInfoWindowClick(myPOI item) {
System.out.println("onClusterItemInfoWindowClick");
}
感谢您的关注。
答案 0 :(得分:5)
首先覆盖DefaultClusterRenderer<myPOI>
。
然后在集群管理器上设置渲染器,如下所示:
mClusterManager.setRenderer(myClusterRenderer);
然后你可以得到标记并将其隐藏起来:
@Override
public void onClusterItemInfoWindowClick(final myPOI item) {
myClusterRenderer.getMarker(item).hideInfoWindow();
}
答案 1 :(得分:1)
我认为这更好:
BarcodeWriter.Write