23

GoogleMap android API v2で、現在のマップズームレベルを取得するにはどうすればよいですか?API v1には以前はありましたがfloat MapView.getZoomLevel()、私が使用しているAPIバージョンには類似したものがないようで、Googleが推奨しています。

クラス変数を使用して、ズームボタンクリックリスナーを介して手動でズームレベルを保存することを考えましたが、これではピンチタイプのズームの問題は解決しません。

現在のズームレベルが必要なのはなぜですか?マップ範囲を特定の長方形に制限していて、そうでなければこの長方形を離れて跳ね返るような動きが必要です。このアニメーションでは、ズームレベルを使用する必要があります。ズームレベルがないと、デフォルトの最大ズームレベルが使用されます。私が本当に望んでいるのは、移動を試みる前に使用したズームレベルを維持することです。

protected void recenterMap() {
    map.getMinZoomLevel();
    if(MAP_BOUNDS.contains(map.getCameraPosition().target) == false) {
        CameraPosition cameraPosition = new CameraPosition.Builder()
        .target(MAP_CENTER)      
        .zoom(current_zoom)
        .build();     

        map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
    } else {
        MAP_CENTER = map.getCameraPosition().target;
    }
}

変数current_zoomが私が定義する必要があるものであることに注意してください。

4

2 に答える 2

70

Android の場合、現在の CameraPosition を取得し、そこからズームを取得してみてください。
私はそれだと信じています:

map.getCameraPosition().zoom
于 2013-02-14T21:45:53.057 に答える
-4

(v2 APIでは)

map.getZoom(); 

そうでない場合は、試してくださいdocument.getElementById("zoom").innerHTML

于 2013-02-14T21:33:28.033 に答える