75

如何在 GoogleMap 上将当前缩放级别作为整数获取。我需要从 GMaps v1.1 获取这段代码:

MapView mGoogleMapView; 

int zoomLevel = mGoogleMapView.getZoomLevel();

我知道 getMinZoomLevel() 和 getMaxZoomLevel() 方法,但是我在 Android GMap V2 文档中找不到任何可以提供当前缩放级别的内容。有没有人对如何做到这一点有任何指示?

任何帮助,将不胜感激。

4

2 回答 2

227
GoogleMap map;

……

float zoom = map.getCameraPosition().zoom;
于 2013-05-03T19:51:58.627 回答
45

我认为OnCameraChangeListener会成功的..

map.setOnCameraChangeListener(new OnCameraChangeListener() {

    private float currentZoom = -1;

    @Override
    public void onCameraChange(CameraPosition position) {
        if (position.zoom != currentZoom){
            currentZoom = position.zoom;  // here you get zoom level
        }
    }
});

更新:

从 Google Play 服务 9.4.0开始, OnCameraChangeListener已被弃用,它将不再工作。或者,它们被OnCameraMoveStarted‌​ListenerOnCameraMoveListenerOnCameraMoveCancel‌​edListenerOnCameraIdleListener 取代

因此我们可以在这里使用OnCameraIdleListener来获取相机的当前缩放级别。

代码示例:

map.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
    @Override
    public void onCameraIdle() {
        int zoomLevel = map.getCameraPosition().zoom;
        //use zoomLevel value..
    }
});
于 2013-05-03T20:14:21.337 回答