在谷歌地图中ZoomTo和ZoomBy有什么区别

时间:2017-08-21 10:51:23

标签: android google-maps

目前,我正在使用谷歌地图,可能会混淆这两种方法。我没有区分这两种方法的工作,所以任何人都可以解释我zoomBy()和zoomTo()之间的区别

代码:

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

2 个答案:

答案 0 :(得分:2)

public static CameraUpdate zoomBy (float amount, Point focus)
  

返回一个CameraUpdate,用于移动当前的缩放级别   相机观点。

     

焦点指定的点将保持不变(即,它对应于   缩放过程之前和之后的纬度/长度相同。

     

此方法与zoomTo(float)的不同之处在于zoom是相对的   目前的相机。

     

例如,如果LatLng(11.11,22.22)当前在屏幕上   位置(23,45)。用缩放量调用此方法后   这个LatLng,这个LatLng的屏幕位置仍然是(23,   45)。

public static CameraUpdate zoomTo (float zoom)
  

返回将摄像机视点移动到特定位置的CameraUpdate   缩放级别。

答案 1 :(得分:2)

  

CameraUpdateFactory.zoomTo(float)为您提供了一个CameraUpdate   将缩放级别更改为给定值,同时保留所有其他级别   属性相同。

     

CameraUpdateFactory.zoomBy(float)和   CameraUpdateFactory.zoomBy(float,Point)为您提供了一个CameraUpdate   增加(或减少,如果值为负)缩放级别   给定的值。后者修复了屏幕上的给定点   它保持在同一位置(纬度/经度),所以它   可能会改变相机的位置以实现此目的。

来自官方文档here

因此,简短缩放只需将缩放级别更改为给定值,同时zoomBy增加或减少(例如使用zoomTo(20),相机将缩放级别设置为20,但如果缩放级别为20,则调用zoomBy(-5),您的缩放级别将变为15)