android - 如何获取当前的 GoogleMap 缩放级别?

标签 android google-maps

在 GoogleMap android API v2 上,如何获取当前 map 缩放级别?在 API v1 上,曾经有 float MapView.getZoomLevel(),但在我使用的 API 版本上似乎没有类似的东西,这是 Google 推荐的。

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

为什么我需要当前的缩放级别?我将 map 范围限制为某个矩形,并希望任何会离开该矩形的移动反弹回来。此动画需要我使用缩放级别,因为没有它,将使用默认的最大缩放级别。我真正想要的是保持移动尝试之前使用的缩放级别。

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

注意变量 current_zoom 是我需要定义的。

最佳答案

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

map.getCameraPosition().zoom

关于android - 如何获取当前的 GoogleMap 缩放级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14884398/

相关文章:

java - 折叠工具栏中的模糊和取消模糊图像

android - 如何在不使用 Firebase 中的 FCM token 创建主题或组的情况下向 2 台设备发送推送通知?

javascript - 一次只打开一个信息窗口

android - java.lang.IllegalStateException : no included points in fragment in android 错误

javascript - 谷歌地图 fitBounds 不适用于 ajax 功能 - 似乎只适用于一个标记

android - 在 Android 中触摸位置的谷歌地图上添加标记

java - 有一个实例变量指向 fragment 内的 Activity 是否安全?

android - 获取android sendevent坐标比例因子

java - OpenGL 着色器可以在桌面上编译,但不能在 Android 上编译

javascript - 在 Google Maps API V3 上添加地理编码 JSON 响应回调的方法