haversineEX

Hex.pm

Provides some helpers functions to calculate the distance between two points on Earth using the Haversine formula. Also can find the bearing between two points, and get a point at a given distance and bearing from a given point.

Installation

def deps do
  [
    {:haversineEx, "~> 0.1.0"}
  ]
end

Usage

iex> PointA = %HaversineEx.Point{lat: 40.7767644, lng: -73.9761399}

iex> PointB = %HaversineEx.Point{lat: 40.771209, lng: -73.9673991}

iex> HaversineEx.distance(PointA, PointB, :miles)
0.597117

iex> HaversineEx.bearing(PointA, PointB)
130.002827

iex> HaversineEx.find_point(PointA, 0.597117, 130.002827, :miles)
%HaversineEx.Point{lat: 40.771209, lng: -73.9673991}

iex> route = [
  %HaversineEx.Point{lat: 40.7767644, lng: -73.9761399},
  %HaversineEx.Point{lat: 40.773987, lng: -73.971769},
  %HaversineEx.Point{lat: 40.771209, lng: -73.9673991}
]

iex> HaversineEx.distance(route, :miles)
0.597117

Running tests

mix test