隐藏通过ClusterManager google maps android显示的信息窗口

时间:2014-06-16 15:35:48

标签: android google-maps

我有一个让我发疯的问题。我使用集群管理器实现了一个包含大量点的地图,我的经理设置如下:

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");
    }

感谢您的关注。

2 个答案:

答案 0 :(得分:5)

首先覆盖DefaultClusterRenderer<myPOI>

然后在集群管理器上设置渲染器,如下所示:

mClusterManager.setRenderer(myClusterRenderer);

然后你可以得到标记并将其隐藏起来:

    @Override
    public void onClusterItemInfoWindowClick(final myPOI item) {
        myClusterRenderer.getMarker(item).hideInfoWindow();
  }

答案 1 :(得分:1)

我认为这更好:

BarcodeWriter.Write