Distance between two points on the Earth's surface

"Astronomical Algorithms, Second Edition" by Jean Meeus

code:

function latlng2distance(lat1,lng1,lat2,lng2){
    var rad=Math.PI/180;
    var earth_radius = 6378.14;
    var earth_flattening = 1/298.257;
    var e = ((lng1-lng2)/2)*rad;
    var f=((lat1+lat2)/2)*rad;
    var g=((lat1-lat2)/2)*rad;
    var s =Math.sin(g)*Math.sin(g)*Math.cos(e)*Math.cos(e) + Math.cos(f)*Math.cos(f)*Math.sin(e)*Math.sin(e);
    var c =Math.cos(g)*Math.cos(g)*Math.cos(e)*Math.cos(e) + Math.sin(f)*Math.sin(f)*Math.sin(e)*Math.sin(e);
    var w=Math.atan(Math.sqrt(s/c));
    var r=Math.sqrt(s*c)/w;
    var d=2*w*earth_radius;
    var h1 = (3*r-1)/(2*c);
    var h2 = (3*r+1)/(2*s);
    var distance = d*(1+earth_flattening*h1*Math.sin(f)*Math.sin(f)*Math.cos(g)*Math.cos(g)-earth_flattening*h2*Math.cos(f)*Math.cos(f)*Math.sin(g)*Math.sin(g))
    return distance;
}

example:

//Paris:
var lat1=48.8363889, lng1 = -2.33722222;
//Washington:
var lat2 = 38.9213889, lng2 = 77.0655556;
var results = latlng2distance(lat1,lng1,lat2,lng2)

results =