假设这 4 个值:
double lat1 = ToRadians(53.14722222222222);
double lon1 = ToRadians(-1.8494444444444447);
double lat2 = ToRadians(52.20444444444445);
double lon2 = ToRadians(-0.14055555555555554);
我在Google map 获取方向中计算,我得到了大约181公里,但在这个网站(http://www.movable-type.co.uk/scripts/latlong.html)中得到了大约170公里。
在我的源码中,我使用java和c#来实现这个功能,当我计算时,我得到了大约155公里。
为什么它们不等价?
有没有可以准确计算这两个值的函数?
请您参考如下方法:
网站上的半正矢公式“直线上升”,相当准确。你没有说你如何使用谷歌地图来计算距离,但如果你只是输入值并要求它计算路线,它将使用行驶距离(沿着道路),这会更长。如果您对半正矢公式的实现得出的答案与网站不同,那么您或他们的实现不正确。您可能会发现another web site检查您的答案,看看是哪一个。
您可以在 C# 中找到一个实现 here .