JavaScript计算地球上两个经纬度之间的直线距离
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 角度转弧度 function _angle2rad(d) { return d * Math.PI / 180.0; } function gpsDistance(p1, p2) { var lat1 = _angle2rad(p1[1]); var lat2 = _angle2rad(p2[1]); var a = lat1 - lat2; var b = _angle2rad(p1[0]) - _angle2rad(p2[0]); var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2))); return distance * 6378137; } |
上述代码以球状模型计算地球上两点之间的直线距离。 以计算成都北站到成都东站的直线距离为例: 成都北站经纬度:104.074047,30.695510 成都东站经纬度:104.139949,30.6 …