Created
May 16, 2017 12:10
-
-
Save mladenp/b79c21e87fec4979fa1a28355935fbf9 to your computer and use it in GitHub Desktop.
Calulate Distance between lat lng points
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Calculate Distance between two latitute & longitude points */ | |
function GPScalculateDistance(lat1, lng1, lat2, lng2) | |
{ | |
//radians | |
lat1 = (lat1 * 2.0 * Math.PI) / 60.0 / 360.0; | |
lng1 = (lng1 * 2.0 * Math.PI) / 60.0 / 360.0; | |
lat2 = (lat2 * 2.0 * Math.PI) / 60.0 / 360.0; | |
lng2 = (lng2 * 2.0 * Math.PI) / 60.0 / 360.0; | |
// use to different earth axis length | |
var a = 6378137.0; // Earth Major Axis (WGS84) | |
var b = 6356752.3142; // Minor Axis | |
var f = (a-b) / a; // "Flattening" | |
var e = 2.0*f - f*f; // "Eccentricity" | |
var beta = (a / Math.sqrt( 1.0 - e * Math.sin( lat1 ) * Math.sin( lat1 ))); | |
var cos = Math.cos( lat1 ); | |
var x = beta * cos * Math.cos( lng1 ); | |
var y = beta * cos * Math.sin( lng1 ); | |
var z = beta * ( 1 - e ) * Math.sin( lat1 ); | |
beta = ( a / Math.sqrt( 1.0 - e * Math.sin( lat2 ) * Math.sin( lat2 ))); | |
cos = Math.cos( lat2 ); | |
x -= (beta * cos * Math.cos( lng2 )); | |
y -= (beta * cos * Math.sin( lng2 )); | |
z -= (beta * (1 - e) * Math.sin( lat2 )); | |
return (Math.sqrt( (x*x) + (y*y) + (z*z) )/1000); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment