前端经纬度计算距离
// 获取弧度
function getRad(d){
return (d * Math.PI )/ 180.0;
},
// 计算距离 lat1,lng1 第一个坐标 lat2,lng2 目标坐标
function getFlatternDistance(lat1,lng1,lat2,lng2){
var f = this.getRad((lat1 + lat2) / 2);
var g = this.getRad((lat1 - lat2) / 2);
var l = this.getRad((lng1 - lng2) / 2);
var sg = Math.sin(g);
var sl = Math.sin(l);
var sf = Math.sin(f);
var s,c,w,r,d,h1,h2;
var a = 6378137.0;
var fl = 1 / 298.257;
sg = sg * sg;
sl = sl * sl;
sf = sf * sf;
s = sg * ( 1 - sl) + ( 1 - sf) * sl;
c = ( 1 - sg) * ( 1 - sl) + sf * sl;
w = Math.atan(Math.sqrt(s / c));
r = Math.sqrt(s * c) / w;
d = 2 * w * a;
h1 = ( 3 * r - 1 ) / 2 / c;
h2 = ( 3 * r + 1 ) / 2 / s;
return d * ( 1 + fl * (h1 * sf * ( 1 - sg) - h2 * ( 1 - sf) * sg));
}