Get distance between any two latitute/longitude coordinates

Usage no npm install needed!

<script type="module">
  import sHaversine from 'https://cdn.skypack.dev/s-haversine';



NPM version Dependencies build status NPM license


This module calculates the distance between two points on Earth using lat/long coordinates. It is based on the haversine formula and includes a utility to convert from degrees/minutes/seconds to the signed decimal degrees format needed for the formula to work.

This can be used with the web Geolocation API, which provides lat/long coordinates.


Get a pair of latitude/longitude coordinates then use them as the arguments for the distance method. Example:

import haversine from 's-haversine';

// ---------- [latitude, longitude];
const coords1 = [36.151829, -115.143296];
const coords2 = [36.151465, -115.146284];

haversine.distance(coords1, coords2); // 271.314... (meters)

Converting deg/min/sec to decimal

This module requires coordinates to be in a signed decimal format. If you have coordinates in degrees/minutes/seconds (DMS) format, use the dmsToDecimal method to convert them. For example, an input such as 40 20 50W or 40°20'50" S will return roughly -40.34722.

havesine.dmsToDecimal('40 20 50W'); // -40.34722... (degrees)

Earth radius

The math involved in the haversine formula depends on knowledge of the Earth's radius. This is configured by default as 6371000 (in meters). If you need to fine tune this or use another radius, you can configure this by setting haversine.earthRadius to a number before calling the distance method.