将 Android GoogleMap 放在一个点上,同时缩放到足以包含另一点

Car*_*ter 3 android google-maps-android-api-2

我想要一个类似雷达屏幕的东西,它以用户所在的位置为中心,同时缩放到足以包含 v2 api 的目标点。现在我正在使用

bounds = new LatLngBounds.Builder().include(destPos)
                .include(yourPos).build();
        map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50));
Run Code Online (Sandbox Code Playgroud)

但这以两点之间的某个点为中心,并缩放以包括两者。有没有像这样简单的方法来做我想做的事?或者我是否必须或多或少地从头开始并做一些数学运算(例如计算两点之间的距离,计算 LatLngBounds 的纬度/经度,以便用户位于定义的矩形的中心,矩形的边缘包括目的地——考虑到地图/屏幕尺寸)?

这是我所拥有的:

在此处输入图片说明

这是我想要的:

在此处输入图片说明

Mac*_*ski 5

您自己的答案过于复杂。

您需要计算位于您位置另一侧的点并将其包含在LatLngBounds.

LatLng otherSidePos = new LatLng(2 * yourPos.latitude - destPos.latitude, 2 * yourPos.longitude - destPos.longitude);
bounds = new LatLngBounds.Builder().include(destPos)
                .include(otherSidePos).build();
        map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, padding));
Run Code Online (Sandbox Code Playgroud)

注意:您不想将 50 像素硬编码为填充。在不同的设备上看起来会有所不同。改用密度无关像素。