2025-02-10

這個確實好久沒弄過瞭,完全忘記瞭,以前在一本書上看見過,不過後來在網上搜到的,其實就是球面距離算法

 

lat是緯度,lung是經度
a=Lat1 – Lat2 為兩點緯度之差  b=Lung1 -Lung2 為兩點經度之差;
6378.137(KM) 為地球半徑 – -@

恩,結果也是km……

另外,google的api其實已經實現好瞭的
Java代碼 
// 計算兩點距離  
private final double EARTH_RADIUS = 6378137.0;    
private double gps2m(double lat_a, double lng_a, double lat_b, double lng_b) {  
       double radLat1 = (lat_a * Math.PI / 180.0);  
       double radLat2 = (lat_b * Math.PI / 180.0);  
       double a = radLat1 – radLat2;  
       double b = (lng_a – lng_b) * Math.PI / 180.0;  
       double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)  
              + Math.cos(radLat1) * Math.cos(radLat2)  
              * Math.pow(Math.sin(b / 2), 2)));  
       s = s * EARTH_RADIUS;  
       s = Math.Round(s * 10000) / 10000;  
       return s;  
    } 

作者“記事本……”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *