Home

Awesome

Build Status Hex.pm License

Google Distance Matrix API Library for Elixir

This library allows you to obtain the distance and travel times between multiple origins and destinations via various travel methods.

Installation

First, add distance_api_matrix to your mix.exs dependencies:

def deps do
  [{:distance_api_matrix, "~> 2.0"}]
end

and run $ mix deps.get.

Usage

# Create a travel_list with coords and/or addresses
iex> travels = DistanceMatrixApi.TravelList.new |>
  DistanceMatrixApi.TravelList.add_entry(%{origin: "Caen", destination: "Paris"}) |>
  DistanceMatrixApi.TravelList.add_entry(%{origin: "21 Rue de la République, 69002 Lyon, France", destination: "60 Rue de Rivoli, 75004 Paris, France"}) |>
  DistanceMatrixApi.TravelList.add_entry(%{origin: %{lat: 45.764043, long: 4.835658999999964}, destination: %{lat: 48.856614, long: 2.3522219000000177}})

# Basic call
iex> travels |> DistanceMatrixApi.distances

#with custom options
iex> options = %{mode: "bicycling", units: "imperial", language: "en-US"}
iex> travels |> DistanceMatrixApi.distances(options)

Check an example of the output format here

Options

All options defined in the Google distance matrix documentation are available, such as: mode key language units etc.

Key :

Set by default if Application.get_env(:distance_api_matrix, :api_key) is present.

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Testing

Various tests included, just run;

mix deps.get
mix test

License

Copyright (c) 2015 Thibault Hagler. See the LICENSE file for license rights and limitations (MIT).