<!-- BusyBot node reference — https://busybot.net/tools/gemini-google-maps/ -->

> Node: Gemini Google Maps (`gemini_google_maps`) · Action · v1
> Category: AI · Credentials: Google AI (`googleAi`)
> Updated: 2026-08-16

# Gemini Google Maps

> Use Google Maps via Gemini for places lookup and geocoding.

## Overview

Gemini Google Maps sends a user query to the Gemini generateContent API with the google_maps tool enabled, allowing the model to perform places lookup, geocoding, directions, and other Maps-related queries. The model uses Google Maps data to ground its responses with real location information. Returns the generated text response along with model metadata and token usage.

**Category:** AI  
**Tool Name:** `gemini_google_maps`  
**Version:** 1

**Appearance:** Icon: `gemini` | Color: `#ffffff`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Google AI** credentials.
See the [Credentials Guide](https://busybot.net/credentials/google-ai/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Model | `options` | No | (current default) | The Gemini model to use for the maps query. Pick a specific version — labels are pinned, not aliased to "latest". |
| | | | | Options: the Gemini chat models available to your workspace — pick one from the dropdown. |
| System Prompt | `string` | No | — | Optional system instruction that sets the behavior and context for the model. Supports expressions. |
| User Message | `string` | Yes | — | The maps query to send to Gemini. Include location names, addresses, or coordinates. Falls back to item.message or item.prompt if empty. Supports expressions like {{ $json.address }}. |
| File URIs | `string` | No | — | Optional. fileUri value(s) from the Gemini File Upload tool. Pass a single URI or a JSON array for multiple files. Files are sent as multimodal context alongside the message. Falls back to item.fileUris if empty. Gemini File API retains uploads for 48 hours. Supports expressions. |
| Options | `collection` | No | `{}` | Optional generation and output settings — add only the fields you need. |
| — Temperature | `number` | No | `1` | Controls randomness. Lower values are more deterministic, higher values more creative. Range: 0-2. |
| — Max Output Tokens | `number` | No | `8192` | Maximum number of tokens in the generated response. |
| — Response Field Name | `string` | No | `response` | The key name in the output JSON where the generated text will be stored. |
| Include Input | `boolean` | No | `false` | Whether to merge the input item JSON into the output item. |
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

One maps-grounded request per input item, and one output item per input item. The answer lands on the field named by **Response Field Name** (`response` by default), with `model`, `finishReason` and `usage` beside it. The rest of the input item JSON is dropped unless **Include Input** is on; binary data on the input item is forwarded unchanged.

```json
{
  "response": "The location answer, grounded in Google Maps data",
  "model": "the model that produced the answer",
  "finishReason": "the API's reason for ending generation",
  "usage": { "promptTokenCount": 210, "candidatesTokenCount": 128 }
}
```

- The answer is free text, not a structured place record. When you need fields a downstream node can address — coordinates, a formatted address, a rating — ask for them explicitly in the System Prompt (for example, "reply with JSON only") and parse the text afterwards.
- `finishReason` is the API's own reason for ending generation — the field to check when an answer looks cut off against the **Max Output Tokens** cap.
- `usage` is the token accounting the API returned for that call.

Reference the result downstream by expression, e.g. `{{ $json.response }}`.

## Usage Examples

- Find restaurants near a specific location
- Get directions between two addresses
- Geocode an address to latitude/longitude coordinates
- Search for nearby points of interest
- Look up business hours and ratings for a place

## Example Configuration

Minimal — one location question per item:

```json
{
  "type": "gemini_google_maps",
  "parameters": {
    "userMessage": "What are the coordinates of the Eiffel Tower in Paris?"
  }
}
```

Geocode deterministically and ask for a machine-readable answer:

```json
{
  "type": "gemini_google_maps",
  "parameters": {
    "systemPrompt": "Return only valid JSON with the fields name, lat, lng and formattedAddress. No other text.",
    "userMessage": "Geocode: {{ $json.address }}",
    "includeInput": true,
    "maxConcurrency": 20,
    "options": {
      "temperature": 0,
      "maxOutputTokens": 256,
      "responseFieldName": "geocodeResult"
    }
  }
}
```

Nearby-places lookup with a descriptive answer:

```json
{
  "type": "gemini_google_maps",
  "parameters": {
    "userMessage": "List 5 highly-rated Italian restaurants within 1 mile of {{ $json.landmark }}, with their addresses.",
    "options": {
      "temperature": 0.5,
      "maxOutputTokens": 1024,
      "responseFieldName": "nearbyPlaces"
    }
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Gemini Google Maps sends a query to the Gemini generateContent API with the Google Maps tool enabled, performing places lookup, geocoding, and directions using real map data. Use this tool when a workflow needs to resolve addresses to coordinates, find nearby businesses, or answer location-based questions requiring live geographic grounding. It produces a generated text response with resolved location details, model metadata, and token usage on the main output.