2010-11-14 162 views
1

假设这4个值:如何使用纬度和经度计算距离和方位?

 double lat1 = ToRadians(53.14722222222222); 
     double lon1 = ToRadians(-1.8494444444444447); 
     double lat2 = ToRadians(52.20444444444445); 
     double lon2 = ToRadians(-0.14055555555555554); 

我在谷歌地图获取路线计算,我得到了181公里,但在这个网站(http://www.movable-type.co.uk/scripts/latlong .html)它大约有170公里。

在我的源代码中,我使用java和c#来实现这个功能,当我计算它时,我得到了大约155公里。

他们为什么不相等?

你有任何可以准确计算出这2个值的函数吗?

回答

1

网站上的Haversine公式是合理准确的,就像“乌鸦飞”一样。你不会说你如何使用谷歌地图来计算距离,但是如果你只是简单地输入数值并要求它计算一条路线,那么它将使用更长的驾驶距离(跟随道路)。如果您的Haversine公式的实现出现与网站不同的答案,那么您或他们实施的方式不正确。你可能会发现another web site检查你的答案,看看哪个。

您可以在C#here中找到实现。

0

在Google地球上,值为155.92km。 所以它同意你的结果。

Google地球使用Great Circle Distance计算,该计算考虑到地球是球体的事实。 虽然我不知道其他两个来源。

我会保持你目前的实施。

相关问题