Android Google地图上缩放的行为不正确

Nan*_*noc 5 android google-maps

我有一个奇怪的问题谷歌地图为Android.

一切正常,但是当用户使用地图开始活动时,我想放大并将相机放在指定的位置.

这是我的代码:

    LatLng l = new LatLng(40.446951,-3.693295);
    defaultPos = mapa.addMarker(new MarkerOptions().position(new LatLng(l.latitude, l.longitude)).icon(BitmapDescriptorFactory.defaultMarker((float) 250.0)));
    Log.d("mappoi","zoom to");
    mapa.animateCamera(CameraUpdateFactory.zoomTo(17.0f));
    mapa.animateCamera(CameraUpdateFactory.newLatLng(l));
Run Code Online (Sandbox Code Playgroud)

因此,正如您所看到的,即时创建一个新的LatLng对象并使用它在地图上创建标记,然后我想将相机置于该位置并放大.

我不知道为什么,但缩放仅在第一次执行时才起作用,所以当我全新安装我的应用程序时它工作正常,但如果我返回并重新启动活动,它不会做任何缩放并保持默认缩放级别,即使我关闭并重新启动我的应用程序它不再工作,只有当我卸载并重新安装它再次工作,但只有一次.

我不能想象什么是错的,如果它第一次工作,为什么不下一个呢?

谢谢你的帮助.

编辑:当我按下后退按钮时,我的活动被杀死,所以每次调用onCreate.

Nan*_*noc 7

感谢gnuanu评论指点我:

如何在Google Maps Android API v2中将相机直接移动到当前位置?

解决方案是使用:

CameraUpdateFactory.newLatLngZoom()
Run Code Online (Sandbox Code Playgroud)

代替

CameraUpdateFactory.zoomTo()
CameraUpdateFactory.newLatLng()
Run Code Online (Sandbox Code Playgroud)

也许newLatLng正在改变缩放级别.