var FINAL = 6378137.0
/**
* 求某个经纬度的值的角度值
* @param {Object} d
*/
function calcDegree(d){
return d*Math.PI/180.0 ;
}
/**
* 根据两点经纬度值,获取两地的实际相差的距离
* @param {Object} f 第一点的坐标位置[latitude,longitude]
* @param {Object} t 第二点的坐标位置[latitude,longitude]
*/
function calcDistance(f,t){
var flat = calcDegree(f[0]) ;
var flng = calcDegree(f[1]) ;
var tlat = calcDegree(t[0]) ;
var tlng = calcDegree(t[1]) ;
var result = Math.sin(flat)*Math.sin(tlat) ;
result += Math.cos(flat)*Math.cos(tlat)*Math.cos(flng-tlng) ;
return Math.acos(result)*FINAL ;
}
window.alert("上海到北京的距离: "+calcDistance([31.22219703210317,121.475830078125],[39.90130858574735,116.400146484375]));