返回列表 發帖

計算地球上兩座標點之間的距離

書上看到的技巧,貼出來分享給大家,透過弧度值的經緯度來計算,以 Google Maps API 為範例。
function getDistance(p1, p2, unit) {
 var R = 6378.137; //地球半徑
 var M = 1.609344; //英里轉公里
 var lat1 = p1.latRadians(); //弧度值緯度
 var lng1 = p1.lngRadians(); //弧度值經度
 var lat2 = p2.latRadians();
 var lng2 = p2.lngRadians(); 
 var dist = 2 * Math.asin(Math.sqrt(Math.pow((Math.sin((lat1-lat2)/2)),2)+Math.cos(lat1)*Math.cos(lat2)*Math.pow((Math.sin((lng1-lng2)/2)),2))*R;
 if (unit == 'M')
  return dist / M;
 return dist;
}
To infinity and beyond!

返回列表 回復 發帖