解释我的问题并不容易,但我会尝试。
我有一个 android GoogleMap,在它上面,我始终有一个 ImageView 位于它的中心。如果我拖动/平移地图,图钉将始终位于 GoogleMap 的中心。
现在,我在地图上的某处添加了一个标记。我想缩放以使中心点保持在地图的中心,并且标记在地图中可见,并达到最高缩放级别。
问题是如果我只是检查标记是否在地图的边界内,然后继续放大/缩小直到它是,这个过程将总是重复自身,即尝试放大并且如果标记超出,那么缩小。
问题是我依赖一个 OnCameraChange 监听器,它会在我每次放大或缩小时不断调用自己,因此,放大/缩小的过程将无限期地继续发生
journeyGoogleMap.setOnCameraChangeListener(new OnCameraChangeListener()
{
@Override
public void onCameraChange(final CameraPosition position)
{
基本上,我需要的是一个可以提供中心 LatLng 和 markerLatLng 的函数,它会自动计算 LatLngBounds 确保我的中心在 LatLng 边界的中心内,然后我可以简单地使用
public static CameraUpdate newLatLngBounds (LatLngBounds bounds, int width, int height, int padding)
如果您需要更多说明,请告诉我