2017-08-21 12 views
-1

現在、私はGoogleマップで作業しており、この2つの方法を混同している可能性があります。私は)誰もがzoomBy()とzoomTo(の違いは何である私を説明することができますので、ZoomToとZoomByの違いはGoogleマップ

コードこの2つの方式の作業を区別しません:

mMap.animateCamera(CameraUpdateFactory.zoomBy(zoomLevel)); 
mMap.animateCamera(CameraUpdateFactory.zoomTo(zoomLevel)); 

答えて

0

CameraUpdateFactory.zoomToはあなたに同じ他のすべての 特性を維持しながら は、所定の値にズームレベルを変更することにするCameraUpdateを与えます。

CameraUpdateFactory.zoomBy(フロート)と CameraUpdateFactory.zoomBy(フロート、ポイント)あなたするCameraUpdateを与えること 増加(または減少、値が負の場合) 所定の値だけズームレベル。後者は、同じ場所(緯度/経度)にとどまるように、 のようなスクリーン上の所与の点を固定しているので、これを達成するために がカメラの位置を変更する可能性があります。 here

だから、短いzoomToで公式ドキュメントから

だけで、指定された値にズームレベルを変更しながら、zoomToとzoomBy増加または減少(例えば(20)に設定したズームレベルを持つことになりますお使いのカメラ20、あなたのズームレベルが20で、あなたがzoomBy(-5)を呼び出した場合、あなたのズームレベルは15になります。

+0

私は比較的ドキュメンテーション文にとって重要な最後の3行です。 –

2
public static CameraUpdate zoomBy (float amount, Point focus) 

CameraUpdateを返します。現在の カメラの視点のズームレベルをシフトします。

フォーカスで指定されたポイントは固定されたままです(ズーム処理前後の同じ緯度/経度に対応します)。

この方法はズームが現在のカメラ を基準にしている点でzoomTo(float)と異なります。

たとえば、現在LatLng(11.11、22.22)が画面にある場合 場所(23、45)。ズーム距離とこのLatLng のこのメソッドを呼び出した後も、このLatLngの画面の位置は(23、 45)のままです。

public static CameraUpdate zoomTo (float zoom) 

は、特定のズームレベルにカメラ視点を移動するCameraUpdateを返します。 (フロート)

関連する問題