问题:
1) 要进行动画处理,以达到所需的位置的地图 (在代码中的第 4 行),但它有放大到默认位置 (在代码中的第 5 行)
[留在默认位置在指定的缩放级别的地图]
2) 我明白为什么是问题发生,但不是知道如何解决它。
3) 如果将第 4 行更改为 moveCamera 而不是将工作的 animateCamera,但我想 animateCamera() 方法。
下面是代码:
map=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
MarkerOptions options=new MarkerOptions().position(new LatLng(13.0810,80.2740));
map.addMarker(options);
map.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(13.0810,80.2740)),4000,null);
map.animateCamera(CameraUpdateFactory.zoomTo(15.5f),2000,null);
解决方法 1:
问题是你打电话给 zoom
右后你开始到新的位置进行动画处理。这就是为什么它只是用新替换最后一个相机更新操作。
您可以简单地解决通过创建更精确的相机更新操作 (其中将会包括这两个 latlng 变化和缩放级别更改):
CameraPosition newCamPos = new CameraPosition(new LatLng(13.0810,80.2740),
15.5f,
map.getCameraPosition().tilt, //use old tilt
map.getCameraPosition().bearing); //use old bearing
map.animateCamera(CameraUpdateFactory.newCameraPosition(newCamPos), 4000, null);
或者正如 MaciejGórski 所指出,您可以只使用 newLatLngZoom
接口,包括两个LatLng
和 zoom
更改:
map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(13.0810,80.2740), 15.5f), 4000, null);