2010-06-03 95 views
2

我正在创建一个应用程序,该应用程序会告诉用户距离当前位置有多远的距离。Java:计算大量位置和性能之间的距离

每个点都有一个经度和纬度。

我读过这篇文章 http://www.movable-type.co.uk/scripts/latlong.html

过来,看到这个帖子 Calculate distance in meters when you know longitude and latitude in java

有一些计算(50-200)是需要随身携带。

如果速度比这些计算的准确性更重要,哪一个最好?

+0

有多远的距离?在较短的距离内,你可以假设地球是平坦的并且做了更简单的数学计算。对于1-10英里,对5000英里来说可能不是那么好。 – bwawok 2010-06-03 17:04:20

+0

我们在谈论多少点? – 2010-06-03 17:09:21

回答

5

这是O(n) 不要担心表现。除非每一次计算都花费太长时间(它不是)。

1

您发布的两个链接使用相同的球形几何公式来计算距离,所以我不认为它们的运行速度之间存在显着差异。而且,它们在计算上并不昂贵,所以如果你在现代硬件上运行,即使在几百次迭代的范围内,我也不会指望它成为一个问题。

2

正如Imre所说,这是O(n)或线性的,这意味着无论数值如何变化或执行多少次,算法中的计算每次迭代都需要相同的时间量。然而,我并不同意在余弦的球形定律中实际变量较少,算法在算法中执行意味着使用较少的资源。因此,我会选择那个,因为唯一会有不同速度的是可用的计算机资源。 (注意:虽然还勉强noticable除非真的老了/慢的机器上)根据意见

判决:余弦球法