Elixir wrapper around Google Maps APIs

Monthly Downloads: 18,773
Programming language: Elixir
License: MIT License
Tags: Geolocation     Third Party APIs     API     Maps    

Google Maps alternatives and similar packages

Based on the "Geolocation" category

Do you think we are missing an alternative of Google Maps or a related project?

Add another 'Geolocation' Package


Google Maps Open in Gitpod

Elixir wrapper around Google Maps APIs

Actions Status Build Status Hex Version License


  • [x] Directions - Directions between multiple locations.
  • [x] Distance Matrix - Travel time and distance for multiple destinations. (contributed by @bnns)
  • [x] Elevation - Elevation data for any point in the world.
  • [x] 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.
  • [x] Place Autocomplete - can be used to automatically fill in the name and/or address of a place as you type.
  • [x] Place Details - Returns more detailed information about a specific Place, including user reviews.
  • [x] Place Photo - Gives you access to the millions of Place related photos stored in Google's Place database (contributed by @gVirtu)
  • [x] Place Nearby Search - Returns a list of places within a specified area based on a user's location or search string. (contributed by @distortia)
  • [x] Query Autocomplete - can be used to provide a query prediction service for text-based geographic searches, by returning suggested queries as you type.
  • [x] 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

*Note that all licence references and agreements mentioned in the Google Maps README section above are relevant to that project's source code only.