Google Maps
Elixir wrapper around Google Maps APIs
Services
- 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
- 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.
Methods
distance/3
directions/3
geocode/2
place_autocomplete/2
place_query/2
place_nearby/3
place_details/2
timezone/2
get/2
Installation
If available in Hex, the package can be installed as:
- Add
google_maps
to your list of dependencies inmix.exs
:
def deps do
[{:google_maps, "~> 0.8"}]
end
- Ensure
google_maps
is started before your application:
def application do
[applications: [:google_maps]]
end
- 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)
Development
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