Google Maps V2-Android-получить текущий уровень масштабирования


Как получить текущий уровень масштабирования в виде целого числа на карте GoogleMap. Мне нужно взять этот код из GMaps v1. 1:

MapView mGoogleMapView; 

int zoomLevel = mGoogleMapView.getZoomLevel();

Я знаю о методах getMinZoomLevel () и getMaxZoomLevel (), однако я не могу найти ничего в документации Android GMap V2, что даст текущий уровень масштабирования. У кого-нибудь есть указания, как это сделать?

Любая помощь будет признательна.

3 49

3 ответа:

GoogleMap map;

....

float zoom = map.getCameraPosition().zoom;

Я думаю, что 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 устарел и в ближайшее время больше не будет работать.Поочередно они заменяются на OnCameraMoveStartedListener,OnCameraMoveListener,OnCameraMoveCanceledListener иOnCameraIdleListener .

Следовательно, мы можем использовать OnCameraIdleListener здесь, чтобы получить камеру текущий уровень масштабирования.

Пример Кода:

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

Вызов getCameraPosition() на улице GoogleMap, и считайте поле zoom результирующего CameraPosition Объект .