如何比较两个位置

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 获取地面距离需要一个地图库,并且可能会花费很多(而且肯定会花费很多时间)。这就是为什么当您进行搜索时,几乎所有内容都使用直接距离。 哦,那么现在就可以了。非常感谢。

以上是关于如何比较两个位置的主要内容,如果未能解决你的问题,请参考以下文章

如何比较两个不同断点之间的实例状态

(地理)位置的通用数据结构/格式是啥,您如何比较它们?

在C中的两个设置位置(整数值)之间比较两个字符串的两个子字符串[关闭]

如何在 PowerShell 中比较两个字符串对象的内容

如何使用wps比较两个文档的改动

比较具有相同项目但在随机位置的数组时如何返回true?