ヒュベニの公式の公式による2点間の距離計算です。単位は、メートルです。
function HubenyDistance(lat1,lng1,lat2,lng2) { lat1 = lat1 * Math.PI / 180; lng1 = lng1 * Math.PI / 180; lat2 = lat2 * Math.PI / 180; lng2 = lng2 * Math.PI / 180; A = 6378137.000; B = 6356752.314140; e2 = (Math.pow(A,2) - Math.pow(B,2)) / Math.pow(A,2); N1 = A / Math.sqrt(1 - (e2) * Math.pow(Math.sin(lat1),2)); N2 = A / Math.sqrt(1 - (e2) * Math.pow(Math.sin(lat2),2)); N = (N1 + N2) / 2; dx = N2 * Math.cos(lat2) * Math.cos(lng2) - N1 * Math.cos(lat1) * Math.cos(lng1); dy = N2 * Math.cos(lat2) * Math.sin(lng2) - N1 * Math.cos(lat1) * Math.sin(lng1); dz = N2 * (1 - e2) * Math.sin(lat2) - N1 * (1 - e2) * Math.sin(lat1); Rn = Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2) + Math.pow(dz,2)); F = Math.asin(((Rn / 2) / N)); return 2 * N * F; }