UNPKG

s-haversine

Version:

Get distance between any two latitute/longitude coordinates

27 lines (23 loc) 1.19 kB
import test from 'ava'; import haversine, { degreesToRadians, dmsToDecimal } from '../'; test('calculate distance between two points', (t) => { t.is(haversine.distance([40, 50], [40, 50]), 0); t.true(haversine.distance([40, -70], [-70, 40]) - 14890000 < 5000, 'Calculated distance - known distance should be ~14890000m, tolerance 5000m'); t.true(haversine.distance([36.151829, -115.143296], [36.151465, -115.146284]) - 300 < 100, 'Calculated more precise distance - known distance should be ~300m, tolerance 100m'); }); test('degrees minutes seconds to decimal', (t) => { t.is(dmsToDecimal('40° N'), 40); t.is(dmsToDecimal('40.1° N'), 40.1); t.is(dmsToDecimal('40 20'), 40.333333333333336); t.is(dmsToDecimal('40 20 0'), 40.333333333333336); t.is(dmsToDecimal('40 20 50'), 40.34722222222222); t.is(dmsToDecimal('40 20 50N'), 40.34722222222222); t.is(dmsToDecimal('40 20 50W'), -40.34722222222222); t.is(dmsToDecimal('40°20\'50" S'), -40.34722222222222); }); test('degrees to radians', (t) => { t.is(degreesToRadians(0), 0); t.is(degreesToRadians(15), Math.PI / 12); t.is(degreesToRadians(180), Math.PI); t.is(degreesToRadians(360), Math.PI * 2); });