1

我正在使用 Google Maps Android Marker Clustering Utility 为我的标记启用集群。为了使用这个库,我需要将地图的cameraChangeListener设置为ClusterManager类型的对象。问题是我想控制最小缩放级别,以便当缩放级别低于某个阈值时,将其值设置回预定义值。但是,当我将onCameraChangeListener设置为ClusterManager类型的对象时,我失去了控制缩放级别的可能性。

有人知道在使用这个库时如何控制缩放级别吗?

非常感谢!

4

1 回答 1

1

我稍后会对此进行测试,但粗略地说,您需要稍微自定义onCameraChangeListener一下。

如@DiscDev's answer here中所述,在地图上注册回调方法,如下所示: mMap.setOnCameraChangeListener(getCameraChangeListener())

在调用 ClusterManager 之前,您的 getCameraChangeListener 应该按照您希望的方式处理缩放:

public OnCameraChangeListener getCameraChangeListener()
{
  return new OnCameraChangeListener()
  {
    @Override
    public void onCameraChange(CameraPosition position)
    {
        if (position.zoom < [minimum desired position]) {
          mMap.animateCamera(CameraUpdateFactory.zoomTo( [float value of desired zoom level] );
        }
        mClusterManager.onCameraChange(mMap.getCameraPosition());
    }
  }
}

于 2015-02-23T19:17:13.100 回答