如何比较两个位置
Posted
技术标签:
【中文标题】如何比较两个位置【英文标题】:How to compare two locations 【发布时间】:2018-08-13 11:57:40 【问题描述】:我正在开发一款具有附近朋友功能的 android 应用。因此,每个用户都有存储在 Firebase 实时数据库中的朋友列表。当他们四处走动时,他们的位置也会保存在那里。
我想做什么?
我想将所有用户朋友的位置与用户位置进行比较。如果用户和他的朋友之间的距离是一公里或更小,那么附近的朋友列表将被更新。将为使用该应用程序的用户完成此检查以联系朋友。
我尝试了什么?
在发布这个问题之前,我四处搜索并在Stack Overflow 上找到了一个答案。但我没有得到计算距离的函数,因为变量名称很短且不自我解释。
根据上面写的,有谁知道我如何计算两个位置之间的距离,或者可以总结上面链接中显示的函数的作用。
【问题讨论】:
github.com/googlemaps/android-maps-utils 你可以通过 Google 使用这个库 【参考方案1】:您可以使用Location 类中的distanceBetween()
方法。
【讨论】:
【参考方案2】:firstLocation.distanceTo(secondLocation)
您将获得从第二个位置到第一个位置的距离(以米为单位)。
【讨论】:
它们是 LatLng 类型,不允许我使用 distanceTo。 您可以从 lat long 创建一个位置对象,如下所示 Location firstLocation = new Location(""); firstLocation.setLatitude(yourLat);//当然是你的坐标 firstLocation.setLongitude(yourLon); 是的,我就是这样做的,然后将它们进行比较,然后我就工作了。唯一的问题是距离是通过空中而不是地面距离进行比较的。 @jovan 获取地面距离需要一个地图库,并且可能会花费很多(而且肯定会花费很多时间)。这就是为什么当您进行搜索时,几乎所有内容都使用直接距离。 哦,那么现在就可以了。非常感谢。以上是关于如何比较两个位置的主要内容,如果未能解决你的问题,请参考以下文章