2016-08-02 55 views
0

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

回答

0

您可以使用haversine formula来计算当前GPS坐标和存储的坐标之间的距离,并使用此距离作为位置之间的相似度量度。如果两个位置相距预定义的距离,则可以考虑两个位置相同。

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

+0

谢谢。实际上在Android上实施半咸水配方对我来说似乎很难。我将使用网格方块的第二种方法。因此,我将不得不在android中创建一个数据库,不是吗? –

+0

我不认为只有网格就能完成这个技巧 - 无论如何你必须计算到候选位置的距离。这并不困难,您可以轻松地实现Google的实现,而且它绝对涉及Android开发人员可以使用的数学函数。 是的,你将不得不实施某种数据库 - 无论如何你必须这样做。 –

相关问题