如何获得当前的GoogleMap缩放级别?

jhc*_*jhc 21 android google-maps

在GoogleMap android API v2上,如何获取当前地图缩放级别?在API v1上,曾经有过float MapView.getZoomLevel(),但似乎没有类似于我正在使用的API版本,并且谷歌推荐.

我曾想过使用类变量通过缩放按钮单击侦听器手动保存缩放级别,但这并不能解决夹点式缩放的问题.

为什么我需要当前的缩放级别?我正在将地图范围限制为某个矩形,并希望任何可能会离开此矩形的移动都会反弹.此动画要求我使用缩放级别,如果没有缩放级别,则使用默认的最大缩放级别.我真正想要的是保持移动尝试前使用的缩放级别.

protected void recenterMap() {
    map.getMinZoomLevel();
    if(MAP_BOUNDS.contains(map.getCameraPosition().target) == false) {
        CameraPosition cameraPosition = new CameraPosition.Builder()
        .target(MAP_CENTER)      
        .zoom(current_zoom)
        .build();     

        map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
    } else {
        MAP_CENTER = map.getCameraPosition().target;
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,变量current_zoom是我需要定义的.

小智 68

对于Android,请尝试获取当前的CameraPosition,并从中获取缩放.
我相信它是:

map.getCameraPosition().zoom
Run Code Online (Sandbox Code Playgroud)