ittiam
11/26/2014 - 1:48 AM

From http://www.jb51.net/article/34520.htm approx distance between two points on earth ellipsoid

From http://www.jb51.net/article/34520.htm approx distance between two points on earth ellipsoid

/** 
* approx distance between two points on earth ellipsoid 
* @param {Object} lat1 
* @param {Object} lng1 
* @param {Object} lat2 
* @param {Object} lng2 
*/ 
function getFlatternDistance(lat1,lng1,lat2,lng2){ 
var f = getRad((lat1 + lat2)/2); 
var g = getRad((lat1 - lat2)/2); 
var l = 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 = EARTH_RADIUS; 
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)); 
}