我想为50Mile radius wrt创建LatLngBounds。当前位置。与google places api一起使用。
现在,我在网上关注一个例子
//Southwest corner to Northeast corner.
LatLngBounds bounds = new LatLngBounds(
new LatLng(39.906374, -105.122337),
new LatLng(39.949552, -105.068779)
);
你能提供指示吗?
更新
我用这个作为答案:
How to convert a LatLng and a radius to a LatLngBounds in Android Google Maps API v2?
答案 0 :(得分:2)
我认为,你知道如何弄清楚用户的位置。关于这个主题有很多信息。
因此,主要问题是找出要用作边界的角落。这被称为直接测地问题(参见:https://en.wikipedia.org/wiki/Geodesics_on_an_ellipsoid)。您有几种方法可以解决它:
使用java库(http://geographiclib.sourceforge.net/html/java/)使用以下方法计算角点的坐标:
Geodesic.WGS84.Direct(lat1,lon1,azi1,s12)
(参见文档:http://geographiclib.sourceforge.net/html/java/net/sf/geographiclib/Geodesic.html)
请注意,您必须确定沿途的方位角。
使用内置的android.location.Location类。它有一个静态方法'distanceBetween',它取两点的坐标并计算它们之间的距离。
这里的要点是使用“分而治之算法”来找到你的边界矩形的顶部/底部纬度和左/右经度。
如果准确性不是问题,请使用固定值将距离转换为近似纬度/经度。