// http://yamadarake.web.fc2.com/trdi/2009/report000001.html function calcHubenyDistance(lat1, lon1, lat2, lon2){ var a = 6378137.000; var b = 6356752.314245; var e2= 0.00669437999019758; var y1 = lat1 * Math.PI / 180; var x1 = lon1 * Math.PI / 180; var y2 = lat2 * Math.PI / 180; var x2 = lon2 * Math.PI / 180; var y_ave = (y1 + y2) / 2; var y_diff = y1 - y2; var x_diff = x1 - x2; var w = Math.sqrt(1 - e2 * Math.pow(Math.sin(y_ave), 2)); var n = a / w; var m = a * (1 - e2) / Math.pow(w, 3); return Math.sqrt(Math.pow(y_diff * m, 2) + Math.pow(x_diff * n *Math.cos(y_ave), 2)); }