2012年9月18日 星期二

[javascript].2個經緯度坐標,計算直線距離

Calculate distance between two points with latitude and longitude coordinates

function distance(lat1,lon1,lat2,lon2) {
 var R = 6371; // km (change this constant to get miles)
 var dLat = (lat2-lat1) * Math.PI / 180;
 var dLon = (lon2-lon1) * Math.PI / 180;
 var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
  Math.cos(lat1 * Math.PI / 180 ) * Math.cos(lat2 * Math.PI / 180 ) *
  Math.sin(dLon/2) * Math.sin(dLon/2);
 var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
 var d = R * c;
 if (d>1) return Math.round(d)+"km";
 else if (d<=1) return Math.round(d*1000)+"m";
 return d;
}

資料來源:
http://snipplr.com/view/25479/

沒有留言:

張貼留言

Facebook 留言板