3

我正在尝试使用 Google 地图为我的应用创建一个自定义的“我的位置”按钮。

我想要做的是将地图围绕用户的位置居中,这已经完成并且可以完美地工作,但也想放大到足以看到我选择的标记(这实际上是最接近的我在内存中的一组标记,但这现在并不重要)。

我无法在zoom这里找到该变量的工作方式。如果我知道我要显示的标记距离我 0.5 GPS 单位,我如何以在其边界上包含该标记的方式将地图居中于我周围?我还会使用填充来确保它完全适合地图。

LatLng my_coordinates = ...;
LatLng closest_mark = ...;

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

所以现在我想修改该代码,不仅将位置居中,my_coordinates而且确保缩放closest_mark适合视口

CameraUpdateFactory.newLatLngBounds( ?? , /*padding*/);
4

1 回答 1

2

我认为 api 中没有特定的缩放变量可以与地图中的点一起控制。(而 LatLngBounds 只接受右上和左下边界并相应地为您提供视图)。

我相信你能做的就是用一点几何图形。如果您的标记非常靠近您的位置(您可以将其视为一个矩形),请获取两者之间的距离并以相同的距离在相反方向上推断该距离(如果您想要一些填充,则乘以一个小因子)以获得其他坐标,然后就可以得到右上和左下坐标(简单几何)。

如果您的标记很远并且地球表面出现在图片中,您可能必须使用haversine公式(大圆距离)

希望这可以帮助。

于 2013-04-12T16:58:01.340 回答