纬度经度对之间距离的准确度

时间:2011-11-08 15:26:02

标签: java

我需要根据与特定点的距离对一组地址进行排序。我有所有这些地址的纬度和经度,我找到了与下面Java代码的距离。

Double theDistance = (Math.sin(Math.toRadians(latA)) *
                Math.sin(Math.toRadians(latB)) +
                Math.cos(Math.toRadians(latA)) *
                Math.cos(Math.toRadians(latB)) *
                Math.cos(Math.toRadians(longA - longB)));       
            theDistance = (Math.toDegrees(Math.acos(theDistance))) * 69.09;\

但是当我将结果(我的意思是排序顺序(而不是实际距离))与实际的Google地图进行比较时,它们并不匹配。总是如此吗?或者我不是这样做的吗?

我们发现,对于谷歌/雅虎地图网络服务有一些限制,因此我们无法在我们的应用程序中使用。

鉴于您拥有纬度和经度,找到两个地址之间距离的最佳方法是什么。

2 个答案:

答案 0 :(得分:1)

我认为您可能正在寻找Great-Circle Distance

答案 1 :(得分:1)

Vincenty的公式将为您提供最大的准确度。

Haversine可能“足够好”。

相关问题