【问题标题】:Cluster Marker Click Event Android集群标记点击事件 Android
【发布时间】:2015-12-28 07:12:43
【问题描述】:

我正在使用utils library 中提供的 Google Maps Marker Clustering。单击集群时,不会调用下面的onClusterClick 方法。有Cluster click event吗?

 @Override
    public boolean onClusterClick(Cluster<MyItem> cluster)
    {        
        return true;
    }

【问题讨论】:

    标签: cluster-computing marker


    【解决方案1】:

    你需要在之前添加这一行:

    map.setOnMarkerClickListener(yourClusterManager);
    

    【讨论】:

      【解决方案2】:

      这是实现您的要求的方法,即单击集群或集群项目。

      mapSupportFragment.getMapAsync(new OnMapReadyCallback() {
          @Override
          public void onMapReady(GoogleMap googleMap) {
      
              mMap = googleMap; //(Here mMap is my GoogleMap object declared & was initialized).
      
              // Initialize the manager with the context and the map.
              mClusterManager = new ClusterManager<AppClusterItem>(MFragmentActivity.this, mMap);
              mClusterManager.setRenderer(new MyCustomRender(MFragmentActivity.this, mMap, mClusterManager)); 
              // Here which I used is my custom rendering class
      
              // Point the map's listeners at the listeners implemented by the cluster manager.
              mMap.setOnCameraChangeListener(mClusterManager);
              mMap.setOnMarkerClickListener(mClusterManager);
      
              mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<AppClusterItem>() {
                  @Override
                  public boolean onClusterClick(Cluster<AppClusterItem> cluster) {
      
                      Log.e("I clicked @ ", "Cluster which consumes whole list of ClusterItems");
                      return false;
                  }
              });
      
              mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<AppClusterItem>() {
                  @Override
                  public boolean onClusterItemClick(AppClusterItem item) {
                      Log.e("I clicked @ ", "Cluster Item");
                      return false;
                  }
              });
          }
      });
      

      然后,此解决方案将不允许您使用 GoogleMap.setOnMarkerClickListener 方法,因此,you can read this answer

      【讨论】:

        【解决方案3】:

        可能为时已晚,但如果有人想知道: 只需在 CkusterManger 上设置 OnClusterItemClcikListener :

                mClusterManager.setOnClusterItemClickListener(this);
        

        然后让你类实现 ClusterManager.OnClusterItemClickListener

        activity a implements ClusterManager.OnClusterItemClickListener .... 
        

        然后最后调用

         @Override
        public boolean onClusterItemClick(ClusterItem clusterItem) {
            Toast.makeText(getActivity(), "clciked", Toast.LENGTH_SHORT).show();
            return true;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-12-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-27
          • 2017-01-09
          • 2015-07-06
          • 1970-01-01
          相关资源
          最近更新 更多