使用Google Maps Android Marker Clustering Utility时控制缩放级别

时间:2015-02-23 12:24:04

标签: android google-maps android-maps-v2 android-maps-utils

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

使用此库时,有人知道如何控制缩放级别吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

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

如@ DiscDev的回答here中所述,在地图上注册一个回调方法,如下所示: mMap.setOnCameraChangeListener(getCameraChangeListener())

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

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