c#haversine实现给出了与googlemaps/movable-type.co.uk不同的答案

c#haversine实现给出了与googlemaps/movable-type.co.uk不同的答案,c#,haversine,C#,Haversine,我需要计算两点之间的距离(给定纬度和经度)。我在C语言中实现了标准的哈弗森公式# 但是我从代码和网站上得到了不同的答案。 例如输入:pos1.Latitude=12.916822和pos1.Latitude=77.599816 位置2.纬度=12.917135,位置2.经度=77.585783 我的程序返回34.843(当我在答案上做一个Math.Round((dist),4)),其中网站给出1.521公里 有人能指出什么地方不对劲吗? PS:我的程序以米为单位计算距离。我正在快速查看它,这应该

我需要计算两点之间的距离(给定纬度和经度)。我在C语言中实现了标准的哈弗森公式#

但是我从代码和网站上得到了不同的答案。 例如输入:
pos1.Latitude=12.916822
pos1.Latitude=77.599816
位置2.纬度=12.917135,位置2.经度=77.585783 我的程序返回34.843(当我在答案上做一个
Math.Round((dist),4)
),其中网站给出1.521公里 有人能指出什么地方不对劲吗?
PS:我的程序以米为单位计算距离。

我正在快速查看它,这应该是一个简单的修复方法。如何更改以下内容:

double dLon = toRadian(pos2.Longitude - pos2.Longitude);
。。。进入:

double dLon = toRadian(pos2.Longitude - pos1.Longitude);

注意pos1/pos2的打字错误:)

我很快就看到了,这应该是一个很容易解决的问题。如何更改以下内容:

double dLon = toRadian(pos2.Longitude - pos2.Longitude);
。。。进入:

double dLon = toRadian(pos2.Longitude - pos1.Longitude);

注意pos1/pos2的打字错误:)

我建议将您的实现更改为使用上提供的内置dotnet


这可能比您的实现经过更好的测试。

我建议将您的实现更改为使用上提供的内置dotnet

这可能比您的实现经过更好的测试