【问题标题】:Hide info window shown via ClusterManager google maps android隐藏通过 ClusterManager 谷歌地图 android 显示的信息窗口
【发布时间】:2014-08-06 11:48:39
【问题描述】:

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

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

感谢您的关注。

【问题讨论】:

    标签: android google-maps


    【解决方案1】:

    首先覆盖DefaultClusterRenderer&lt;myPOI&gt;

    然后像这样在集群管理器上设置你的渲染器:

    mClusterManager.setRenderer(myClusterRenderer);
    

    然后你可以像这样获取标记并隐藏它:

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

    【讨论】:

    • 我如何使用类似的方法来获取所有标记(甚至是聚集的标记)?目前无法立即隐藏所有集群项目,而无需缩放。谢谢
    【解决方案2】:

    我认为这样更好:

    mClusterManager.getRenderer().setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MyMarker>() {
                @Override
                public boolean onClusterClick(Cluster<MyMarker> cluster) {
                    return true;
                }
            });
    

    【讨论】:

      猜你喜欢
      • 2016-12-21
      • 2012-02-18
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多