Google Maps V2 - Android - 获取当前缩放级别

use*_*397 60 java android google-maps-android-api-2 android-maps-v2

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

MapView mGoogleMapView; 

int zoomLevel = mGoogleMapView.getZoomLevel();
Run Code Online (Sandbox Code Playgroud)

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

任何帮助,将不胜感激.

Pav*_*dka 195

GoogleMap map;
Run Code Online (Sandbox Code Playgroud)

....

float zoom = map.getCameraPosition().zoom;
Run Code Online (Sandbox Code Playgroud)

  • 这必须在UI线程上完成,否则你将获得异常! (9认同)

rid*_*doy 41

我认为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
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

更新:

来自Google Play服务9.4.0 OnCameraChangeListener已被弃用,它将不再适用.或者,它们将被OnCameraMoveStarted Listener,OnCameraMoveListener,OnCameraMoveCancel edListenerOnCameraIdleListener取代.

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

代码示例:

map.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
    @Override
    public void onCameraIdle() {
        int zoomLevel = map.getCameraPosition().zoom;
        //use zoomLevel value..
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 此方法已弃用.替换为setOnCameraMoveStartedListener(GoogleMap.OnCameraMoveStartedListener),setOnCameraMoveListener(GoogleMap.OnCameraMoveListener),setOnCameraMoveCanceledListener(GoogleMap.OnCameraMoveCanceledListener)和setOnCameraIdleListener(GoogleMap.OnCameraIdleListener). (3认同)

Com*_*are 9

打电话getCameraPosition()GoogleMap,并读取zoom所产生的领域CameraPosition对象.