2011-08-19 155 views
14

我目前正在尝试开发一种算法来计算哪个已知位置离当前已知位置最近。基于经度和纬度计算最近位置的算法

我有一个列表说100个已知的位置(这意味着我有长和纬度)。在这100个中,我选择了一个位置,并且在选择了该位置之后,我想要一个列表来显示与此最接近的8个位置。

如何解决这个问题?

编辑

我不是在寻找如何计算距离。我正在寻找如何计算哪个已知位置最接近当前位置。

示例:

假设列表包含100个电影院位置。我在剧院5,我想知道列表中的其他电影院在附近。不是距离,而是他们的位置。

+0

按位置你是指纬度/经度? – ScruffyDuck

回答

16

有一个Distance Matrix API。该API允许您计算某些给定位置之间的距离。

您可以用haversine formula

+0

感谢您的链接,稍后可能会变得方便,但现在我不在寻找如何计算距离,我正在寻找如何找到最接近当前的位置。 Forinstances我在电影院'我的影院',我很想知道其他影院在附近。不是与他们的距离,而是他们的位置。 – diceler

+0

但它仍然是你的解决方案;)你必须得到你的'我的剧场'点和所有其他100个位置。然后计算所有100个距离并挑选最小的一个。 要找到最近的点(最小的距离),你必须知道所有的距离。 – hsz

+1

在某些时候,您必须决定从当前位置到x的_distance_是否超出您的阈值... – PLane

1

1想法也在做这由你自己:如果你的“100个已知的位置”仍然大多是一样的,你可以分区已知位置,以小团体和维护结构。然后玩最接近的组。

More mathematical approaches here

+0

感谢您的建议相同的情况。我将创建小组并使用每个组的一个位置来计算最初的最近位置。 – netsmertia

1

试图实现K-d树算法与最近邻搜索。