gps-distance

Node module for computing distances between GPS coordinates

gps-distance

A node module for performing distance calculations between GPS coordinates

npm install gps-distance

Examples

gps-distance supports two syntaxes for convenience. You can measure just between two points and supply in your GPS coordinates as direct arguments to distance in the form (source_lat, source_lon, destination_lat, destination_lon), or you can use an array of points each in [lat,lon] format. See the examples below.

 
var distance = require('gps-distance');
 
// Measure between two points: 
var result = distance(45.527517, -122.718766, 45.373373, -121.693604);
 
// result is 81.78450202539503 
 
// Measure a list of GPS points along a path: 
var path = [
  [45.527517, -122.718766],
  [45.373373, -121.693604],
  [45.527517, -122.718766]
];
 
var result2 = distance(path);
 
// result2 is 163.56900405079006 

To compute the distance travelled in a tracked GPX file, use gps-distance with the gpx-stream module ( http://npmjs.org/package/gpx-stream/ ).

 
var GPXstream = require('gpx-stream');
var distance = require('gps-distance');
 
var points = new GPXstream();
var source = fs.createReadStream('./marathon.gpx');
var path = [];
 
source.pipe(points);
 
points.on('readable', function() {
  var point;
 
  while(point = points.read()) {
    path.push([point.lat, point.lon]);
  }
});
 
points.on('end', function() {
  console.log('Distance travelled: ' + distance(path) + ' km');
});

Distances are returned in kilometers and computed using the Haversine formula.