如何使用纬度和经度计算距离和方位?
问题描述:
假设这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个值的函数吗?
答
网站上的Haversine公式是合理准确的,就像“乌鸦飞”一样。你不会说你如何使用谷歌地图来计算距离,但是如果你只是简单地输入数值并要求它计算一条路线,那么它将使用更长的驾驶距离(跟随道路)。如果您的Haversine公式的实现出现与网站不同的答案,那么您或他们实施的方式不正确。你可能会发现another web site检查你的答案,看看哪个。
您可以在C#here中找到实现。
答
在Google地球上,值为155.92km。 所以它同意你的结果。
Google地球使用Great Circle Distance计算,该计算考虑到地球是球体的事实。 虽然我不知道其他两个来源。
我会保持你目前的实施。