我试图强制相机动画到缩放级别和坐标,尽可能精确地描述LatLng
坐标列表占用的区域。
到目前为止,我有以下内容:
private void focusListOfCoords(Collection<LatLng> coords) {
LatLngBounds.Builder coordsBoundsBuilder = new LatLngBounds.Builder();
for (LatLng coord : coords) {
coordsBoundsBuilder.include(coord);
}
LatLngBounds coordsBounds = coordsBoundsBuilder.build();
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(coordsBounds, 50);
mMap.animateCamera(cameraUpdate);
}
上面的代码,当在整个世界中一直缩放时,只需稍微平移视图以使边界的中心点居中。它不会放大。
如果我将mMap.animateCamera(cameraUpdate)
替换为mMap.moveCamera(cameraUpdate)
,则投影会更改缩放级别(在每种情况下都会过远,但是在该点旁边)并按预期进行居中。
尝试对此进行问题排查后,我注意到如果我为CancelableCallback
方法实现animateCamera
,我可以看到动画正在被取消。
有没有办法强制完成动画?如果没有,我怎样才能找到动画被取消的原因?
修改:可以在此问题中找到解决方案:Android- animateCamera with CameraUpdateFactory.newCameraPosition does NOT zoom
总而言之,我调用动画的侦听器方法返回false,取消了动画。