2013-02-14 6 views
21

Googleマップandroid API v2では、現在の地図のズームレベルはどのように取得できますか? API v1では、以前はfloat MapView.getZoomLevel()でしたが、私が使用しているAPIバージョンには何も似ていないようですが、Googleではこれを推奨しています。現在の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は私が定義するために必要なものであることに注意してください。

答えて

67

を試してみてください、現在のCameraPositionのを取得し、それから、ズームを取得してみてください。私はそれがだと信じ
:上記のように

map.getCameraPosition().zoom 
+0

(それはAndroid自体に触れてからしばらくしています) –

+0

うわー、クラスから直接ズームを得ることは期待できませんでした! – jhc

+3

嬉しいです:) Androidの非有用なAPIドキュメントへようこそ。 –

-5

それがない場合は、(V2 APIに)

map.getZoom(); 

もAndroidの場合document.getElementById("zoom").innerHTML

+0

同じコメント、この答えはjavascriptのための罰金だろう、しかし、私はAndroid向けGoogleマップAPI V2を使用しています。 – jhc

+0

さて、私はこれがアンドロイドのためだとは気付かなかった。 –

+1

おっと:)申し訳ありません...私はアンドロイド部分を自分で逃しました –

関連する問題