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 谷歌地图缩放以适合标记和当前位置的主要内容,如果未能解决你的问题,请参考以下文章