C#地理坐标返回值

C#地理坐标返回值,c#,geocoding,C#,Geocoding,我使用下面的函数来计算两组经纬度对之间的距离。这似乎很好,但我有两个问题。它以公里而不是英里(我在美国)为单位返回值,公里值似乎偏离了小数点后三位?它返回的值是这样的:34366.7661043296是从加利福尼亚州巴伦西亚到加利福尼亚州伯班克大约35公里的距离。为什么是以公里为单位,更重要的是为什么是十进制问题?如果它能返回大约36.50英里,那就太好了。非常感谢您的帮助,提前谢谢您 public static double GetDistance(double sLatitude, doub

我使用下面的函数来计算两组经纬度对之间的距离。这似乎很好,但我有两个问题。它以公里而不是英里(我在美国)为单位返回值,公里值似乎偏离了小数点后三位?它返回的值是这样的:34366.7661043296是从加利福尼亚州巴伦西亚到加利福尼亚州伯班克大约35公里的距离。为什么是以公里为单位,更重要的是为什么是十进制问题?如果它能返回大约36.50英里,那就太好了。非常感谢您的帮助,提前谢谢您

public static double GetDistance(double sLatitude, double sLongitude, double eLatitude, double eLongitude)
{
    var sCoord = new GeoCoordinate(sLatitude, sLongitude);
    var eCoord = new GeoCoordinate(eLatitude, eLongitude);
    return sCoord.GetDistanceTo(eCoord);            
}

为什么不换行将输出除以1609.344,得到里程数并完成它呢?说
返回sCoord.GetDistanceTo(eCoord)/1609.344
作为最后一行要准确,如果该方法返回值
34366.7661043296
,则返回的值为
公里
。我同意@EugenRieck的建议。好吧,我想我现在明白我的疏忽了,函数返回的是米,不是公里?伯班克到巴伦西亚大约34公里,而不是34366公里。对不起,我现在明白了。我以为是公里。我会照你的建议做,除以1609.344,谢谢。