This library allows you to obtain the distance and travel times between multiple origins and destinations via various travel methods.
First, add distance_api_matrix to your mix.exs
dependencies:
def deps do
[{:distance_api_matrix, "~> 2.0"}]
end
and run $ mix deps.get
.
# 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
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.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Various tests included, just run;
mix deps.get
mix test
Copyright (c) 2015 Thibault Hagler. See the LICENSE file for license rights and limitations (MIT).