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

Zag*_*r84 2 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);
Run Code Online (Sandbox Code Playgroud)

然后我用addItem()方法添加标记.覆盖onClusterItemInfoWindowClick方法我可以轻松检查用户何时点击信息窗口.问题是我的方法(见下文)没有提供标记,但只提供与之相关的数据对象,所以我的问题是:如何以编程方式关闭该方法内的信息窗口?

@Override
    public void onClusterItemInfoWindowClick(myPOI item) {
        System.out.println("onClusterItemInfoWindowClick");
    }
Run Code Online (Sandbox Code Playgroud)

感谢您的关注.

Bol*_*ing 6

首先覆盖DefaultClusterRenderer<myPOI>.

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

mClusterManager.setRenderer(myClusterRenderer);
Run Code Online (Sandbox Code Playgroud)

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

    @Override
    public void onClusterItemInfoWindowClick(final myPOI item) {
        myClusterRenderer.getMarker(item).hideInfoWindow();
  }
Run Code Online (Sandbox Code Playgroud)