6

在尝试实现 useClusterManager时,我注意到getMap().setOnCameraChangeListener(clusterManager)已弃用。查看 Github 上的 android-maps-utils 示例,我注意到getMap().setOnCameraIdleListener(mClusterManager);

当我尝试做同样的事情时,我收到一个错误,因为默认ClusterManager类没有实现GoogleMap.OnCameraIdleListener.

然而,在我的 gradle 文件中,我使用的是最新的 maps-util 库:

dependencies {
    compile 'com.google.maps.android:android-maps-utils:0.4.3'
}

我怎样才能获得最新的ClusterManager课程?谢谢

4

2 回答 2

20

代替:

mMap.setOnCameraChangeListener(mClusterManager);

去做:

final CameraPosition[] mPreviousCameraPosition = {null};
    googleMap.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
        @Override
        public void onCameraIdle() {
            CameraPosition position = googleMap.getCameraPosition();
            if(mPreviousCameraPosition[0] == null || mPreviousCameraPosition[0].zoom != position.zoom) {
                mPreviousCameraPosition[0] = googleMap.getCameraPosition();
                clusterManager.cluster();
            }
        }
    });

那可行...

于 2016-08-16T15:45:36.183 回答
0

在 play-services-maps 9.4.0 版本的 API 之后,他们将 GoogleMap.OnCameraChangeListener 更改为这 3 个侦听器

GoogleMap.OnCameraMoveStartedListener,

GoogleMap.OnCameraMoveListener,

GoogleMap.OnCameraIdleListener。

于 2017-04-18T14:33:33.560 回答