Google Maps API written in Elixir
Branch: master
Clone or download
sntran Remove custom Travis script
Should have not blindly copied and pasted script.
Latest commit 78e6f92 Jan 31, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Add support for Place Photo API Jan 31, 2019
test Add support for Place Photo API Jan 31, 2019
.travis.yml Initial work with Directions Service API Nov 25, 2016 Add contribution to `place_photo` Jan 31, 2019
VERSION Bump version Jan 26, 2019
mix.exs Update dependencies Jan 26, 2019
mix.lock Update dependencies Jan 26, 2019

Google Maps

Elixir wrapper around Google Maps APIs

Build Status Hex Version License


  • Directions - Directions between multiple locations.
  • Distance Matrix - Travel time and distance for multiple destinations. (contributed by @bnns)
  • Elevation - Elevation data for any point in the world.
  • Geocoding - Converts between addresses and geographic coordinates.
  • Place Add - Allows you to supplement the data in Google's Places database with data from your application.
  • Place Autocomplete - can be used to automatically fill in the name and/or address of a place as you type.
  • Place Details - Returns more detailed information about a specific Place, including user reviews.
  • Place Photo - Gives you access to the millions of Place related photos stored in Google's Place database (contributed by @gVirtu)
  • Place Nearby Search - Returns a list of places within a specified area based on a user's location or search string. (contributed by @distortia)
  • Query Autocomplete - can be used to provide a query prediction service for text-based geographic searches, by returning suggested queries as you type.
  • Timezone - Time zone data for anywhere in the world. (contributed by @uesteibar)


  • directions/3
  • distance/3
  • elevation/2
  • geocode/2
  • place_autocomplete/2
  • place_query/2
  • place_nearby/3
  • place_details/2
  • place_photo/4
  • timezone/2
  • get/2


If available in Hex, the package can be installed as:

  1. Add google_maps to your list of dependencies in mix.exs:
def deps do
  [{:google_maps, "~> 0.11"}]
  1. Ensure google_maps is started before your application:
def application do
  [applications: [:google_maps]]
  1. In your application's config/config.exs, add:
config :google_maps,
  api_key: "YOUR API KEY HERE"

Or you can use GOOGLE_MAPS_API_KEY system environment variable when running in iex.

If separate API keys are needed per request, they can be set through key option, i.e.:

GoogleMaps.directions("Toronto", "Montreal", key: API_KEY_1)


You'll need a Google API key with all relevant APIs (see above) enabled. Add your key to the environment as specified above.

Then run tests:

mix deps.get test

mix test