【问题标题】:Control zoom level when using Google Maps Android Marker Clustering Utility使用 Google Maps Android Marker Clustering Utility 时控制缩放级别
【发布时间】:2015-02-23 12:24:04
【问题描述】:
我正在使用 Google Maps Android Marker Clustering Utility 为我的标记启用集群。为了使用这个库,我需要将地图的 cameraChangeListener 设置为 ClusterManager 类型的对象。
问题是我想控制最小缩放级别,以便当缩放级别低于某个阈值时,将其值设置回预定义值。但是,当我将 onCameraChangeListener 设置为 ClusterManager 类型的对象时,我失去了控制缩放级别的可能性。
有人知道在使用这个库时如何控制缩放级别吗?
非常感谢!
【问题讨论】:
标签:
android
google-maps
android-maps-v2
android-maps-utils
【解决方案1】:
我稍后会对此进行测试,但大致而言,您需要稍微自定义一下您的 onCameraChangeListener。
如@DiscDev 的回答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());
}
}
}