安卓谷歌地图缩放以适应标记和当前位置

3
我正在尝试使用Google Maps为我的应用程序创建自定义“我的位置”按钮。我想要做的是将地图围绕用户的位置居中,这已经完成并且运行得非常流畅,但我还想缩放地图,使其恰好能够看到我选择的标记(实际上,这是我在内存中拥有的一组标记中最接近的一个,但现在不重要)。我无法找到这里的“缩放”变量的工作方式。如果我知道我想要显示的标记距离我0.5 GPS单位,那么我如何以一种包括该标记在其边界内的方式将地图围绕我居中?我还会使用填充来确保它完美地适合地图。
LatLng my_coordinates = ...;
LatLng closest_mark = ...;

map.animateCamera(CameraUpdateFactory.newLatLng(my_coordinates));

现在我想修改那段代码,不仅将位置居中到my_coordinates,还要确保缩放使得closest_mark适合于视口

CameraUpdateFactory.newLatLngBounds( ?? , /*padding*/);
1个回答

2
我认为在 API 中没有特定的缩放变量可以与地图上的点一起控制。(而 LatLngBounds 只需输入右上角和左下角边界即可相应地获取视图)。
我认为你可以通过一些几何方法来解决问题。如果你的标记非常靠近你的位置(你可以把它看作一个矩形),得到两者之间的距离,并在相反的方向上用相同的距离外推它(如果你想要一些填充,可以乘以一个小因子)以获取其他坐标,然后你就可以得到右上角和左下角的坐标(简单的几何学)。
如果你的标记相当远,地球表面也会出现,那么你可能需要使用haversine 公式(大圆距离)
希望这可以帮助到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接