目前,我正在使用谷歌地图,可能会混淆这两种方法。我没有区分这两种方法的工作,所以任何人都可以解释我zoomBy()和zoomTo()之间的区别
代码:
mMap.animateCamera(CameraUpdateFactory.zoomBy(zoomLevel));
mMap.animateCamera(CameraUpdateFactory.zoomTo(zoomLevel));
答案 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)