23

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

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

4

2 回答 2

70

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

map.getCameraPosition().zoom
于 2013-02-14T21:45:53.057 回答
-4

应该是(在 v2 API 上)

map.getZoom(); 

如果没有,请尝试document.getElementById("zoom").innerHTML

于 2013-02-14T21:33:28.033 回答