我有一组纬度和经度。
Haversine公式假定为球形地球。但是,耳的形状更加复杂。扁球体模型将提供更好的结果。
如果需要这种精度,则最好使用 Vincenty逆公式 。有关详细信息,请参见http://en.wikipedia.org/wiki/Vincenty's_formulae。使用它,您可以获得椭球模型的0.5mm精度。
没有完美的公式 ,因为地球的真实形状太复杂而无法用公式表示。此外,地球的形状会由于气候事件而发生变化(请参见http://www.nasa.gov/centers/goddard/earthandsun/earthshape.html),并且还会随着时间的变化而因地球的自转而发生变化。
您还应注意,上述方法未考虑海拔高度,并且假定为海平面扁球形。
编辑2010年7月10日: 我发现,在极少数情况下,文森特逆公式不会收敛到声明的准确性。一个更好的主意是使用GeographicLib(请参阅http://sourceforge.net/projects/geographiclib/),该方法也更加准确。