A node module for performing distance calculations between GPS coordinates
npm install gps-distance
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.