相关疑难解决方法(0)

计算两个纬度和经度地理坐标之间的距离

我正在计算两个GeoCoordinates之间的距离.我正在针对其他3-4个应用测试我的应用.当我计算距离时,我计算得到的平均值为3.3英里,而其他应用程序的距离为3.5英里.这与我正在尝试执行的计算有很大不同.有没有好的类库来计算距离?我在C#中计算它是这样的:

public static double Calculate(double sLatitude,double sLongitude, double eLatitude, 
                               double eLongitude)
{
    var radiansOverDegrees = (Math.PI / 180.0);

    var sLatitudeRadians = sLatitude * radiansOverDegrees;
    var sLongitudeRadians = sLongitude * radiansOverDegrees;
    var eLatitudeRadians = eLatitude * radiansOverDegrees;
    var eLongitudeRadians = eLongitude * radiansOverDegrees;

    var dLongitude = eLongitudeRadians - sLongitudeRadians;
    var dLatitude = eLatitudeRadians - sLatitudeRadians;

    var result1 = Math.Pow(Math.Sin(dLatitude / 2.0), 2.0) + 
                  Math.Cos(sLatitudeRadians) * Math.Cos(eLatitudeRadians) * 
                  Math.Pow(Math.Sin(dLongitude / 2.0), 2.0);

    // Using 3956 as the number of miles around the …
Run Code Online (Sandbox Code Playgroud)

c# geocoding latitude-longitude windows-phone-7

126
推荐指数
8
解决办法
13万
查看次数