我有一个Google map (com.google.android.gms.maps.GoogleMap),其中设置了一些标记。

我能够分别

1)调整缩放级别并将 map 居中放置在边界上:

mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10));



2)将 map 置于标记之一上方:
LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude
    + offset, markerSelected.getPosition().longitude);

mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));

但是,就我的一生而言,我不能两者都做,请使用newLatLngBounds调整缩放级别,然后将 map 居中放置在其他位置。我最后要做的就是在 map 上看到的情况。

我该怎么做呢?

最佳答案

尝试同时使用moveCameraanimateCamera ...

mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10));
LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude
    + offset, markerSelected.getPosition().longitude);

mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));
moveCamera将直接移动到该位置,而animateCamera将提供移动效果。它们本质上是线性的,因此一个将在另一个之后发生,但是像我上面所做的那样对它们进行分层将提供您正在寻找的潜在效果。

如果您尝试查看UI上两个调用的实际移动,则需要根据需要在动画完成后注册回调。

10-04 20:03