84 lines
1.8 KiB
Markdown
84 lines
1.8 KiB
Markdown
|
gps-distance
|
||
|
============
|
||
|
|
||
|
[](https://nodei.co/npm/gps-distance/)
|
||
|
|
||
|
A node module for performing distance calculations between GPS coordinates
|
||
|
|
||
|
Installation
|
||
|
------------
|
||
|
|
||
|
```
|
||
|
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.
|
||
|
|
||
|
Point to Point
|
||
|
--------------
|
||
|
|
||
|
```javascript
|
||
|
|
||
|
var distance = require('gps-distance');
|
||
|
|
||
|
// Measure between two points:
|
||
|
var result = distance(45.527517, -122.718766, 45.373373, -121.693604);
|
||
|
|
||
|
// result is 81.78450202539503
|
||
|
```
|
||
|
|
||
|
Array of GPS points
|
||
|
-------------------
|
||
|
|
||
|
```javascript
|
||
|
|
||
|
// 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
|
||
|
```
|
||
|
|
||
|
Measuring Distance From a .GPX File
|
||
|
-----------------------------------
|
||
|
|
||
|
To compute the distance travelled in a tracked GPX file, use `gps-distance` with the `gpx-stream` module ( http://npmjs.org/package/gpx-stream/ ).
|
||
|
|
||
|
```javascript
|
||
|
|
||
|
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');
|
||
|
});
|
||
|
```
|
||
|
|
||
|
|
||
|
Notes
|
||
|
-----
|
||
|
|
||
|
Distances are returned in kilometers and computed using the Haversine formula.
|