我正在创建一个应用程序,它会告诉用户大量的点离当前位置有多远。
每个点都有经度和纬度。
我已经阅读了这篇文章 http://www.movable-type.co.uk/scripts/latlong.html
并看过这篇文章 Calculate distance in meters when you know longitude and latitude in java
需要进行许多计算(50-200)。
如果速度比这些计算的准确性更重要,哪一个最好?
答案 0 :(得分:5)
这是O(n) 不要担心性能。除非每一次计算都花费太长时间(不是这样)。
答案 1 :(得分:2)
正如Imre所说,这是O(n)或线性,这意味着无论数值如何不同或执行多少次,算法中的计算将花费相同的时间进行每次迭代。但是,我不同意Cosines的球面定律具有较少的实际变量,并且在算法中执行计算意味着使用较少的资源。因此,我会选择那个,因为速度不同的唯一因素是可用的计算机资源。 (注意:虽然除非真的老/慢机器,否则它几乎不会引人注意)
基于观点的判决:余弦球面定律
答案 2 :(得分:1)
您发布的两个链接使用相同的球形几何公式来计算距离,因此我不希望它们的运行速度之间存在显着差异。此外,它们的计算成本并不高,所以如果您在现代硬件上运行,即使在几百次迭代的范围内,我也不会指望它是一个问题。