Android 地图-animateCamera() 方法不正确工作

来源:互联网 发布:封神演义知乎 编辑:程序博客网 时间:2024/05/20 02:29
http://www.itstrike.cn/Question/2dcf4807-7eae-44ae-8104-389c21700502.html

问题:

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 bearingmap.animateCamera(CameraUpdateFactory.newCameraPosition(newCamPos), 4000, null);

或者正如 MaciejGórski 所指出,您可以只使用 newLatLngZoom 接口,包括两个LatLngzoom 更改:

map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(13.0810,80.2740), 15.5f), 4000, null);

0 0