Grounding dengan Google Maps

Grounding dengan Google Maps menghubungkan model Gemini ke data geospasial dari Google Maps sehingga Anda dapat membangun fungsi yang mengetahui lokasi ke dalam aplikasi Anda.

Grounding dengan Google Maps memiliki manfaat berikut:

  • Meningkatkan akurasi faktual: Mengurangi halusinasi model dengan mendasarkan respons pada database Google yang berisi lebih dari 250 juta tempat dan bisnis di dunia nyata.
  • Akses informasi real-time: Jawab pertanyaan menggunakan data live, seperti jam buka bisnis saat ini dan status real-time stasiun pengisian daya kendaraan listrik.
  • Memberikan konteks visual: Bangun kepercayaan pengguna dengan mengintegrasikan widget peta interaktif, foto, dan Street View langsung bersama klaim berbasis lokasi model.

Model yang didukung

  • gemini-3.1-pro-preview
  • gemini-3.5-flash
  • gemini-3.1-flash-lite
  • gemini-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite

Bahasa yang didukung

Lihat bahasa yang didukung untuk model Gemini.

Menyematkan model dengan Google Maps

Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini.

Saat membuat instance GenerativeModel, berikan GoogleMaps sebagai tool yang dapat digunakan model untuk menghasilkan responsnya.

Swift


import FirebaseAILogic

// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Example: Coordinates for New York City
let latAndLong = CLLocationCoordinate2D(latitude: 40.7128, longitude: -74.0060)

// (Optional) Define a RetrievalConfig to configure the Grounding with Google Maps tool.
// You can optionally provide a location's coordinates and/or a language code
// for more relevant and personalized Google Maps results.
let retrievalConfig = RetrievalConfig(
    location: latAndLong,
    // Example: Language code for English (US).
    languageCode: "en_US"
)

// Wrap the RetrievalConfig inside a ToolConfig.
let toolConfig = ToolConfig(retrievalConfig: retrievalConfig)

// Create a `GenerativeModel` instance with a model that supports your use case.
let model = ai.generativeModel(
    modelName: "GEMINI_MODEL_NAME",
    // Provide Google Maps as a tool that the model can use to generate its response.
    tools: [Tool.googleMaps()],
    // Add the configuration for the Grounding with Google Maps tool
    // (if this optional config was defined above).
    toolConfig: toolConfig
)

let response = try await model.generateContent("restaurants near me?")
print(response.text ?? "No text in response.")

// Make sure to comply with the "Grounding with Google Maps" usage requirements,
// which includes how you meet service usage requirements

Kotlin


// (Optional) Define a RetrievalConfig to configure the Grounding with Google Maps tool.
// You can optionally provide a location's coordinates and/or a language code
// for more relevant and personalized Google Maps results.
val retrievalConfig = RetrievalConfig(
    // Example: Coordinates for New York City
    latLng = LatLng(latitude = 40.7128, longitude = -74.0060),
    // Example: Language code for English (US)
    languageCode = "en_US"
)

// Wrap the RetrievalConfig inside a ToolConfig.
val toolConfig = ToolConfig(
    retrievalConfig = retrievalConfig
)

// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
    modelName = "GEMINI_MODEL_NAME",
    // Add the configuration for the Grounding with Google Maps tool
    // (if this optional config was defined above).
    toolConfig = toolConfig,
    // Provide Google Maps as a tool that the model can use to generate its response.
    tools = listOf(Tool.googleMaps())
)

val response = model.generateContent("restaurants near me?")
print(response.text)

// Make sure to comply with the "Grounding with Google Maps" usage requirements,
// which includes how you meet service usage requirements

Java


// (Optional) Define a ToolConfig to configure the Grounding with Google Maps tool.
// You can optionally provide a location's coordinates and/or a language code
// for more relevant and personalized Google Maps results.
ToolConfig toolConfig = new ToolConfig(
    null,
    new RetrievalConfig(
        // Example: Coordinates for New York City.
        new LatLng(40.7128, -74.0060),
        // Example: Language code for English (US).
       "en_US"
    )
);

// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
                .generativeModel("GEMINI_MODEL_NAME",
                        null,
                        null,
                        // Provide Google Maps as a tool that the model can use to generate its response.
                        List.of(Tool.googleMaps()),
                        // Add the configuration for the Grounding with Google Maps tool
                        // (if this optional config was defined above).
                        toolConfig);

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs.
GenerativeModelFutures model = GenerativeModelFutures.from(ai);

ListenableFuture response = model.generateContent("restaurants near me?");
  Futures.addCallback(response, new FutureCallback() {
      @Override
      public void onSuccess(GenerateContentResponse result) {
          String resultText = result.getText();
          System.out.println(resultText);
      }

      @Override
      public void onFailure(Throwable t) {
          t.printStackTrace();
      }
  }, executor);

// Make sure to comply with the "Grounding with Google Maps" usage requirements,
// which includes how you meet service usage requirements

Web


import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";

// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Gemini Developer API backend service.
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// (Optional) Define a toolConfig to configure the Grounding with Google Maps tool.
// You can optionally provide a location's coordinates and/or a language code
// for more relevant and personalized Google Maps results.
const toolConfig = {
  retrievalConfig: {
    // Example: Coordinates for New York City
    latLng: {
      latitude: 40.7128,
      longitude: -74.0060
    },
    // Example: Language code for English (US)
    languageCode: 'en-US'
  }
};

// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(
  ai,
  {
    model: "GEMINI_MODEL_NAME",
    // Provide Google Maps as a tool that the model can use to generate its response.
    // (Optional) Set `enableWidget` to control whether the response contains a `googleMapsWidgetContextToken`.
    tools: [ { googleMaps: { enableWidget: true } } ],
    // Add the configuration for the Grounding with Google Maps tool
    // (if this optional config was defined above).
    toolConfig
  }
);

const result = await model.generateContent("restaurants near me?");

console.log(result.response.text());

// Make sure to comply with the "Grounding with Google Maps" usage requirements,
// which includes how you meet service usage requirements

Dart


import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_ai/firebase_ai.dart';
import 'firebase_options.dart';

// Initialize FirebaseApp.
await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

// (Optional) Define a ToolConfig to configure the Grounding with Google Maps tool.
// You can optionally provide a location's coordinates and/or a language code
// for more relevant and personalized Google Maps results.
final toolConfig = ToolConfig(
  retrievalConfig: RetrievalConfig(
    // Example: Coordinates for New York City.
    latLng: LatLng(latitude: 40.712728, longitude: -74.006015),
    // Example: Language code for English (US).
    languageCode: 'en',
  ),
);

// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  // Provide Google Maps as a tool that the model can use to generate its response.
  tools: [
    Tool.googleMaps(),
  ],
  // Add the configuration for the Grounding with Google Maps tool
  // (if this optional config was defined above).
  toolConfig: toolConfig,
);

final response = await model.generateContent([Content.text("restaurants near me?")]);
print(response.text);

// Make sure to comply with the "Grounding with Google Maps" usage requirements,
// which includes how you meet service usage requirements

Unity


using Firebase;
using Firebase.AI;

// Initialize the Gemini Developer API backend service.
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());

// Example: Coordinates for New York City
var latLng = new LatLng(40.7128, -74.0060);

// (Optional) Define a RetrievalConfig to configure the Grounding with Google Maps tool.
// You can optionally provide a location's coordinates and/or a language code
// for more relevant and personalized Google Maps results.
var retrievalConfig = new RetrievalConfig(latLng, languageCode: "en");

// Wrap the RetrievalConfig inside a ToolConfig.
var toolConfig = new ToolConfig(retrievalConfig: retrievalConfig);

// Create a `GenerativeModel` instance with a model that supports your use case
var model = ai.GetGenerativeModel(
  modelName: "GEMINI_MODEL_NAME",
  // Provide Google Maps as a tool that the model can use to generate its response.
  tools: new[] { new Tool(new GoogleMaps()) },
  // Add the configuration for the Grounding with Google Maps tool
  // (if this optional config was defined above).
  toolConfig: toolConfig
);

var response = await model.GenerateContentAsync("restaurants near me?");
UnityEngine.Debug.Log(response.Text ?? "No text in response.");

// Make sure to comply with the "Grounding with Google Maps" usage requirements,
// which includes how you meet service usage requirements

Pelajari cara memilih model yang sesuai untuk kasus penggunaan dan aplikasi Anda.

Praktik terbaik dan tips untuk meningkatkan hasil

Bagian ini menjelaskan beberapa praktik terbaik umum untuk menggunakan Perujukan dengan Google Maps, serta cara memanfaatkan properti tempat untuk meningkatkan hasil.

Praktik terbaik umum

  • Hanya berikan alat saat diperlukan: Untuk mengoptimalkan performa dan biaya, berikan akses model ke alat Perujukan dengan Google Maps hanya jika kasus penggunaan memiliki konteks geografis yang jelas.

  • Menyediakan lokasi pengguna: Untuk respons yang paling relevan dan dipersonalisasi (dan saat lokasi pengguna diketahui), sertakan lokasi pengguna (menggunakan lintang dan bujur melalui latLng) dalam konfigurasi alat Perujukan dengan Google Maps.

  • Beri tahu pengguna akhir: Beri tahu pengguna akhir Anda dengan jelas bahwa data Google Maps sedang digunakan untuk menjawab kueri mereka. Memberikan sumber kepada pengguna akhir dari Google Maps adalah persyaratan penggunaan layanan untuk alat Perujukan dengan Google Maps.

  • (Khusus Web SDK) 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 Membuat alasan dengan widget Google Maps di dokumentasi Google Maps.

Menggunakan properti tempat dalam perintah

Bagian ini mencantumkan properti tempat yang digunakan untuk mendeskripsikan lokasi dan digunakan oleh Perujukan dengan Google Maps untuk membuat respons. Properti ini digunakan untuk menentukan jenis pertanyaan yang dapat dijawab oleh Perujukan dengan Google Maps.

Contoh properti tempat

Daftar ini memberikan contoh properti yang diurutkan berdasarkan abjad tentang tempat yang dapat digunakan oleh model Anda untuk menghasilkan respons.

  • Alamat
  • Ambil di tepi jalan
  • Kartu debit
  • Jarak
  • Tempat parkir gratis
  • Musik live
  • Menu untuk anak-anak
  • Jam buka
  • Opsi pembayaran (seperti tunai atau kartu kredit)
  • Jawaban terkait tempat
  • Boleh bawa hewan peliharaan
  • Menyajikan bir
  • Menyajikan makanan vegetarian
  • Dapat diakses pengguna kursi roda
  • Wi-Fi

Jawaban tempat adalah respons dari Perujukan dengan Google Maps berdasarkan informasi yang berasal dari ulasan pengguna.

Contoh perintah yang menggunakan properti tempat

Contoh berikut menggunakan properti tempat dalam perintah tentang berbagai jenis tempat. Perujukan dengan Google Maps menggunakan properti untuk memahami maksud Anda, lalu memberikan jawaban yang relevan berdasarkan data yang terkait dengan tempat di Google Maps.

  • Merencanakan makan malam keluarga: Tentukan apakah restoran cocok untuk keluarga dan apakah restoran menawarkan layanan yang nyaman.

    • Contoh perintah: Apakah "The Italian Place" cocok untuk anak-anak, dan apakah mereka menawarkan layanan pesan bawa pulang? Berapa rating mereka?
  • Memeriksa aksesibilitas untuk teman: Tentukan apakah lokasi memenuhi kebutuhan aksesibilitas tertentu.

    • Contoh perintah: Saya perlu restoran yang memiliki pintu masuk khusus pengguna kursi roda.
  • Menemukan lokasi untuk camilan larut malam: Temukan tempat yang buka dan menyajikan makanan tertentu pada waktu tertentu.

    • Contoh perintah: Apakah "Burger Joint" buka sekarang? Apakah mereka menyajikan makan malam? Jam berapa mereka buka pada hari Jumat?
  • Bertemu klien untuk minum kopi: Menilai kesesuaian kafe untuk pertemuan bisnis berdasarkan fasilitas, penawaran, dan opsi pembayaran.

    • Contoh perintah: Apakah "Cafe Central" memiliki Wi-Fi? Apakah mereka menyajikan kopi? Berapa tingkat harga mereka, dan apakah mereka menerima kartu kredit?

Perhatikan bahwa informasi dalam Google MapsHasil yang Sesuai mungkin berbeda dengan kondisi jalan yang sebenarnya.

Cara kerja Perujukan dengan Google Maps

Saat Anda memberi model alat GoogleMaps, model akan menangani seluruh alur kerja penelusuran, pemrosesan, dan kutipan informasi secara otomatis.

Berikut alur kerja model:

  1. Menerima perintah: Aplikasi Anda mengirimkan perintah ke model Gemini dengan mengaktifkan alat GoogleMaps.

  2. Menganalisis perintah: Model menganalisis perintah dan menentukan apakah Google Maps dapat meningkatkan responsnya, misalnya, jika perintah berisi konteks geografis (seperti "kafe di dekat saya", "museum di Jakarta").

  3. Memanggil alat: Model, yang mengenali maksud geografis, memanggil alat Perujukan dengan Google Maps.

  4. Mengirim kueri ke Google Maps: Layanan Perujukan dengan Google Maps mengirim kueri Google Maps untuk mendapatkan informasi yang relevan (misalnya, tempat, ulasan, foto, alamat, jam buka).

    Anda dapat menyertakan lintang dan bujur dalam konfigurasi alat (atau bahkan langsung dalam perintah) untuk mendapatkan hasil yang lebih relevan dan dipersonalisasi.Google Maps Alat ini adalah alat penelusuran tekstual dan berperilaku mirip dengan penelusuran di Google Maps, karena kueri lokal ("di dekat saya") akan menggunakan koordinat, sementara kueri spesifik atau non-lokal cenderung tidak dipengaruhi oleh lokasi eksplisit.

  5. Memproses hasil Google Maps: Model memproses hasil Google Maps dan merumuskan respons terhadap perintah asli.

  6. Menampilkan Google Maps Hasil yang Di-grounding: Model menampilkan respons akhir yang mudah dipahami pengguna dan didasarkan pada hasil Google Maps. Respons ini menyertakan:

    • Jawaban teks model.
    • Objek groundingMetadata dengan hasil dan sumber Google Maps.
    • (Khusus Web SDK) Secara opsional, googleMapsWidgetContextToken yang memungkinkan Anda merender widget Google Maps kontekstual di aplikasi untuk interaksi visual. Untuk mengetahui informasi selengkapnya tentang widget kontekstual, lihat Penyesuaian dengan widget Google Maps dalam dokumentasi Google Maps.

Perhatikan bahwa menyediakan Google Maps sebagai alat untuk model tidak mengharuskan model untuk selalu menggunakan alat Google Maps guna membuat responsnya. Dalam kasus ini, respons tidak akan berisi objek groundingMetadata sehingga bukan Hasil yang Berbasis Google Maps.

Memahami hasil yang memiliki rujukan

Jika model mendasarkan responsnya pada hasil Google Maps, maka respons akan menyertakan objek groundingMetadata yang berisi data terstruktur yang penting untuk memverifikasi klaim dan membangun pengalaman sumber yang kaya di aplikasi Anda.

Objek groundingMetadata dalam Hasil yang Sesuai berisi informasi berikut:Google Maps

  • groundingChunks: Array objek yang berisi sumber maps (uri, placeId, dan title).
  • groundingSupports: Array potongan untuk menghubungkan respons model text ke sumber di groundingChunks. Setiap bagian menautkan teks segment (ditentukan oleh startIndex dan endIndex) ke satu atau beberapa groundingChunkIndices. Kolom ini membantu Anda membuat link sumber inline. Pelajari cara memenuhi persyaratan penggunaan layanan nanti di halaman ini.
  • (Khusus Web SDK) googleMapsWidgetContextToken: Token teks yang dapat digunakan untuk merender widget Places kontekstual. Kolom ini hanya ditampilkan saat menggunakan Web SDK dan jika Anda telah menetapkan parameter enableWidget ke true.

Berikut adalah contoh respons yang menyertakan objek groundingMetadata:

{
  "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"
            }
          }
        ],
        "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]
          }
        ],
        "googleMapsWidgetContextToken": "widgetcontent/..."
      }
    }
  ]
}

Persyaratan penggunaan layanan

Bagian ini menjelaskan persyaratan penggunaan layanan untuk Perujukan dengan Google Maps untuk penyedia Gemini API yang Anda pilih: Gemini Developer API atau Vertex AI Gemini API (lihat bagian Persyaratan Layanan dalam Persyaratan Khusus Layanan).

Memberi tahu pengguna tentang sumber Google Maps

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

  • URI sumber
  • title
  • ID

Di aplikasi Anda, saat menampilkan hasil dari Grounding 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 Google Maps Hasil yang Berbasis.

  • Sumber Google Maps harus dapat dilihat dalam satu interaksi pengguna.

Berikut cara mendapatkan nilai untuk menampilkan sumber dari Hasil yang Berbasis Google Maps:

Swift

// ...

// Get the model's response
let text = response.text

// Get the grounding metadata
if let candidate = response.candidates.first,
   let groundingMetadata = candidate.groundingMetadata {

  // Get sources
  let groundingChunks = groundingMetadata.groundingChunks
  for chunk in groundingChunks {
    if let maps = chunk.maps {
      let title = maps.title  // for example, "Heaven on 7th Marketplace"
      let url = maps.url  // for example, "https://maps.google.com/?cid=13100894621228039586"
      let placeId = maps.placeId  // for example, "places/ChIJ0-zA1vBZwokRon0fGj-6z7U"
      // TODO(developer): show source in the UI
    }
  }
}

Kotlin

// ...

// Get the model's response
val text = response.text

// Get the grounding metadata
val groundingMetadata = response.candidates.firstOrNull()?.groundingMetadata

// Get sources
val groundingChunks = groundingMetadata?.groundingChunks
groundingChunks?.let { chunks ->
  for (chunk in chunks) {
    val title = chunk.maps?.title  // for example, "Heaven on 7th Marketplace"
    val uri = chunk.maps?.uri  // for example, "https://maps.google.com/?cid=13100894621228039586"
    val placeId = chunk.maps?.placeId  // for example, "places/ChIJ0-zA1vBZwokRon0fGj-6z7U"
    // TODO(developer): show source in the UI
  }
}

Java

// ...

Futures.addCallback(response, new FutureCallback() {
  @Override
  public void onSuccess(GenerateContentResponse result) {
    // Get the model's response
    String text = result.getText();

    // Get the grounding metadata
    GroundingMetadata groundingMetadata =
        result.getCandidates()[0].getGroundingMetadata();

    if (groundingMetadata != null) {
      // Get sources
      List chunks = groundingMetadata.getGroundingChunks();
      if (chunks != null) {
        for(GroundingChunk chunk : chunks) {
          GoogleMapsGroundingChunk maps = chunk.getMaps();
          if (maps != null) {
            String title = maps.getTitle();  // for example, "Heaven on 7th Marketplace"
            String uri = maps.getUri();  // for example, "https://maps.google.com/?cid=13100894621228039586"
            String placeId = maps.getPlaceId();  // for example, "places/ChIJ0-zA1vBZwokRon0fGj-6z7U"
            // TODO(developer): show sources in the UI
          }
        }
      }
    }
  }

  @Override
  public void onFailure(Throwable t) {
    t.printStackTrace();
  }
}, executor);

Web

// ...

// Get the model's text response
const text = result.response.text();

// Get the grounding metadata
const groundingMetadata = result.response.candidates?.[0]?.groundingMetadata;

// Get sources
const groundingChunks = groundingMetadata?.groundingChunks;
if (groundingChunks) {
  for (const chunk of groundingChunks) {
    const title = chunk.maps?.title;  // for example, "Heaven on 7th Marketplace"
    const uri = chunk.maps?.uri;  // for example, "https://maps.google.com/?cid=13100894621228039586"
    const placeId = chunk.maps?.placeId;  // for example, "places/ChIJ0-zA1vBZwokRon0fGj-6z7U"
    // TODO(developer): show sources in the UI
  }
}

Dart

// ...

// Get the model's response
final text = response.text;

// Get the grounding metadata
final groundingMetadata = response.candidates.first.groundingMetadata;

// Get sources
final groundingChunks = groundingMetadata?.groundingChunks;
if (groundingChunks != null) {
  for (var chunk in groundingChunks) {
    final title = chunk.maps?.title;  // for example, "Heaven on 7th Marketplace"
    final uri = chunk.maps?.uri;  // for example, "https://maps.google.com/?cid=13100894621228039586"
    final placeId = chunk.maps?.placeId;  // for example, "places/ChIJ0-zA1vBZwokRon0fGj-6z7U"
    // TODO(developer): show sources in the UI
  }
}

Unity

// ...

// Get the model's response
var text = response.Text;

// Get the grounding metadata
var groundingMetadata = response.Candidates.First().GroundingMetadata;

// Get sources
if (groundingMetadata != null) {
  foreach(GroundingChunk chunk in groundingMetadata?.GroundingChunks) {
    if (chunk.Maps != null) {
      var title = chunk.Maps?.Title;  // for example, "Heaven on 7th Marketplace"
      var uri = chunk.Maps?.Uri;  // for example, "https://maps.google.com/?cid=13100894621228039586"
      var placeId = chunk.Maps?.PlaceId;  // for example, "places/ChIJ0-zA1vBZwokRon0fGj-6z7U"
      // TODO(developer): show sources in the UI
    }
  }
}

Untuk setiap sumber di groundingChunks, pratinjau link harus dibuat dengan mengikuti persyaratan berikut:

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

Perintah dengan respons yang menampilkan sumber

Anda dapat menciutkan tampilan sumber.

Perintah dengan respons dan sumber diciutkan

Jika ingin, Anda dapat meningkatkan kualitas pratinjau link dengan konten tambahan, seperti:

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

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

Google Maps panduan atribusi teks

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

  • Jangan ubah teks Google Maps dengan cara apa pun:

    • Jangan ubah kapitalisasi teks Google Maps.
    • Jangan pindahkan teks Google Maps ke beberapa baris.
    • Jangan melokalkan teks Google Maps ke bahasa lain.
    • Mencegah browser menerjemahkan teks Google Maps dengan menggunakan atribut HTML translate="no".
  • Gaya teks Google Maps seperti yang dijelaskan dalam tabel berikut:

    Properti Gaya
    Jenis font Roboto. Memuat font bersifat opsional.
    Jenis font pengganti Font isi sans serif yang sudah digunakan dalam produk Anda atau "Sans-Serif" untuk memanggil font sistem default
    Gaya font Normal
    Ketebalan font 400
    Warna font Putih, hitam (#1F1F1F), atau abu-abu (#5E5E5E). Pertahankan kontras yang dapat diakses (4,5:1) dengan latar belakang.
    Ukuran font Ukuran font minimum: 12 sp
    Ukuran font maksimum: 16 sp
    Untuk mempelajari sp, lihat satuan ukuran Font di situs Desain Material.
    Spasi Normal

Contoh CSS

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

@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;
}

Penyimpanan dalam cache token konteks dan ID tempat

Google Maps Hasil Berbasis Perujukan dapat mencakup token konteks dan ID tempat. Anda dapat menyimpan dalam cache, menyimpan, dan mengekspor data respons berikut:

  • (Khusus Web SDK) googleMapsWidgetContextToken
  • placeId

Batasan terhadap penyimpanan cache dalam Persyaratan Grounding with Google Maps tidak berlaku untuk data ini.

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 untuk penyedia Gemini API yang Anda pilih: Gemini Developer API atau Vertex AI Gemini API (lihat bagian Persyaratan Layanan dalam Persyaratan Khusus Layanan).

  • Anda tidak akan menggunakan Perujukan dengan Google Maps untuk aktivitas berisiko tinggi, termasuk layanan tanggap darurat.

  • Anda tidak akan mendistribusikan atau memasarkan aplikasi yang menawarkan Perujukan dengan Google Maps di Wilayah Terlarang. Untuk mengetahui informasi selengkapnya, lihat artikel Wilayah Terlarang Google Maps Platform. Daftar Wilayah Terlarang dapat diperbarui dari waktu ke waktu.

Hasil yang memiliki rujukan dan pemantauan AI di Firebase console

Jika Anda telah mengaktifkan pemantauan AI di Firebase console, respons akan disimpan di Cloud Logging. Secara default, data ini memiliki periode retensi 30 hari.

Anda bertanggung jawab untuk memastikan bahwa periode retensi data ini, atau periode kustom yang Anda tetapkan, sepenuhnya selaras dengan kasus penggunaan spesifik Anda dan persyaratan kepatuhan tambahan untuk penyedia Gemini API yang Anda pilih: Gemini Developer API atau Vertex AI Gemini API (lihat bagian Persyaratan Layanan dalam Persyaratan Khusus Layanan). Anda mungkin perlu menyesuaikan periode retensi data di Cloud Logging untuk memenuhi persyaratan ini.

Harga dan batas kapasitas

Perujukan dengan harga Google Maps didasarkan pada kueri. Permintaan hanya dihitung dalam kuota Google Maps jika perintah berhasil menampilkan setidaknya satu Hasil yang Berbasis Google Maps (artinya respons berisi setidaknya satu sumber Google Maps). Jika beberapa kueri dikirim ke Google Maps dari satu permintaan, kueri tersebut dihitung sebagai satu permintaan terhadap batas frekuensi.

Pastikan untuk meninjau detail tentang harga, ketersediaan model, dan batas untuk Perujukan dengan Google Maps di dokumentasi penyedia Gemini API yang Anda pilih: Gemini Developer API | Vertex AI Gemini API.