Подтвердить что ты не робот

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

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

MapView mGoogleMapView; 

int zoomLevel = mGoogleMapView.getZoomLevel();

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

Любая помощь будет оценена.

4b9b3361

Ответ 1

GoogleMap map;

....

float zoom = map.getCameraPosition().zoom;

Ответ 2

Я думаю, что 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
        }
    }
});

Update:

Из службы Google Play 9.4.0 OnCameraChangeListener устарел, и он больше не будет работать в ближайшее время. Впоследствии они заменяются на OnCameraMoveStarted Listener, OnCameraMoveListener, OnCameraMoveCancel edListener и OnCameraIdleListener.

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

Пример кода:

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