如何在android中找到两个GPS坐标之间的相似量

时间:2016-08-02 02:43:12

标签: android gps

我正在尝试为我的城市建立相应GPS坐标的位置/地址数据库。我将使用该数据库进行反向地理编码而不是android的地理编码器类(因为它有时会给出错误的结果或者不给出任何结果)。但我面临的问题是,每当我尝试通过比较我当前的GPS坐标和存储的取数地址来使用数据库时,当前的GPS坐标与存储的坐标不匹配。这是因为当我移动时,当前和存储的GPS坐标之间只有很小的变化(2-3位差异)。那么是否有任何方法(算法)来检查坐标之间的相似量,使用当前坐标将与存储的坐标匹配(几乎相等),然后我可以得到地址?

1 个答案:

答案 0 :(得分:0)

您可以使用haversine formula计算当前GPS坐标与存储的GPS坐标之间的距离,并使用此距离作为位置之间相似性的度量。如果两个位置彼此相距预定距离,则可以认为它们是相同的。

唯一的问题是,使用蛮力方法,您必须计算距离GPS坐标和每个存储点的距离。如果这对你有用,那么你很好。否则你将不得不以某种方式优化过程。其中一种可能的方法是使用方形网格,并为每个方形存储使用此方块内的位置。然后你拿走你的GPS位置,确定它落入哪个方格,然后只将它与网格上相同和相邻方格中的位置进行比较。