GPS兩座標點距離計算

工作中測試百度LBS定位接口的準確性,需要計算本公司的GPS點和調用百度接口得到的GPS座標點的誤差,從網上找了很多資料,發現下面的算法比較準確(測試座標系wgs84)。

轉自:
http://www.open-open.com/lib/view/open1388553235141.html

/**
*計算gps兩座標點的距離(單位:M)
**/
public static double getDistanceFromXtoY(double lat_a, double lng_a, double lat_b, double lng_b){
            double pk = (double)(180 / 3.14169);

            double a1 = lat_a / pk;
            double a2 = lng_a / pk;
            double b1 = lat_b / pk;
            double b2 = lng_b / pk;

            double t1 = Math.Cos(a1) * Math.Cos(a2) * Math.Cos(b1) * Math.Cos(b2);
            double t2 = Math.Cos(a1) * Math.Sin(a2) * Math.Cos(b1) * Math.Sin(b2);
            double t3 = Math.Sin(a1) * Math.Sin(b1);
            double tt = Math.Acos(t1 + t2 + t3);

            return 6366000 * tt;
        }

測試數據:
公司gps座標點:38.9631423611111,121.585119166667
百度接口座標點:38.963727756709325,121.58595020536029
座標點距離:0.09687790472161027KM

公司gps座標點:31.4088551666667,116.330832333333
百度接口座標點:31.408822041273368,116.33178209779567
座標點距離:0.09014046635371215

順便提供一個gps好的工具網址:
http://www.gpsspg.com/maps.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章