Android 谷歌地图缩放以适​​合标记和当前位置

Posted

技术标签:

【中文标题】Android 谷歌地图缩放以适​​合标记和当前位置【英文标题】:Android google maps zoom to fit mark and current position 【发布时间】:2013-04-05 05:30:45 【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

如果您的标记距离很远,并且地球表面可以显示出来,您可能必须使用haversine formula (great circle distance)。

希望这会有所帮助。

【讨论】:

以上是关于Android 谷歌地图缩放以适​​合标记和当前位置的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 谷歌地图集群

棘手的 Android 谷歌地图缩放,同时保持中心点

如何在谷歌地图android中显示当前位置的平滑移动

如何在android的谷歌地图上用标记显示我的当前位置

如何设置谷歌地图缩放级别以显示所有标记?

如何根据标记位置设置谷歌地图的缩放级别