algorithm - 如何从两个位置的纬度和经度找到距离?

标签 algorithm math geography

我有一组位置的纬度和经度。

  • 如何找到集合中一个位置到另一个位置的距离
  • 有公式吗?

最佳答案

Haversine 公式假设地球是球形的。然而,耳朵的形状更为复杂。扁球体模型会给出更好的结果。

如果需要这样的精度,最好使用Vincenty inverse formula。 参见 http://en.wikipedia.org/wiki/Vincenty's_formulae了解详情。使用它,您可以获得 0.5mm 精度的球体模型。

没有完美的公式,因为地球的真实形状太复杂,无法用公式来表达。此外,地球的形状会因气候事件而发生变化(参见 http://www.nasa.gov/centers/goddard/earthandsun/earthshape.html ),也会因地球自转而随时间发生变化。

您还应该注意,上述方法没有考虑海拔高度,并假设海平面扁球体。

编辑 2010 年 7 月 10 日:我发现在极少数情况下,Vincenty 逆公式不会收敛到声明的精度。更好的主意是使用 GeographicLib(请参阅 http://sourceforge.net/projects/geographiclib/),它也更准确。

关于algorithm - 如何从两个位置的纬度和经度找到距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1420045/

相关文章:

java - 从 Java BitSet 中随机选择 n 位中的 k 位

java - 在 O(n) 和 O(log n) 中计算二进制表示中的 1,其中 n 是位数

algorithm - 用字母编码一个字节数组,输出看起来应该是随机分布的

python - 获取二维三角形中的点数

algorithm - 给定范围内的和与积

c++ - 表达式语法错误 e2188、C++、Embarcadero、Count_If、

javascript - JS : from RGB Blue to RGB Red

javascript - 为什么巴基斯坦的所有省份都不是绿色的?

javascript - 当鼠标悬停在 map 上时,如何使 map 区域改变颜色?

python - Geograpy3 库无法正常工作并给出回溯错误