c#经纬度转换距离

 

    public double EarthRadiusKm = 6378.137; // WGS-84    

///

    /// 获取两点(经纬度表示)间的距离

    ///

    /// 第一点纬度值,格式23.1234567

    /// 第一点经度值

    /// 第二点纬度值

    /// 第二点经度值

    /// 返回两点间距离

    public double GetDistance(double p1Lat, double p1Lng, double p2Lat, double p2Lng)

    {

        double dLat1InRad = p1Lat * (Math.PI / 180);

        double dLong1InRad = p1Lng * (Math.PI / 180);

        double dLat2InRad = p2Lat * (Math.PI / 180);

        double dLong2InRad = p2Lng * (Math.PI / 180);

        double dLongitude = dLong2InRad - dLong1InRad;

        double dLatitude = dLat2InRad - dLat1InRad;

        double a = Math.Pow(Math.Sin(dLatitude / 2), 2) + Math.Cos(dLat1InRad) * Math.Cos(dLat2InRad) * Math.Pow(Math.Sin(dLongitude / 2), 2);

        double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));

        double dDistance = EarthRadiusKm * c;

        return dDistance;

    }

你可能感兴趣的:(c#经纬度转换距离)