web-dev-qa-db-ja.com

Google Maps V2-Android-現在のズームレベルを取得

GoogleMapで現在のズームレベルを整数として取得するにはどうすればよいですか。 GMaps v1.1からこのコードを取得する必要があります。

MapView mGoogleMapView; 

int zoomLevel = mGoogleMapView.getZoomLevel();

メソッドgetMinZoomLevel()およびgetMaxZoomLevel()を知っていますが、Android GMap V2のドキュメントで現在のズームレベルを提供するものは見つかりません。これをする?

任意の助けをいただければ幸いです。

59
user268397
GoogleMap map;

....

float zoom = map.getCameraPosition().zoom;
190
Pavel Dudka

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‌ edListenerおよびOnCameraIdleListener.

したがって、ここでOnCameraIdleListenerを使用して、カメラの現在のズームレベルを取得できます。

コードサンプル:

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

getCameraPosition()GoogleMap で呼び出し、結果の zoomオブジェクトCameraPositionフィールドを読み取ります=。

8
CommonsWare