Grounding dengan Google Maps

Penyiapan dengan Google Maps menghubungkan kemampuan generatif Gemini dengan data Google Maps yang kaya, faktual, dan terbaru. Fitur ini memungkinkan developer dengan mudah menyertakan fungsi yang mengetahui lokasi ke dalam aplikasi mereka. Saat kueri pengguna memiliki konteks yang terkait dengan data Maps, model Gemini akan memanfaatkan Google Maps untuk memberikan jawaban yang akurat secara faktual dan terbaru yang relevan dengan lokasi atau area umum yang ditentukan pengguna.

  • Respons yang akurat dan mengetahui lokasi: Memanfaatkan data Google Maps yang ekstensif dan terbaru untuk kueri yang spesifik secara geografis.
  • Personalisasi yang ditingkatkan: Menyesuaikan rekomendasi dan informasi berdasarkan lokasi yang disediakan pengguna.
  • Informasi dan widget kontekstual: Token konteks untuk merender widget Google Maps interaktif bersama konten yang dihasilkan.

Mulai

Contoh ini menunjukkan cara mengintegrasikan Perujukan dengan Google Maps ke dalam aplikasi Anda untuk memberikan respons yang akurat dan mengetahui lokasi terhadap kueri pengguna. Perintah meminta rekomendasi lokal dengan lokasi pengguna opsional, sehingga model Gemini dapat memanfaatkan data Google Maps.

Python

from google import genai
from google.genai import types

client = genai.Client()

prompt = "What are the best Italian restaurants within a 15-minute walk from here?"

response = client.models.generate_content(
    model='gemini-2.5-flash-lite',
    contents=prompt,
    config=types.GenerateContentConfig(
        # Turn on grounding with Google Maps
        tools=[types.Tool(google_maps=types.GoogleMaps())],
        # Optionally provide the relevant location context (this is in Los Angeles)
        tool_config=types.ToolConfig(retrieval_config=types.RetrievalConfig(
            lat_lng=types.LatLng(
                latitude=34.050481, longitude=-118.248526))),
    ),
)

print("Generated Response:")
print(response.text)

if grounding := response.candidates[0].grounding_metadata:
  if grounding.grounding_chunks:
    print('-' * 40)
    print("Sources:")
    for chunk in grounding.grounding_chunks:
      print(f'- [{chunk.maps.title}]({chunk.maps.uri})')

JavaScript

import { GoogleGenAI } from "@google/gnai";

const ai = new GoogleGenAI({});

async function generateContentWithMapsGrounding() {
  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash",
    contents: "What are the best Italian restaurants within a 15-minute walk from here?",
    config: {
      // Turn on grounding with Google Maps
      tools: [{ googleMaps: {} }],
      toolConfig: {
        retrievalConfig: {
          // Optionally provide the relevant location context (this is in Los Angeles)
          latLng: {
            latitude: 34.050481,
            longitude: -118.248526,
          },
        },
      },
    },
  });

  console.log("Generated Response:");
  console.log(response.text);

  const grounding = response.candidates[0]?.groundingMetadata;
  if (grounding?.groundingChunks) {
    console.log("-".repeat(40));
    console.log("Sources:");
    for (const chunk of grounding.groundingChunks) {
      if (chunk.maps) {
        console.log(`- [${chunk.maps.title}](${chunk.maps.uri})`);
      }
    }
  }
}

generateContentWithMapsGrounding();

REST

curl -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent' \
  -H 'Content-Type: application/json' \
  -H "x-goog-api-key: ${GEMINI_API_KEY}" \
  -d '{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "What are the best Italian restaurants within a 15-minute walk from here?"
    }]
  }],
  "tools": [{"googleMaps": {}}],
  "toolConfig": {
    "retrievalConfig": {
      "latLng": {"latitude": 34.050481, "longitude": -118.248526}
    }
  }
}'

Cara kerja Perujukan dengan Google Maps

Perujukan dengan Google Maps mengintegrasikan Gemini API dengan ekosistem Geo Google menggunakan Maps API sebagai sumber perujukan. Jika kueri pengguna berisi konteks geografis, model Gemini dapat memanggil alat Perujukan dengan Google Maps. Model kemudian dapat menghasilkan respons yang didasarkan pada data Google Maps yang relevan dengan lokasi yang diberikan.

Proses ini biasanya melibatkan:

  1. Kueri pengguna: Pengguna mengirimkan kueri ke aplikasi Anda, yang berpotensi mencakup konteks geografis (misalnya, "kedai kopi di sekitar sini", "museum di San Francisco").
  2. Pemanggilan alat: Model Gemini, yang mengenali maksud geografis, memanggil alat Perujukan dengan Google Maps. Alat ini dapat secara opsional disediakan dengan latitude dan longitude pengguna untuk hasil yang sadar lokasi.
  3. Pengambilan data: Layanan Perujukan dengan Google Maps mengkueri Google Maps untuk mendapatkan informasi yang relevan (misalnya, tempat, ulasan, foto, alamat, jam buka).
  4. Pembuatan dengan rujukan: Data Maps yang diambil digunakan untuk menginformasikan respons model Gemini, sehingga memastikan akurasi dan relevansi faktual.
  5. Respons & token widget: Model menampilkan respons teks, yang mencakup kutipan ke sumber Google Maps. Secara opsional, respons API juga dapat berisi google_maps_widget_context_token, yang memungkinkan developer merender widget Google Maps kontekstual di aplikasi mereka untuk interaksi visual.

Alasan dan waktu penggunaan Perujukan dengan Google Maps

Penyesuaian dengan Google Maps sangat ideal untuk aplikasi yang memerlukan informasi yang akurat, terbaru, dan spesifik per lokasi. Fitur ini meningkatkan pengalaman pengguna dengan menyediakan konten yang relevan dan dipersonalisasi yang didukung oleh database ekstensif Google Maps yang berisi lebih dari 250 juta tempat di seluruh dunia.

Anda harus menggunakan Grounding dengan Google Maps saat aplikasi Anda perlu:

  • Memberikan respons yang lengkap dan akurat untuk pertanyaan khusus geografis.
  • Buat perencana perjalanan percakapan dan panduan lokal.
  • Merekomendasikan lokasi menarik berdasarkan lokasi dan preferensi pengguna seperti restoran atau toko.
  • Buat pengalaman yang mengetahui lokasi untuk layanan pengiriman makanan, retail, atau media sosial.

Perujukan dengan Google Maps unggul dalam kasus penggunaan yang memerlukan kedekatan dan data faktual saat ini, seperti menemukan "kedai kopi terbaik di dekat saya" atau mendapatkan rute.

Metode dan parameter API

Perujukan dengan Google Maps diekspos melalui Gemini API sebagai alat dalam metode generateContent. Anda dapat mengaktifkan dan mengonfigurasi Perujukan dengan Google Maps dengan menyertakan objek googleMaps dalam parameter tools permintaan Anda.

JSON

{
  "contents": [{
    "parts": [
      {"text": "Restaurants near Times Square."}
    ]
  }],
  "tools":  { "googleMaps": {} }
}

Alat googleMaps juga dapat menerima parameter boolean enableWidget, yang digunakan untuk mengontrol apakah kolom googleMapsWidgetContextToken ditampilkan dalam respons. Hal ini dapat digunakan untuk menampilkan widget Places kontekstual.

JSON

{
"contents": [{
    "parts": [
      {"text": "Restaurants near Times Square."}
    ]
  }],
  "tools":  { "googleMaps": { "enableWidget": true } }
}

Selain itu, alat ini mendukung penerusan lokasi kontekstual sebagai toolConfig.

JSON

{
  "contents": [{
    "parts": [
      {"text": "Restaurants near here."}
    ]
  }],
  "tools":  { "googleMaps": {} },
  "toolConfig":  {
    "retrievalConfig": {
      "latLng": {
        "latitude": 40.758896,
        "longitude": -73.985130
      }
    }
  }
}

Memahami respons perujukan

Jika respons berhasil didasarkan pada data Google Maps, respons akan menyertakan kolom groundingMetadata. Data terstruktur ini penting untuk memverifikasi klaim dan membangun pengalaman kutipan yang kaya di aplikasi Anda, serta memenuhi persyaratan penggunaan layanan.

JSON

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "CanteenM is an American restaurant with..."
          }
        ],
        "role": "model"
      },
      "groundingMetadata": {
        "groundingChunks": [
          {
            "maps": {
              "uri": "https://maps.google.com/?cid=13100894621228039586",
              "title": "Heaven on 7th Marketplace",
              "placeId": "places/ChIJ0-zA1vBZwokRon0fGj-6z7U"
            },
            // repeated ...
          }
        ],
        "groundingSupports": [
          {
            "segment": {
              "startIndex": 0,
              "endIndex": 79,
              "text": "CanteenM is an American restaurant with a 4.6-star rating and is open 24 hours."
            },
            "groundingChunkIndices": [0]
          },
          // repeated ...
        ],
        "webSearchQueries": [
          "restaurants near me"
        ],
        "googleMapsWidgetContextToken": "widgetcontent/..."
      }
    }
  ]
}

Gemini API menampilkan informasi berikut dengan groundingMetadata:

  • groundingChunks: Array objek yang berisi sumber maps (uri, placeId, dan title).
  • groundingSupports: Array potongan untuk menghubungkan teks respons model ke sumber di groundingChunks. Setiap potongan menautkan rentang teks (ditentukan oleh startIndex dan endIndex) ke satu atau beberapa groundingChunkIndices. Ini adalah kunci untuk membuat kutipan inline.
  • googleMapsWidgetContextToken: Token teks yang dapat digunakan untuk merender widget Places kontekstual.

Untuk cuplikan kode yang menunjukkan cara merender kutipan inline dalam teks, lihat contoh dalam dokumen Perujukan dengan Google Penelusuran.

Menampilkan widget kontekstual Google Maps

Untuk menggunakan googleMapsWidgetContextToken yang ditampilkan, Anda perlu memuat Google Maps JavaScript API.

Kasus penggunaan

Perujukan dengan Google Maps mendukung berbagai kasus penggunaan yang sadar lokasi. Contoh berikut menunjukkan cara berbagai perintah dan parameter dapat memanfaatkan Perujukan dengan Google Maps. Informasi dalam Hasil yang Sesuai dengan Kenyataan di Google Maps mungkin berbeda dengan kondisi sebenarnya.

Menangani pertanyaan khusus tempat

Ajukan pertanyaan mendetail tentang tempat tertentu untuk mendapatkan jawaban berdasarkan ulasan pengguna Google dan data Maps lainnya.

Python

from google import genai
from google.genai import types

client = genai.Client()

prompt = "Is there a cafe near the corner of 1st and Main that has outdoor seating?"

response = client.models.generate_content(
    model='gemini-2.5-flash-lite',
    contents=prompt,
    config=types.GenerateContentConfig(
        # Turn on the Maps tool
        tools=[types.Tool(google_maps=types.GoogleMaps())],

        # Provide the relevant location context (this is in Los Angeles)
        tool_config=types.ToolConfig(retrieval_config=types.RetrievalConfig(
            lat_lng=types.LatLng(
                latitude=34.050481, longitude=-118.248526))),
    ),
)

print("Generated Response:")
print(response.text)

if grounding := response.candidates[0].grounding_metadata:
  if chunks := grounding.grounding_chunks:
    print('-' * 40)
    print("Sources:")
    for chunk in chunks:
      print(f'- [{chunk.maps.title}]({chunk.maps.uri})')
  ```

JavaScript

import { GoogleGenAI } from '@google/genai';

const ai = new GoogleGenAI({});

async function run() {
  const prompt = "Is there a cafe near the corner of 1st and Main that has outdoor seating?";

  const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: prompt,
    config: {
      // Turn on the Maps tool
      tools: [{googleMaps: {}}],
      // Provide the relevant location context (this is in Los Angeles)
      toolConfig: {
        retrievalConfig: {
          latLng: {
            latitude: 34.050481,
            longitude: -118.248526
          }
        }
      }
    },
  });

  console.log("Generated Response:");
  console.log(response.text);

  const chunks = response.candidates[0].groundingMetadata?.groundingChunks;
  if (chunks) {
    console.log('-'.repeat(40));
    console.log("Sources:");
    for (const chunk of chunks) {
      if (chunk.maps) {
        console.log(`- [${chunk.maps.title}](${chunk.maps.uri})`);
      }
    }
  }
}

run();

REST

curl -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent' \
  -H 'Content-Type: application/json' \
  -H "x-goog-api-key: ${GEMINI_API_KEY}" \
  -d '{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "Is there a cafe near the corner of 1st and Main that has outdoor seating?"
    }]
  }],
  "tools": [{"googleMaps": {}}],
  "toolConfig": {
    "retrievalConfig": {
      "latLng": {"latitude": 34.050481, "longitude": -118.248526}
    }
  }
}'

Menyediakan personalisasi berbasis lokasi

Mendapatkan rekomendasi yang disesuaikan dengan preferensi pengguna dan area geografis tertentu.

Python

from google import genai
from google.genai import types

client = genai.Client()

prompt = "Which family-friendly restaurants near here have the best playground reviews?"

response = client.models.generate_content(
    model='gemini-2.5-flash',
    contents=prompt,
    config=types.GenerateContentConfig(
      tools=[types.Tool(google_maps=types.GoogleMaps())],
      tool_config=types.ToolConfig(retrieval_config=types.RetrievalConfig(
          # Provide the location as context; this is Austin, TX.
          lat_lng=types.LatLng(
              latitude=30.2672, longitude=-97.7431))),
    ),
)

print("Generated Response:")
print(response.text)

if grounding := response.candidates[0].grounding_metadata:
  if chunks := grounding.grounding_chunks:
    print('-' * 40)
    print("Sources:")
    for chunk in chunks:
      print(f'- [{chunk.maps.title}]({chunk.maps.uri})')

JavaScript

import { GoogleGenAI } from '@google/genai';

const ai = new GoogleGenAI({});

async function run() {
  const prompt = "Which family-friendly restaurants near here have the best playground reviews?";

  const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: prompt,
    config: {
      tools: [{googleMaps: {}}],
      toolConfig: {
        retrievalConfig: {
          // Provide the location as context; this is Austin, TX.
          latLng: {
            latitude: 30.2672,
            longitude: -97.7431
          }
        }
      }
    },
  });

  console.log("Generated Response:");
  console.log(response.text);

  const chunks = response.candidates[0].groundingMetadata?.groundingChunks;
  if (chunks) {
    console.log('-'.repeat(40));
    console.log("Sources:");
    for (const chunk of chunks) {
      if (chunk.maps) {
        console.log(`- [${chunk.maps.title}](${chunk.maps.uri})`);
      }
    }
  }
}

run();

REST

curl -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent' \
  -H 'Content-Type: application/json' \
  -H "x-goog-api-key: ${GEMINI_API_KEY}" \
  -d '{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "Which family-friendly restaurants near here have the best playground reviews?"
    }],
  }],
  "tools": [{"googleMaps": {}}],
  "toolConfig": {
    "retrievalConfig": {
      "latLng": {"latitude": 30.2672, "longitude": -97.7431}
    }
  }
}'

Membantu perencanaan itinerari

Buat rencana perjalanan multi-hari dengan rute dan informasi tentang berbagai lokasi, yang cocok untuk aplikasi perjalanan.

Dalam contoh ini, googleMapsWidgetContextToken telah diminta dengan mengaktifkan widget di alat Google Maps. Jika diaktifkan, token yang ditampilkan dapat digunakan untuk merender widget Places kontekstual menggunakan <gmp-places-contextual> component dari Google Maps JavaScript API.

Python

from google import genai
from google.genai import types

client = genai.Client()

prompt = "Plan a day in San Francisco for me. I want to see the Golden Gate Bridge, visit a museum, and have a nice dinner."

response = client.models.generate_content(
    model='gemini-2.5-flash',
    contents=prompt,
    config=types.GenerateContentConfig(
      tools=[types.Tool(google_maps=types.GoogleMaps(enable_widget=True))],
      tool_config=types.ToolConfig(retrieval_config=types.RetrievalConfig(
          # Provide the location as context, this is in San Francisco.
          lat_lng=types.LatLng(
              latitude=37.78193, longitude=-122.40476))),
    ),
)

print("Generated Response:")
print(response.text)

if grounding := response.candidates[0].grounding_metadata:
  if grounding.grounding_chunks:
    print('-' * 40)
    print("Sources:")
    for chunk in grounding.grounding_chunks:
      print(f'- [{chunk.maps.title}]({chunk.maps.uri})')

  if widget_token := grounding.google_maps_widget_context_token:
    print('-' * 40)
    print(f'<gmp-place-contextual context-token="{widget_token}"></gmp-place-contextual>')

JavaScript

import { GoogleGenAI } from '@google/genai';

const ai = new GoogleGenAI({});

async function run() {
  const prompt = "Plan a day in San Francisco for me. I want to see the Golden Gate Bridge, visit a museum, and have a nice dinner.";

  const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: prompt,
    config: {
      tools: [{googleMaps: {enableWidget: true}}],
      toolConfig: {
        retrievalConfig: {
          // Provide the location as context, this is in San Francisco.
          latLng: {
            latitude: 37.78193,
            longitude: -122.40476
          }
        }
      }
    },
  });

  console.log("Generated Response:");
  console.log(response.text);

  const groundingMetadata = response.candidates[0]?.groundingMetadata;
  if (groundingMetadata) {
    if (groundingMetadata.groundingChunks) {
      console.log('-'.repeat(40));
      console.log("Sources:");
      for (const chunk of groundingMetadata.groundingChunks) {
        if (chunk.maps) {
          console.log(`- [${chunk.maps.title}](${chunk.maps.uri})`);
        }
      }
    }

    if (groundingMetadata.googleMapsWidgetContextToken) {
      console.log('-'.repeat(40));
      document.body.insertAdjacentHTML('beforeend', `<gmp-place-contextual context-token="${groundingMetadata.googleMapsWidgetContextToken}`"></gmp-place-contextual>`);
    }
  }
}

run();

REST

curl -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent' \
  -H 'Content-Type: application/json' \
  -H "x-goog-api-key: ${GEMINI_API_KEY}" \
  -d '{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "Plan a day in San Francisco for me. I want to see the Golden Gate Bridge, visit a museum, and have a nice dinner."
    }]
  }],
  "tools": [{"googleMaps": {"enableWidget":"true"}}],
  "toolConfig": {
    "retrievalConfig": {
    "latLng": {"latitude": 37.78193, "longitude": -122.40476}
  }
  }
}'

Saat dirender, widget akan terlihat seperti berikut:

Contoh widget peta saat dirender

Persyaratan penggunaan layanan

Bagian ini menjelaskan persyaratan penggunaan layanan untuk Perujukan dengan Google Maps.

Memberi tahu pengguna tentang penggunaan sumber Google Maps

Dengan setiap Hasil Berbasis Fakta Google Maps, Anda akan menerima sumber dalam groundingChunks yang mendukung setiap respons. Metadata berikut juga ditampilkan:

  • URI sumber
  • judul
  • ID

Saat menyajikan hasil dari Perujukan dengan Google Maps, Anda harus menentukan sumber Google Maps terkait, dan memberi tahu pengguna Anda tentang hal berikut:

  • Sumber Google Maps harus segera mengikuti konten yang dihasilkan yang didukung oleh sumber tersebut. Konten yang dihasilkan ini juga disebut sebagai Hasil yang Didukung Data Geografis Google Maps.
  • Sumber Google Maps harus dapat dilihat dalam satu interaksi pengguna.

Untuk setiap sumber di groundingChunks dan di grounding_chunks.maps.placeAnswerSources.reviewSnippets, pratinjau link harus dibuat dengan mengikuti persyaratan berikut:

  • Atribusikan setiap sumber ke Google Maps dengan mengikuti pedoman atribusi teks Google Maps.
  • Menampilkan judul sumber yang diberikan dalam respons.
  • Tautkan ke sumber menggunakan uri atau googleMapsUri dari respons.

Gambar ini menunjukkan persyaratan minimum untuk menampilkan sumber dan link Google Maps.

Perintah dengan respons yang menampilkan sumber

Anda dapat menciutkan tampilan sumber.

Perintah dengan respons dan sumber diciutkan

Opsional: Tingkatkan kualitas pratinjau link dengan konten tambahan, seperti:

  • Favicon Google Maps disisipkan sebelum atribusi teks Google Maps.
  • Foto dari URL sumber (og:image).

Untuk mengetahui informasi selengkapnya tentang beberapa penyedia data Google Maps kami dan persyaratan lisensi mereka, lihat pemberitahuan hukum Google Maps dan Google Earth.

Panduan atribusi teks Google Maps

Saat Anda mengatribusikan sumber ke Google Maps dalam teks, ikuti panduan berikut:

  • Jangan mengubah teks Google Maps dengan cara apa pun:
    • Jangan ubah kapitalisasi Google Maps.
    • Jangan pindahkan Google Maps ke beberapa baris.
    • Jangan melokalkan Google Maps ke bahasa lain.
    • Mencegah browser menerjemahkan Google Maps dengan menggunakan atribut HTML translate="no".
  • Gaya teks Google Maps seperti yang dijelaskan dalam tabel berikut:
Properti Gaya
Font family Roboto. Memuat font bersifat opsional.
Fallback font family Font isi sans serif yang sudah digunakan dalam produk Anda atau "Sans-Serif" untuk memanggil font sistem default
Font style Normal
Font weight 400
Font color Putih, hitam (#1F1F1F), atau abu-abu (#5E5E5E). Pertahankan kontras yang dapat diakses (4,5:1) dengan latar belakang.
Font size
  • Ukuran font minimum: 12 sp
  • Ukuran font maksimum: 16 sp
  • Untuk mempelajari sp, lihat Unit ukuran font di situs Desain Material.
Spacing Normal

CSS Contoh

CSS berikut merender Google Maps dengan gaya dan warna tipografi yang sesuai di latar belakang putih atau terang.

CSS

@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');

.GMP-attribution {

font-family: Roboto, Sans-Serif;
font-style: normal;
font-weight: 400;
font-size: 1rem;
letter-spacing: normal;
white-space: nowrap;
color: #5e5e5e;
}

Token konteks, ID tempat, dan ID ulasan

Data Google Maps mencakup token konteks, ID tempat, dan ID ulasan. Anda dapat meng-cache, menyimpan, dan mengekspor data respons berikut:

  • googleMapsWidgetContextToken
  • placeId
  • reviewId

Pembatasan terhadap penyimpanan dalam cache dalam Persyaratan Grounding dengan Google Maps tidak berlaku.

Wilayah dan aktivitas yang dilarang

Perujukan dengan Google Maps memiliki batasan tambahan untuk konten dan aktivitas tertentu guna mempertahankan platform yang aman dan andal. Selain batasan penggunaan dalam Persyaratan, Anda tidak akan menggunakan Perujukan dengan Google Maps untuk aktivitas berisiko tinggi, termasuk layanan respons darurat. Anda tidak akan mendistribusikan atau memasarkan aplikasi yang menawarkan Perujukan dengan Google Maps di Wilayah yang Dilarang. Wilayah Terlarang saat ini adalah:

  • China
  • Krimea
  • Kuba
  • Republik Rakyat Donetsk
  • Iran
  • Republik Rakyat Luhansk
  • Korea Utara
  • Suriah
  • Vietnam

Daftar ini dapat diperbarui dari waktu ke waktu.

Praktik terbaik

  • Berikan lokasi pengguna: Untuk respons yang paling relevan dan dipersonalisasi, selalu sertakan user_location (lintang dan bujur) dalam konfigurasi googleMapsGrounding Anda saat lokasi pengguna diketahui.
  • Merender widget kontekstual Google Maps: Widget kontekstual dirender menggunakan token konteks, googleMapsWidgetContextToken, yang ditampilkan dalam respons Gemini API dan dapat digunakan untuk merender konten visual dari Google Maps. Untuk mengetahui informasi selengkapnya tentang widget kontekstual, lihat Menemukan lokasi dengan widget Google Maps di Panduan Developer Google.
  • Memberi Tahu Pengguna Akhir: Beri tahu pengguna akhir Anda dengan jelas bahwa data Google Maps digunakan untuk menjawab kueri mereka, terutama saat alat diaktifkan.
  • Pantau Latensi: Untuk aplikasi percakapan, pastikan latensi P95 untuk respons yang memiliki rujukan tetap berada dalam batas yang dapat diterima untuk mempertahankan pengalaman pengguna yang lancar.
  • Nonaktifkan Jika Tidak Diperlukan: Penentuan lokasi dengan Google Maps dinonaktifkan secara default. Aktifkan hanya ("tools": [{"googleMaps": {}}]) saat kueri memiliki konteks geografis yang jelas, untuk mengoptimalkan performa dan biaya.

Batasan

  • Cakupan Geografis: Saat ini, Perujukan dengan Google Maps tersedia secara global
  • Dukungan Model: Hanya model Gemini tertentu yang mendukung Perujukan dengan Google Maps: Gemini 2.5 Flash-Lite, Gemini 2.5 Pro, Gemini 2.5 Flash, dan Gemini 2.0 Flash (tetapi bukan 2.0 Flash Lite).
  • Input/Output Multimodal: Perujukan dengan Google Maps saat ini tidak mendukung input atau output multimodal di luar teks dan widget peta kontekstual.
  • Status Default: Alat Perujukan dengan Google Maps dinonaktifkan secara default. Anda harus mengaktifkannya secara eksplisit dalam permintaan API.

Harga dan batas kapasitas

Harga perujukan dengan Google Maps didasarkan pada kueri. Tarif saat ini adalah $25 / 1.000 perintah berbasis. Permintaan hanya dihitung dalam kuota jika perintah berhasil menampilkan setidaknya satu hasil berbasis Google Maps (yaitu, hasil yang berisi setidaknya satu sumber Google Maps). Jika beberapa kueri dikirim ke Google Maps dari satu permintaan, kueri tersebut dihitung sebagai satu permintaan terhadap batas kecepatan.

Untuk mengetahui informasi harga mendetail, lihat halaman harga Gemini API.

Model yang didukung

Anda dapat menemukan kemampuannya di halaman ringkasan model.

Model Grounding dengan Google Maps
Gemini 2.5 Pro ✔️
Gemini 2.5 Flash ✔️
Gemini 2.5 Flash-Lite ✔️
Gemini 2.0 Flash ✔️

Langkah berikutnya