我正在使用Google Maps Android Marker Clustering Utility为我的标记启用群集。为了使用这个库,我需要将地图的 cameraChangeListener 设置为 ClusterManager 类型的对象。 问题是我想控制最小缩放级别,以便当缩放级别低于某个阈值时,将其值设置回预定义值。但是,当我将 onCameraChangeListener 设置为 ClusterManager 类型的对象时,我失去了控制缩放级别的可能性。
使用此库时,有人知道如何控制缩放级别吗?
非常感谢!
答案 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());
}
}
}