# haversine

> A simple haversine module

Latest version **1.1.1** (published 2019-01-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install haversine
pnpm add haversine
yarn add haversine
bun add haversine
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.1 |
| Published | 2019-01-07 |
| First published | 2013-01-18 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/haversine) |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 7.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 312 |
| Author | Nick Justice |
| Maintainers | niix |
| Keywords | haversine, distance, coordinates, geolocation |

## Links

- npm: https://www.npmjs.com/package/haversine
- Repository: https://github.com/niix/haversine
- Homepage: https://github.com/niix/haversine#readme
- Issues: https://github.com/niix/haversine/issues
- npm.io page: https://npm.io/package/haversine

## Recent versions

- 1.1.1 (latest) — 2019-01-07
- 1.1.0 — 2017-11-09
- 1.0.2 — 2017-01-02
- 1.0.1 — 2016-09-06
- 1.0.0 — 2014-07-15
- 0.0.4 — 2013-02-01
- 0.0.3 — 2013-01-28
- 0.0.2 — 2013-01-25
- 0.0.1 — 2013-01-18

## README

# Haversine
A simple haversine formula module for Node.js

## Installation
`$ npm install haversine`

## Usage
### haversine (start, end, options)

    const haversine = require('haversine')

    const start = {
      latitude: 30.849635,
      longitude: -83.24559
    }

    const end = {
      latitude: 27.950575,
      longitude: -82.457178
    }

    console.log(haversine(start, end))
    console.log(haversine(start, end, {unit: 'mile'}))
    console.log(haversine(start, end, {unit: 'meter'}))
    console.log(haversine(start, end, {threshold: 1}))
    console.log(haversine(start, end, {threshold: 1, unit: 'mile'}))
    console.log(haversine(start, end, {threshold: 1, unit: 'meter'}))


#### api
- `options.unit` - Unit of measurement applied to result (default `km`, available `km, mile, meter, nmi`)
- `options.threshold` - If passed, will result in library returning `boolean` value of whether or not the start and end points are within that supplied threshold.  (default `null`)
- `options.format` - The format of start and end coordinate arguments. See table below for available values. (default `null`)

| Format        | Example
| ------------- |--------------------------|
| `undefined` (default) | `{ latitude: 30.849635, longitude: -83.24559] }`
| `[lat,lon]`   | `[30.849635, -83.24559]`
| `[lon,lat]`   | `[-83.24559, 30.849635]`
| `{lat,lon}`   | `{ lat: 30.849635, lon: -83.24559] }`
| `geojson`     | `{ type: 'Feature', geometry: { coordinates: [-83.24559, 30.849635] } }`


[MIT License](http://opensource.org/licenses/MIT)

---
_Source: https://npm.io/package/haversine · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
