Google maps

Learn how to use Google maps with Composio

Overview

SLUG: GOOGLE_MAPS

Description

Integrate Google Maps to access location data, geocoding, directions, and mapping services in your application.

Authentication Details

client_id
stringRequired
client_secret
stringRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to https://www.googleapis.com/auth/cloud-platform
bearer_token
string
generic_api_key
stringRequired

Connecting to Google maps

Create an auth config

Use the dashboard to create an auth config for the Google maps toolkit. This allows you to connect multiple Google maps accounts to Composio for agents to use.

1

Select App

Navigate to [Google maps](https://platform.composio.dev/marketplace/Google maps).

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Google maps Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4google_maps_auth_config_id = "ac_YOUR_GOOGLE_MAPS_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Google maps: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, google_maps_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4google_maps_auth_config_id = "ac_YOUR_GOOGLE_MAPS_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": user_api_key}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Google maps for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, google_maps_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the [Google maps toolkit’s playground](https://app.composio.dev/app/Google maps)

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["GOOGLE_MAPS"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Distance Matrix

Description

Calculates travel distance and time for a matrix of origins and destinations. supports different modes of transportation and options like departure/arrival times. use when needing to determine travel metrics between multiple points.

Action Parameters

arrival_time
integer
avoid
string
departure_time
integer
destinations
stringRequired
key
string
language
string
mode
stringDefaults to driving
origins
stringRequired
region
string
traffic_model
string
transit_mode
string
transit_routing_preference
string
units
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Geocoding, Reverse Geocoding, and Place ID Lookup

Description

Tool to convert addresses into geographic coordinates (latitude and longitude) and vice versa (reverse geocoding), or get an address for a place id. use for finding coordinates for an address, finding an address for coordinates, or looking up an address by its place id.

Action Parameters

address
string
bounds
string
components
string
extra_computations
array
key
stringRequired
language
string
latlng
string
location_type
string
place_id
string
region
string
result_type
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Embed Google Map

Description

Tool to generate an embeddable google map url and html iframe code. use when you need to display a map (place, view, directions, street view, search) on a webpage without javascript.

Action Parameters

directions_params
object
mode
stringRequired
place_params
object
search_params
object
streetview_params
object
view_params
object

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get directions

Description

Fetches detailed directions between an origin and a destination, supporting intermediate waypoints and various travel modes.

Action Parameters

avoid
string
destination
stringRequired
language
stringDefaults to en
mode
stringDefaults to driving
origin
stringRequired
units
stringDefaults to imperial
waypoints
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Route

Description

Calculates one or more routes between two specified locations using various travel modes and preferences; addresses must be resolvable by google maps.

Action Parameters

computeAlternativeRoutes
boolean
destination_address
stringRequired
fieldMask
stringDefaults to routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline
languageCode
stringDefaults to en-US
origin_address
stringRequired
routeModifiers_avoidFerries
boolean
routeModifiers_avoidHighways
boolean
routeModifiers_avoidTolls
boolean
routingPreference
stringDefaults to TRAFFIC_AWARE
travelMode
stringDefaults to DRIVE
units
stringDefaults to IMPERIAL

Action Response

data
objectRequired
error
string
successful
booleanRequired