# haversort

Sort a list of coordinates by distance from a given point

``npm install haversort``

# haversort

An implementation of a haversine algorhythm for finding the distance, in KM, between two latitudes and longtudes on Earth.

## Usage

`npm install -S haversort`

``````> var h = require('haversort');
> h.distanceSort(10, 10, [[18,18], [12,12], [13,13], [14,14]]);
[ [ 12, 12, 312 ],
[ 13, 13, 467.5 ],
[ 14, 14, 622.8 ],
[ 18, 18, 1240.3 ] ]
> h.haversine(10, 10, 20, 20);
1546.5
``````

## API

#### distanceSort(lat, lon, points) → {array}

Given a point and a list of points, returns the list sorted by distance (closest first)

##### Parameters:
Name Type Description
`lat` mixed

Lat of center point or array of `[lat, lon]` representing the center point

`lon` mixed

Lon of center point or array of points to sort

`points` array

Array of points to sort

Source:
##### Returns:

Array of points, sorted by distance from center point, with the distance pushed as the last element in each array

Type
array

#### haversine(lat1, lon1, lat2, lon2) → {number}

Compute the distance between two points using the haversine formula, based on the above defined Radius.

##### Parameters:
Name Type Argument Description
`lat1` mixed

First lat, or an array of `[lat, lon]` representing the first point

`lon1` mixed

First lon, or an array of `[lat, lon]` resresenting the second point

`lat2` number <optional>

The latitude of the second point

`lon2` number <optional>

The longitude of the second point

Source:
##### Returns:

The distance, in KM, between the two points, rounded to the tenths.

Type
number

##### Parameters:
Name Type Description
`num` number

Angle, in degrees to return as a Radian

Source: