Grounding dengan Google Maps di Vertex AI

Perujukan dengan Google Maps di Vertex AI menggabungkan kecanggihan Gemini dengan Google Maps, yang memiliki akses ke informasi tentang lebih dari 250 juta tempat. Integrasi penting ini yang tersedia melalui Vertex AI dirancang untuk membantu Anda membuat generasi baru aplikasi generatif.

Halaman ini menjelaskan cara menggunakan Google Maps untuk mendasarkan respons LLM Anda.

Ringkasan

Grounding dengan Google Maps di Vertex AI adalah layanan yang memungkinkan Anda menggunakan data Google Maps dengan LLM untuk memberikan respons yang lebih akurat dan sesuai konteks terhadap perintah Anda. Grounding dengan Google Maps terintegrasi dengan Vertex AI untuk mendukung penggunaan data geografis dengan model Gemini Anda.

Grounding dengan Google Maps membantu Anda menemukan tempat baru, merencanakan acara, dan mendapatkan rekomendasi untuk berbagai lokasi. Anda dapat melakukan hal berikut:

  • Tanyakan asisten percakapan tentang area dan tempat terdekat. Asisten Anda memiliki akses ke informasi waktu perjalanan dan dapat memberi tahu Anda jarak tempat dari lokasi Anda. Misalnya, Apakah ada taman di sekitar sini?
  • Lihat deskripsi tempat yang dipersonalisasi dan cocok dengan kriteria Anda. Misalnya, Dapatkah Anda memberi tahu saya lebih lanjut tentang taman dan restoran ramah keluarga yang dapat dijangkau dengan berjalan kaki?

Dengan melakukan grounding menggunakan Google Maps, Anda dapat membuat aplikasi AI generatif dari chat yang didukung LLM menggunakan konteks geospasial untuk membuat ringkasan berbasis lokasi yang dipersonalisasi guna membantu Anda membuat keputusan yang lebih baik.

Untuk mendapatkan bantuan, kirim pesan ke [email protected].

Model yang didukung

Bagian ini mencantumkan model yang mendukung grounding dengan Google Maps.

Untuk mengetahui informasi selengkapnya tentang model Gemini, lihat Model Gemini.

Akses ke Grounding dengan Google Maps

Untuk menggunakan Grounding dengan Google Maps di Vertex AI, ikuti langkah-langkah berikut:

  1. Untuk meminta akses agar dapat menggunakan Grounding dengan Google Maps di Vertex AI untuk project tertentu, isi dan kirimkan formulir Ikut serta atau Tidak ikut menggunakan Google Maps.

    Formulir ini memerlukan alamat email, nama perusahaan, project ID, dan persetujuan Anda atas persyaratan.

  2. Jika Anda tidak memiliki project, lihat Membuat dan mengelola project.

  3. Di konsol Google Cloud, buka halaman Maps Grounding API.

    Buka Maps Grounding API

    Untuk mengaktifkan Maps Grounding API, klik Enable. Pilih project, dan halaman Maps Grounding API akan ditampilkan.

  4. Di konsol Google Cloud, buka halaman Maps JavaScript API.

    Buka Maps JavaScript API

    Untuk mengaktifkan JavaScript, klik Aktifkan. Pilih project, lalu halaman APIs & Services akan ditampilkan.

  5. Untuk memverifikasi bahwa Google Maps diaktifkan, buka Vertex AI Studio.

    Buka Vertex AI Studio

    1. Pilih project yang API-nya telah Anda aktifkan.

    2. Untuk mengaktifkan fitur Google Maps di bagian Alat pada panel model, klik tombol Grounding: Google.

    3. Pilih Pratinjau Google Maps.

    4. Masukkan Kunci API.

      1. Jika Anda tidak memiliki Kunci API, lihat Membuat kunci API.
      2. Batasi penggunaan API dengan Membatasi kunci API.
    5. Pilih Location untuk respons berbasis lokasi.

    6. Klik Terapkan.

Properti tempat

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

Contoh properti tempat

Daftar ini memberikan sampel properti tentang tempat yang diurutkan menurut abjad yang mungkin digunakan oleh model Anda untuk menghasilkan respons.

  • Alamat
  • Khusus tunai
  • Kartu kredit
  • Ambil di tepi jalan
  • Kartu debit
  • Jarak
  • Tempat parkir gratis
  • Musik live
  • Menu untuk anak
  • Jam buka
  • Boleh membawa hewan
  • Menyajikan bir
  • Menyajikan makanan vegetarian
  • Dapat diakses pengguna kursi roda
  • Wi-Fi

Contoh penggunaan properti tempat

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

  • Merencanakan makan malam keluarga: Anda mungkin bertanya, Apakah "The Italian Place" cocok untuk anak-anak, dan apakah mereka menawarkan pesan antar? Berapa ratingnya?

    Jawaban atas pertanyaan-pertanyaan ini membantu Anda menentukan apakah restoran cocok untuk keluarga dan apakah restoran menawarkan layanan yang praktis.

  • Memeriksa aksesibilitas untuk teman: Anda mungkin bertanya, Saya memerlukan restoran yang memiliki pintu masuk khusus pengguna kursi roda.

    Respons terhadap perintah ini dapat membantu Anda menentukan apakah lokasi tersebut memenuhi kebutuhan aksesibilitas tertentu.

  • Menemukan lokasi untuk camilan larut malam: Anda mungkin bertanya, Apakah "Burger Joint" terbuka sekarang? Apakah tempat ini menyajikan makan malam? Berapa jam buka mereka untuk hari Jumat?

    Jawaban atas pertanyaan ini membantu Anda menemukan tempat yang buka dan menyajikan makanan tertentu selama waktu tertentu.

  • Bertemu klien untuk minum kopi: Anda mungkin bertanya, Apakah "Cafe Central" memiliki Wi-Fi? Apakah mereka menyajikan kopi? Berapa tingkat harganya, dan apakah mereka menerima kartu kredit?

    Jawaban atas pertanyaan ini membantu Anda menilai kesesuaian kafe untuk rapat bisnis berdasarkan fasilitas, penawaran, dan opsi pembayaran.

Menggunakan Grounding dengan Google Maps untuk melakukan grounding model

Anda dapat menggunakan Google Maps API untuk mendasarkan respons model.

Contoh kode ini menunjukkan cara menggunakan Maps API untuk me-ground respons model Anda menggunakan Grounding dengan Google Maps.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Region untuk memproses permintaan.
  • PROJECT_ID: Project ID Anda.
  • MODEL_ID: ID model model multimodal.
  • TEXT: Petunjuk teks yang akan disertakan dalam perintah.
  • API_KEY: Kunci API Anda.
  • LATITUDE: Lintang lokasi.
  • LONGITUDE: Bujur lokasi.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

Meminta isi JSON:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "googleMaps": {
      "authConfig": {
        "apiKeyConfig": {
          "apiKeyString": "API_KEY"
        }
      }
    }
  }],
  "toolConfig": {
    "retrievalConfig": {
      "latLng": {
        "latitude": LATITUDE,
        "longitude": LONGITUDE
      }
    }
  },
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "Here are a few options for late-night burgers in San Jose, based on the search results. Keep in mind that \"late night\" can be subjective, so I've included places with varying closing times. I recommend double-checking their hours before you go, as these can change.\n\n*   **Campus Burgers:** Open until 12:00 AM every night except Sunday (closed).\n*   **Lazy Dog Restaurant & Bar:** Open until 12:00 AM every night.\n*   **Dough Burger:** Open until 1:30 AM Monday through Thursday and Sunday, and until 3:00 AM on Friday and Saturday.\n*   **El Apartamento Colombian Burgers:** Open until 1:00 AM on Friday and Saturday, and until 10:30 PM Monday through Wednesday and until 11:00 PM Thursday and Sunday.\n*   **Paper Plane:** Open until 2:00 AM Thursday through Saturday, and until 12:00 AM on Tuesday and Wednesday and Sunday. Closed on Monday.\n\nNote that opening hours are subject to change.\n"
          }
        ]
      },
      "finishReason": "STOP",
      "groundingMetadata": {
        "retrievalQueries": [
          "late night burger san jose"
        ],
        "groundingChunks": [
          {
            "maps": {
              "uri": "https://maps.google.com/?cid=15700677770979677665",
              "title": "El Apartamento Colombian Burgers",
              "text": "**About:**\n\n* **Type:** Hamburger Restaurant\n* **Address:** 76 E Santa Clara St, San Jose, CA 95113, USA\n* **Open Now:** No\n* **Rating:** 4.9 (25 reviews)\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** Yes\n* **Outdoor Seating:** No\n* **Live Music:** No\n* **Curbside Pickup:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: 5:00 – 10:30 PM\n* Tuesday: 5:00 – 10:30 PM\n* Wednesday: 5:00 – 10:30 PM\n* Thursday: 4:00 – 11:00 PM\n* Friday: 4:00 PM – 1:00 AM\n* Saturday: 4:00 PM – 1:00 AM\n* Sunday: 4:00 – 11:00 PM\n\n**Parking options:**\n\n* **Free street parking:** Yes\n\n**Accessibility:**\n\n* **Wheelchair accessible parking:** Yes\n* **Wheelchair accessible entrance:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Cash Only:** No\n\n**Distance & Travel Time:**\n\n* 4733.0 kilometers\n* 43.4 hours"
            }
          },
          {
            "maps": {
              "uri": "https://maps.google.com/?cid=8798666889278262772",
              "title": "Campus Burgers",
              "text": "**About:**\n\n* **Type:** Hamburger Restaurant\n* **Address:** 108 Paseo de San Antonio, San Jose, CA 95113, USA\n* **Open Now:** Yes\n* **Rating:** 4.4 (207 reviews)\n* **Price Level:** Inexpensive\n* **Phone:** (408) 352-5507\n* **Additional Summary:** Simple hamburger restaurant with a limited menu of comfort fare such as burgers and fries.\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** Yes\n* **Good for Groups:** Yes\n* **Outdoor Seating:** Yes\n* **Live Music:** No\n* **Menu for Children:** No\n* **Serves Cocktails:** No\n* **Serves Dessert:** Yes\n* **Serves Coffee:** No\n* **Good for Watching Sports:** No\n* **Serves Lunch:** Yes\n* **Serves Dinner:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: 11:00 AM – 12:00 AM\n* Tuesday: 11:00 AM – 12:00 AM\n* Wednesday: 11:00 AM – 12:00 AM\n* Thursday: 11:00 AM – 12:00 AM\n* Friday: 11:00 AM – 12:00 AM\n* Saturday: 11:00 AM – 12:00 AM\n* Sunday: Closed\n\n**Parking options:**\n\n* **Paid parking lot:** Yes\n* **Free street parking:** Yes\n* **Paid street parking:** Yes\n* **Valet parking:** No\n* **Paid garage parking:** Yes\n\n**Accessibility:**\n\n* **Wheelchair accessible parking:** Yes\n* **Wheelchair accessible entrance:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Debit Card:** Yes\n* **Cash Only:** No\n* **NFC:** Yes\n\n**Distance & Travel Time:**\n\n* 4732.5 kilometers\n* 43.4 hours"
            }
          },
          {
            "maps": {
              "uri": "https://maps.google.com/?cid=3915125089239094417",
              "title": "Paper Plane",
              "text": "**About:**\n\n* **Type:** Bar\n* **Address:** 72 S 1st St, San Jose, CA 95113, USA\n* **Open Now:** No\n* **Rating:** 4.4 (2452 reviews)\n* **Price Level:** Moderate\n* **Phone:** (408) 713-2625\n* **Summary:** Relaxed spot with a long bar in an exposed brick space for creative or classic cocktails & snacks.\n* **Additional Summary:** Casual, popular bar serving signature cocktails and New American fare, including burgers and tacos.\n* **Takes Reservations:** Yes\n* **Offers Takeout:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** No\n* **Allows Dogs:** No\n* **Has Restroom:** Yes\n* **Good for Groups:** Yes\n* **Outdoor Seating:** No\n* **Live Music:** No\n* **Serves Cocktails:** Yes\n* **Good for Watching Sports:** No\n* **Serves Beer:** Yes\n* **Serves Wine:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: Closed\n* Tuesday: 5:00 PM – 12:00 AM\n* Wednesday: 5:00 PM – 12:00 AM\n* Thursday: 5:00 PM – 2:00 AM\n* Friday: 5:00 PM – 2:00 AM\n* Saturday: 5:00 PM – 2:00 AM\n* Sunday: 5:00 PM – 12:00 AM\n\n**Parking options:**\n\n* **Paid parking lot:** Yes\n* **Free street parking:** Yes\n* **Paid street parking:** Yes\n* **Valet parking:** No\n* **Paid garage parking:** Yes\n\n**Accessibility:**\n\n* **Wheelchair accessible entrance:** Yes\n* **Wheelchair accessible restroom:** Yes\n* **Wheelchair accessible seating:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Cash Only:** No\n* **NFC:** Yes\n\n**Distance & Travel Time:**\n\n* 4733.0 kilometers\n* 43.4 hours"
            }
          },
          {
            "maps": {
              "uri": "https://maps.google.com/?cid=12662287798905863411",
              "title": "Lazy Dog Restaurant & Bar",
              "text": "**About:**\n\n* **Type:** American Restaurant\n* **Address:** 5305 Almaden Expy, San Jose, CA 95118, USA\n* **Open Now:** Yes\n* **Rating:** 4.2 (940 reviews)\n* **Price Level:** Moderate\n* **Phone:** (408) 786-9594\n* **Summary:** Relaxed, lodge-chic chain serving global comfort fare, including stir-fries, pot roast & pastas.\n* **Additional Summary:** American food including comfort fare and small plates served in a casual setting with a bar.\n* **Takes Reservations:** Yes\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** Yes\n* **Allows Dogs:** Yes\n* **Has Restroom:** Yes\n* **Good for Groups:** Yes\n* **Outdoor Seating:** Yes\n* **Live Music:** No\n* **Menu for Children:** Yes\n* **Serves Cocktails:** Yes\n* **Serves Dessert:** Yes\n* **Serves Coffee:** Yes\n* **Has Wifi:** Yes\n* **Good for Watching Sports:** Yes\n* **Curbside Pickup:** Yes\n* **Serves Lunch:** Yes\n* **Serves Dinner:** Yes\n* **Serves Beer:** Yes\n* **Serves Wine:** Yes\n* **Serves Brunch:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: 11:00 AM – 12:00 AM\n* Tuesday: 11:00 AM – 12:00 AM\n* Wednesday: 11:00 AM – 12:00 AM\n* Thursday: 11:00 AM – 12:00 AM\n* Friday: 11:00 AM – 12:00 AM\n* Saturday: 10:00 AM – 12:00 AM\n* Sunday: 10:00 AM – 12:00 AM\n\n**Parking options:**\n\n* **Free parking lot:** Yes\n* **Free street parking:** Yes\n* **Valet parking:** No\n\n**Accessibility:**\n\n* **Wheelchair accessible parking:** Yes\n* **Wheelchair accessible entrance:** Yes\n* **Wheelchair accessible restroom:** Yes\n* **Wheelchair accessible seating:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Debit Card:** Yes\n* **Cash Only:** No\n* **NFC:** Yes\n\n**Distance & Travel Time:**\n\n* 4745.7 kilometers\n* 43.5 hours"
            }
          },
          {
            "maps": {
              "uri": "https://maps.google.com/?cid=12520445715080978741",
              "title": "Dough Burger",
              "text": "**About:**\n\n* **Type:** Restaurant\n* **Address:** 1721 Old Bayshore Hwy, San Jose, CA 95112, USA\n* **Open Now:** No\n* **Rating:** 4.2 (61 reviews)\n* **Phone:** (408) 515-0161\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** Yes\n* **Live Music:** No\n* **Curbside Pickup:** Yes\n* **Serves Lunch:** Yes\n* **Serves Dinner:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: 6:00 PM – 1:30 AM\n* Tuesday: 6:00 PM – 1:30 AM\n* Wednesday: 6:00 PM – 1:30 AM\n* Thursday: 6:00 PM – 1:30 AM\n* Friday: 6:00 PM – 3:00 AM\n* Saturday: 6:00 PM – 3:00 AM\n* Sunday: 6:00 PM – 1:30 AM\n\n**Parking options:**\n\n* **Free parking lot:** Yes\n* **Free street parking:** Yes\n\n**Accessibility:**\n\n* **Wheelchair accessible parking:** Yes\n* **Wheelchair accessible entrance:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Cash Only:** No\n\n**Distance & Travel Time:**\n\n* 4740.1 kilometers\n* 43.3 hours"
            }
          }
        ],
        "groundingSupports": [
          {
            "segment": {
              "startIndex": 267,
              "endIndex": 346,
              "text": "*   **Campus Burgers:** Open until 12:00 AM every night except Sunday (closed)."
            },
            "groundingChunkIndices": [
              1
            ],
            "confidenceScores": [
              0.76444983
            ]
          }
        ],
        "googleMapsWidgetContextToken": "widgetcontent/AcBXPQfo6pGrCXPJeN2xtADMw1TPz8Wzwm-..."
      }
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 7,
    "candidatesTokenCount": 236,
    "totalTokenCount": 243,
    "trafficType": "ON_DEMAND",
    "promptTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 7
      }
    ],
    "candidatesTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 236
      }
    ]
  },
  "modelVersion": "gemini-2.0-flash-001",
  "createTime": "2025-04-03T20:11:51.118341Z"
}
```

curl

Ganti nilai dalam variabel berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region untuk memproses permintaan.
  • API_KEY: Kunci API Anda. Untuk mendapatkan kunci API, lihat Mendapatkan kunci API.
  • MODEL_ID: ID model.
  • PROMPT_TEXT: Perintah Anda.
  • SYSTEM_INSTRUCTION: Petunjuk sistem Anda yang memberikan konteks ke model sehingga model memahami cara memproses perintah untuk menghasilkan respons yang relevan.
  curl -i -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://LOCATION-aiplatform.googleapis.com/v1/projects/maps-grounding/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent -d '{
    "contents": [
      {
        "role": "USER",
        "parts": [
          {
            "text": PROMPT_TEXT
          }
        ]
      }
    ],
    "system_instruction": {
      "parts": [
        {
          "text": SYSTEM_INSTRUCTION
        }
      ]
    },
    "generation_config": {
      "temperature": 0.0,
      "top_p": 0.95,
      "top_k": 40
    },
    "tools": [
      {
        "googleMaps": {
          "authConfig": {
            "apiKeyConfig": {
              "apiKeyString": API_KEY
            }
          }
        }
      }
    ],
    "toolConfig": {
      "retrievalConfig": {
        "latLng": {
          "latitude": 40.730610,
          "longitude": -73.935242
        }
      }
    }
  }'

json

Ganti nilai dalam variabel berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region untuk memproses permintaan.
  • API_KEY: Kunci API Anda. Untuk mendapatkan kunci API, lihat Mendapatkan kunci API.
  • MODEL_ID: ID model.
  • PROMPT_TEXT: Perintah Anda.
  • SYSTEM_INSTRUCTION: Petunjuk sistem Anda yang memberikan konteks ke model sehingga model memahami cara memproses perintah untuk menghasilkan respons yang relevan.
  #!/bin/bash

  # Set required variables
  PROJECT_ID=PROJECT_ID
  LOCATION=LOCATION
  API_KEY=API_KEY
  MODEL_ID=MODEL_ID
  PROMPT_TEXT=PROMPT_TEXT
  SYSTEM_INSTRUCTION=SYSTEM_INSTRUCTION

  # Construct the JSON payload
  # The location of New York City, NY, USA is lat: 40.730610, lon: -73.935242
  # additional documentation on this payload can be found at:
  # https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.publishers.models/generateContent
  JSON_PAYLOAD='{
    "contents": [
      {
        "role": "USER",
        "parts": [
          {
            "text": "'"$PROMPT_TEXT"'"
          }
        ]
      }
    ],
    "system_instruction": {
      "parts": [
        {
          "text": "'"$SYSTEM_INSTRUCTION"'"
        }
      ]
    },
    "generation_config": {
      "temperature": 0.0,
      "top_p": 0.95,
      "top_k": 40
    },
    "tools": [
      {
        "googleMaps": {
          "authConfig": {
            "apiKeyConfig": {
              "apiKeyString": "'"$API_KEY"'"
            }
          }
        }
      }
    ],
    "toolConfig": {
      "retrievalConfig": {
        "latLng": {
          "latitude": 40.730610,
          "longitude": -73.935242
        }
      }
    }
  }'

  BASE_URL="https://$LOCATION-aiplatform.googleapis.com/v1"

  # Execute the curl command
  curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "$BASE_URL/projects/$PROJECT_ID/locations/$LOCATION/publishers/google/models/$MODEL_ID:generateContent" \
    -d "$JSON_PAYLOAD"

Ini adalah contoh respons dari contoh kode.

  {
    "candidates": [
      {
        "content": {
          "role": "model",
          "parts": [
            {
              "text": "Here are some restaurants near you:\n\n*   **Bella Blue:** This restaurant is 1.5 kilometers away (about 5.9 minutes). It has a 4.7-star rating and offers takeout, delivery, and dine-in options.\n*   **Bantry Bay Publick House:** This American restaurant is 878 meters away (approximately 2.8 minutes). It has a 4.6-star rating. Note that it is currently closed and will open at 11:00 AM.\n*   **Sunnyside Eats:** This food court is 3.0 kilometers away (about 11.1 minutes). It has a 4.4-star rating and is open now.\n*   **Court Square Diner:** This diner is 2.7 kilometers away (about 9.3 minutes). It has a 4.4-star rating and is open 24/7.\n*   **Bubby's:** This restaurant is 13.6 kilometers away (about 25.6 minutes) and has a 4.4-star rating."
            }
          ]
        },
        "finishReason": "STOP",
        "groundingMetadata": {
          "groundingChunks": [
            {
              "maps": {
                "uri": "https://maps.google.com/?cid=6527654009738952016",
                "title": "Sunnyside Eats",
                "text": "**About:**\n\n* **Type:** Food Court\n* **Address:** 40-05 Skillman Ave, Long Island City, NY 11104, USA\n* **Open Now:** Yes\n* **Rating:** 4.4 (305 reviews)\n* **Price Level:** Moderate\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** Yes\n* **Live Music:** No\n* **Serves Dessert:** Yes\n* **Serves Lunch:** Yes\n* **Serves Dinner:** Yes\n* **Serves Vegetarian Food:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: 6:00 AM – 12:00 AM\n* Tuesday: 6:00 AM – 12:00 AM\n* Wednesday: 6:00 AM – 12:00 AM\n* Thursday: 6:00 AM – 12:00 AM\n* Friday: 6:00 AM – 12:00 AM\n* Saturday: 6:00 AM – 12:00 AM\n* Sunday: 6:00 AM – 12:00 AM\n\n**Parking options:**\n\n* **Free parking lot:** Yes\n\n**Accessibility:**\n\n* **Wheelchair accessible parking:** No\n* **Wheelchair accessible entrance:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Debit Card:** Yes\n* **Cash Only:** No\n* **NFC:** Yes\n\n**Distance & Travel Time:**\n\n* 3.0 kilometers\n* 11.1 minutes"
              }
            },
            {
              "maps": {
                "uri": "https://maps.google.com/?cid=17852728553155586875",
                "title": "Bella Blue",
                "text": "**About:**\n\n* **Type:** Restaurant\n* **Address:** 3235 48th Ave, Long Island City, NY 11101, USA\n* **Open Now:** Yes\n* **Rating:** 4.7 (28 reviews)\n* **Price Level:** Moderate\n* **Takes Reservations:** Yes\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** Yes\n* **Live Music:** No\n* **Serves Dessert:** Yes\n* **Serves Coffee:** Yes\n* **Serves Lunch:** Yes\n* **Serves Brunch:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: 5:00 AM – 5:00 PM\n* Tuesday: 5:00 AM – 5:00 PM\n* Wednesday: 5:00 AM – 5:00 PM\n* Thursday: 5:00 AM – 5:00 PM\n* Friday: 5:00 AM – 5:00 PM\n* Saturday: Closed\n* Sunday: Closed\n\n**Parking options:**\n\n* **Valet parking:** No\n\n**Accessibility:**\n\n* **Wheelchair accessible entrance:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Debit Card:** Yes\n* **Cash Only:** No\n* **NFC:** Yes\n\n**Distance & Travel Time:**\n\n* 1.5 kilometers\n* 5.9 minutes"
              }
            },
            {
              "maps": {
                "uri": "https://maps.google.com/?cid=17506796222486207538",
                "title": "Court Square Diner",
                "text": "**About:**\n\n* **Type:** Diner\n* **Address:** 45-30 23rd St, Long Island City, NY 11101, USA\n* **Open Now:** Yes\n* **Rating:** 4.4 (3646 reviews)\n* **Price Level:** Inexpensive\n* **Phone:** (718) 392-1222\n* **Summary:** Diner open 24/7 with shiny retro look & massive menu serving American standards since 1946.\n* **Additional Summary:** Open 24/7, this diner serves comfort food including omelets, burgers, and challah French toast.\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** Yes\n* **Allows Dogs:** No\n* **Has Restroom:** Yes\n* **Good for Groups:** Yes\n* **Outdoor Seating:** No\n* **Live Music:** No\n* **Menu for Children:** Yes\n* **Serves Cocktails:** Yes\n* **Serves Dessert:** Yes\n* **Serves Coffee:** Yes\n* **Good for Watching Sports:** No\n* **Serves Lunch:** Yes\n* **Serves Dinner:** Yes\n* **Serves Beer:** Yes\n* **Serves Wine:** Yes\n* **Serves Brunch:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: Open 24 hours\n* Tuesday: Open 24 hours\n* Wednesday: Open 24 hours\n* Thursday: Open 24 hours\n* Friday: Open 24 hours\n* Saturday: Open 24 hours\n* Sunday: Open 24 hours\n\n**Parking options:**\n\n* **Paid parking lot:** No\n* **Free street parking:** Yes\n* **Paid street parking:** Yes\n* **Valet parking:** No\n\n**Accessibility:**\n\n* **Wheelchair accessible parking:** No\n* **Wheelchair accessible seating:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Debit Card:** Yes\n* **Cash Only:** No\n* **NFC:** Yes\n\n**Distance & Travel Time:**\n\n* 2.7 kilometers\n* 9.3 minutes"
              }
            },
            {
              "maps": {
                "uri": "https://maps.google.com/?cid=5611732157661087317",
                "title": "Bubby's",
                "text": "**About:**\n\n* **Type:** Restaurant\n* **Address:** 120 Hudson St, New York, NY 10013, USA\n* **Open Now:** Yes\n* **Rating:** 4.4 (7278 reviews)\n* **Price Level:** Moderate\n* **Phone:** (212) 219-0666\n* **Summary:** Weekend brunch hot spot serving homestyle American eats with many locally sourced ingredients.\n* **Additional Summary:** Classic, made-from-scratch American cooking is served at this beloved restaurant and pie shop with a diner vibe.\n* **Takes Reservations:** Yes\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** Yes\n* **Has Restroom:** Yes\n* **Good for Groups:** Yes\n* **Outdoor Seating:** Yes\n* **Live Music:** No\n* **Menu for Children:** Yes\n* **Serves Cocktails:** Yes\n* **Serves Dessert:** Yes\n* **Serves Coffee:** Yes\n* **Good for Watching Sports:** No\n* **Serves Lunch:** Yes\n* **Serves Dinner:** Yes\n* **Serves Beer:** Yes\n* **Serves Wine:** Yes\n* **Serves Brunch:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: 8:00 AM – 10:00 PM\n* Tuesday: 8:00 AM – 10:00 PM\n* Wednesday: 8:00 AM – 10:00 PM\n* Thursday: 8:00 AM – 10:00 PM\n* Friday: 8:00 AM – 10:00 PM\n* Saturday: 8:00 AM – 10:00 PM\n* Sunday: 8:00 AM – 10:00 PM\n\n**Parking options:**\n\n* **Paid parking lot:** No\n* **Free street parking:** Yes\n* **Paid street parking:** Yes\n* **Valet parking:** No\n\n**Accessibility:**\n\n* **Wheelchair accessible parking:** No\n* **Wheelchair accessible entrance:** Yes\n* **Wheelchair accessible restroom:** Yes\n* **Wheelchair accessible seating:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Debit Card:** Yes\n* **Cash Only:** No\n* **NFC:** Yes\n\n**Distance & Travel Time:**\n\n* 13.6 kilometers\n* 25.6 minutes"
              }
            },
            {
              "maps": {
                "uri": "https://maps.google.com/?cid=6091491943686568358",
                "title": "Bantry Bay Publick House",
                "text": "**About:**\n\n* **Type:** American Restaurant\n* **Address:** 33-01 Greenpoint Ave, Long Island City, NY 11101, USA\n* **Open Now:** No\n* **Rating:** 4.6 (582 reviews)\n* **Price Level:** Moderate\n* **Phone:** (718) 784-9500\n* **Summary:** Unfussy watering hole offering hearty, internationally inspired pub grub & draft beers.\n* **Additional Summary:** Casual American restaurant offering comfort food and a selection of beers, as well as sports on TV.\n* **Takes Reservations:** Yes\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Allows Dogs:** No\n* **Has Restroom:** Yes\n* **Good for Groups:** Yes\n* **Outdoor Seating:** No\n* **Live Music:** No\n* **Menu for Children:** Yes\n* **Serves Cocktails:** Yes\n* **Serves Dessert:** Yes\n* **Serves Coffee:** Yes\n* **Good for Watching Sports:** Yes\n* **Serves Lunch:** Yes\n* **Serves Dinner:** Yes\n* **Serves Beer:** Yes\n* **Serves Wine:** Yes\n* **Serves Brunch:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: 11:00 AM – 2:00 AM\n* Tuesday: 11:00 AM – 2:00 AM\n* Wednesday: 11:00 AM – 2:00 AM\n* Thursday: 11:00 AM – 2:00 AM\n* Friday: 11:00 AM – 2:00 AM\n* Saturday: 12:00 PM – 1:00 AM\n* Sunday: 12:00 PM – 1:00 AM\n\n**Parking options:**\n\n* **Free parking lot:** Yes\n* **Free street parking:** Yes\n* **Valet parking:** No\n\n**Accessibility:**\n\n* **Wheelchair accessible entrance:** Yes\n* **Wheelchair accessible restroom:** Yes\n* **Wheelchair accessible seating:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Debit Card:** Yes\n* **Cash Only:** No\n* **NFC:** Yes\n\n**Distance & Travel Time:**\n\n* 878 meters\n* 2.8 minutes"
              }
            }
          ],
          "groundingSupports": [
            {
              "segment": {
                "startIndex": 37,
                "endIndex": 116,
                "text": "*   **Bella Blue:** This restaurant is 1.5 kilometers away (about 5.9 minutes)."
              },
              "groundingChunkIndices": [
                1
              ],
              "confidenceScores": [
                0.95786446
              ]
            },
            {
              "segment": {
                "startIndex": 117,
                "endIndex": 192,
                "text": "It has a 4.7-star rating and offers takeout, delivery, and dine-in options."
              },
              "groundingChunkIndices": [
                1
              ],
              "confidenceScores": [
                0.97011536
              ]
            },
            {
              "segment": {
                "startIndex": 193,
                "endIndex": 299,
                "text": "*   **Bantry Bay Publick House:** This American restaurant is 878 meters away (approximately 2.8 minutes)."
              },
              "groundingChunkIndices": [
                4
              ],
              "confidenceScores": [
                0.6947031
              ]
            },
            {
              "segment": {
                "startIndex": 300,
                "endIndex": 325,
                "text": "It has a 4.6-star rating."
              },
              "groundingChunkIndices": [
                4
              ],
              "confidenceScores": [
                0.94997823
              ]
            },
            {
              "segment": {
                "startIndex": 326,
                "endIndex": 385,
                "text": "Note that it is currently closed and will open at 11:00 AM."
              },
              "groundingChunkIndices": [
                4
              ],
              "confidenceScores": [
                0.6143993
              ]
            },
            {
              "segment": {
                "startIndex": 386,
                "endIndex": 470,
                "text": "*   **Sunnyside Eats:** This food court is 3.0 kilometers away (about 11.1 minutes)."
              },
              "groundingChunkIndices": [
                0
              ],
              "confidenceScores": [
                0.9326993
              ]
            },
            {
              "segment": {
                "startIndex": 471,
                "endIndex": 512,
                "text": "It has a 4.4-star rating and is open now."
              },
              "groundingChunkIndices": [
                3,
                2,
                0
              ],
              "confidenceScores": [
                0.9840884,
                0.8849733,
                0.9861043
              ]
            },
            {
              "segment": {
                "startIndex": 513,
                "endIndex": 595,
                "text": "*   **Court Square Diner:** This diner is 2.7 kilometers away (about 9.3 minutes)."
              },
              "groundingChunkIndices": [
                2
              ],
              "confidenceScores": [
                0.82310444
              ]
            },
            {
              "segment": {
                "startIndex": 596,
                "endIndex": 638,
                "text": "It has a 4.4-star rating and is open 24/7."
              },
              "groundingChunkIndices": [
                2
              ],
              "confidenceScores": [
                0.8532716
              ]
            }
          ],
          "googleMapsWidgetContextToken": "widgetcontent/AcBXPQcypDFCG_1XzVodpoUGffHkgBuEuLBFgJBBwWcbRMrE8SZZf81okOX1PtcFdT_xSEeQ6_eD8wuLjKRayTRUPbxadZ0fzgsSa1De7WckoARtzF3SL6dih7lkfOfJkN-z1aIo1a8u0cLjyyAbV58kUTzZcSG8JHlbOFiaO85XAplbZz4DGEagwjbEWMnEphsVaiEAvDoofK1hWVo1tIvJwPYy5Nzbadw-tVvJy4FNmVsPCn0GNngOaGhyLj5iNlPZLUq-pM6ZRHg7o98CJGjVDzDlo8DVLMj43NtnXttF89Vnj3PG1e4GtPqUrlQLuIjllwKdbWNsA_4q04D0vZjp2-YNFQwMj5ayXXtiOnbCFSZW787lRcl_IMEYLVRA8M0aJEJvlKvIYZd-qP8PDt8FqTsImToE3ENsjWmLykmaUR1d8pYpgShHdiisF4mdvxw-FsHZkWze6d7sxpNcV-RtcT1j3STFfpOuMLQhjFfA7dssREH-5mGHyvXiEJK7_4jRxv_cjgn3lhAwi3Xk5dLcNXxv3soJtqjJYtcwX7oplVQJhEB2YY2RJ4yDTPksIU9vCH3zAThwWk3ogwNV5DLC7d4al4YD-ChcwnXfENVCLcMwOYRu8HYE-bRXSlArRwOlUX4OwPgIbVuEN0QZkJ7cMWeA5BI8KqpetNlZdD42-J5sYEkUbBxTZoDywsW2n0amwUkFU6g33UXR_uOBmUdt-0flFOj0ta99dPBAA1mesmN8UPtAk2GcSJpDIXn6lxxYKvXwrnKIjxSpZhL5b_sqYPBxcpxSa0RVInCMgC-3U9_4rxYz2gAXCBHx5RdTBN3tJTFllRQmeXV_qX5bIhDZ5CwdlexDFKeRNQJYHX-8Y5uUlWuPOx3P2NTB3XufNkpzFJrrsrP-GxRfEIBM43AJWzIsW1sCcJnFxZX3JwRsJ0X3gGNmQP3KDJNeOEV6BR-JZomi5ziDP5i3Xthz7XBGmw2e_8wBfh6h-U5KCzEkop74ipJW52jGuaFbdPGGiFphkx3A7850F0UcNhYHT1mtYmjMSpLNjx9LNEx2Gg8QnF0tl_v5d8Z9PBJaiQjXJj0kXfsWmwN87PnARaVoDnLAmT4GSg7N-xJ6HCaW_W7yr77iX8d_xZDAJ5L_mcC1ZMyPmfrEAnI36X-X3GB3pziKrcT1sM4u_-Y9N3rH8bod0L6uFecOPpyVSbV__-p-JexDL74Zz_Trqj2Rpenb412PDGoUK2wkW4E19Eb4puWWjj9D0qucGinrD1VoUb8DjyJFMrAiQBeYJJAWrw1ngkRwiIEjzuJQMH-Pcap1JD6RDmRj5Fr6OvDl0NPF0ZO7vzaPUhkptrOzhaIuOhBPDQ0bAzJ5yAMpib4R4fw576Qmiwl-ZBeAkjie5FcJQjGaMhvOL5QRLZowo9sHY-v7jDzHI7aFBZREk3u5q8uhPvWyDKf59tuTIU1MRmaRl5R5b-EQwM55O5P_RkdlExCAskYC7Uqg1Pa-N4b7q143vdgvZ5X6pg05W1yYUOK19e8qQjAJhzGH7NAwoVL1-8P026XAYdC91krLrLAUFmP7HNZe4sEtBQfenUAsQzJh6F5IWSrzW_XygeKOfCRaKDcNbybcVcR0bo6QlXV1XR6xZznMocHhvVQ3xJgQLFg06b3jBGCL76GtzRThOV8cOpw-DcD7QolL6BvMIbYrF1JK7mXQA1XNRQwS4TjCwndIcgW_RMMg6cQ1sSYYQ5SurdkH9svdty2jgTt_qbGJNLCSKKX9t0_xSsboLRea8tjJCSxrfR4S6_XmkRjbqzw_48O4jgStXB0ATLqni7wvv_zFFdKFXXXENexvy46TUahmlCXdibUS7AqTMgXHbCf5HskklkZ1vbbyuRRhEHixEj9r-h98tTwjKyYpxWK5DUE9Grgm7k328WJzB9-dMezb9OJaT6d1I_nREp2KT7hqcz6RvcMX2jG9ItP-AcV3UhHdrMtJqaI4YPbl-gmP_XpJnHOYPXmYOVA7Ds-BFj3tMgst05KJ4zLLAUKRcsgIYXF33DAEXsUGJmQvytjGfuRQ6GH7PR4AaTrAREIOCXBapbWVuLqI1HC0CwrPky18oBdOVkLWFau4j-s3MWJBxsnI2OiRYz__PQpytkbaXf_P9D3ZoR3W7fXa-H5hxD3gi6kd7vT2hdeIsI2ywIEELi-T6hR6-50Z-dxS07IcXi5Kuw1-yglBySWL-b9xN1-OXvI0EF2_pRjfaQvLfWsfH9jbt1AcaR1JKKWLICmeBDazG9XxnIc4uYm7Chbx7tdUpSYUjuDLkuki_j4TCWw0_dBKuGq3wxiqykrozSxM2pkmhanjRFcTVoYxhIbTXZT9S3qSUCB1vJBV8oIiK15iXiy8_jZjYw76wMDEFbS5k1T8LrwGIZxzH4KpI8fEWyrO-d-n97mYtZNNgtKCoyUGey7POPoIY_Ky0927fbteH2Ef4_PkrmB6_t5xF4ZspHvnaV_cFvhnooVZkLQpJe2ryY3L6xcauqZDKy6yXiS5o91a2j7l8d0VO5aTKyLDJf3bg6YlWhkcs1iI0OziFAQ1GH_d7wREyZneIzGkW-xCxXAzg8xxddJp8k5t-nwEJozHYcuoQh-EnFRCw6oywOgekAXvhPaqZmJQ2BZhbJ8gExSjS2MJTJ83_I8lNNMRRTe12byYUUtRWiA86osShwmQBJZCqxrRqYCEP25T1RSKuxWz3ql_Alrcsj7k5g-5xxCAQjkpCT4_4vlFbsx134m4diYsKFkmzeQO6b_ZCi5IXeb3VU8STRt8jWdWpkevK9G0ETm0PfCO-g01pSCgnUrdkVH1btIFQF3uZKlYRKM0S6-ePHcNdiQNPIH_wokoHTLNas96xwy_nJrsnyOIUQSRLWq4NJbieqMHDksX9qp9_EHsfctU4gZ8WxNr50S6NU9T3JCF90hJfyXv3Lve5FoqdEp5LFM_JokFAqpW95xtK71O79zpCeX6Fqf6p82E12qtIPoZBq35ttpImua79hPafQ8CR0MdgaUrROI2UYYyP7gvaIZ64oNqi_TX_vxOeqkfhUIvy6VVUZ83QmXw6TmVNg24wVzaYMgSaS8JUd_N-1GPqEZhhOSSi3uaYt4bYk7ihFVq2f6KnXmvIzIuYr9WMvFcM6V8KgUIx5-iB49H6fDwptRUEFIOssi0o6XWrLrd0ozuochrnz5feXahw4zr4iDiDg7NUtpX6l6-k4YGbXgoSj8PpdiA-7iqi2FcSpb1Al8mzaWUdGRqoP6Y68JD834OF3_Bul31Hdl3Ehp2Swbz9s4EvR8QOSDGeWTKwEMNtAE6n9cGNWB1oVVh56UD0DwDTZC_8tL6PyALE-dn_hGPtETElALCYmG1xC-mDXrnfbzjWRwNYxReBWbivnUa-WUBUEvSny0EUEbsculQgaV0ZEr6aBChUsPZjUanLJQ4WfsFt1pPbC0l-8fBPIQ-X_Yt3GbGmBDHM9-kDywI3xks4CiZ6OmvamY45CbBcve4E13WqqmrhvsXBkW9xmrQxQbCTY4-zyoQPHaByTuI0b2mXyKs2EOpyDurqIVrq-PmEO5VIpLHOFxYXQsv9nhOtWgUaAbaQ8nJbBN8ed2JAHzZconv_OznFdf9rwo974nGIXjhk8xezqp4z-yYQKIsZgh15wRs6G0KqafrXe4T8kHyEhJG3mlLIlGKkQiLWojPYsBp8nl9zgwfZUAK3toYQUmYUW34tNiKhNpOh3OS6PX4bXFJkXDB3S2L0RTD_cuMNyLWS9n9QDJkzgU6jZmM9Fi-Zb_87oSbTFavB--bPUugvDgVpK0741OgtON-U_AuRERwuQ31jtvfbRpOGw5h7BljHGpzNXnNDvxiWc0bCD9G3WnQxvI-42lX4YzFE-cXH8BhUX1BMCP6-Mq3LzL6a3cgNv1Kaf6JHyzly0e_RdrflD0npIHjbWG8YF-jNO_xm9YFEwqqDDDurDmJVpngpBpX4Gl3UFJ28ikXNJiuikt-gXa3SR90OhugNI0xNVpsVuM9y0UVcX9KWJphyWJ_oK-nR9dU15QtbIVaiRwGEmdtW22NBRm7TJteIXp4l6wgKVX5iRiAQ7fKGdQ4a3-ArGEaLHD3hAJs9aQU0rHlwAJIvOLaHArBkTEcVxLcrB9HkEVmcHsgQTJTf8zrMHo01PO53rTa2R7_HX3mK8kfe7LG433o8QGB-xeJguFc0ocPYQwGMno0ftJvOAJDUhsOVJkpMN-XeMbJtmqgIa0RiTqtyP9ShDLtqo7yg00Puoqltk2reW_Glpa7vNcge8c-pKW1QI7yjr6x37NWuT1IwumV2mjFMY7JD22LaaAEKUKfSecCx65VQJRrk4cgtdRr-nGEbTjLSMEXCJ4ADZG_9jxkLY14GhOgy9mz12hWSMGFKAmZAGVCSVnB8cmU5omqYpbtqxQxu5dlWiAmVG516xuULVAShqtfNPdgUV9t-8EWKujhaUVLeW1tSZIRA6fAWL6sMWTaOHgWxN2UBbjQdXFRcfTUB7T8Oy_ajM13GX3vGKnnTPVb7NVxfhq8LJ2Bg6FEkboaZxe1ChADeByOf9obFpgIAZNWiW3lYMKmNFU4I7klZ4wFiNGF6m_e5vGFlG7xvJ2P6W4rjerICuLlnfCt5_X4YT42a-j1ekPwNbMbmWuoe3BX4wHhu5uxeuBRdjQ2Oh7rXPGPb7JPdZdIhQ3O9JGhJjq9WXQunfiGuwnT3fzAFLQDubITaBh_Nf0M8V3Ae8L5byVQYkWTGpBuMEdXOtJfLJFnIlPti4jxElng3ACS9E4j5QSgnHi1xbizIYFup2ICjoD8TCWoWItdh3SesWFdqlsQEthfjib6TkwCVINcRpVR8I5cZqVr9lhhmYVzkZhLWF56ExJpHcS08PdrXW5rmRFt5m-MhqoQ2-Fkt6wUTL6qCNxWH5Df71hmcQbJ095Ud3b_2yxlU8YGCh0HZaSx2Hv2QnMMODEz6o5VbD0cv3wMETs_ulVe2XZCHDp6LeRoSb4hGuZgTkWwYEo3_gIdLA1zVKK-nAkj6ZhP0A7CN7UzlSR8evWlNlI6HtOzRaum8gzdG3pqSRgDp6KSSFPp0ckdDfzu61nXssu2IGglfC3MnBL6sZixkouFQUTTT817q-IpEbxZXA4vrOqz4c48W4vyEJRqGzlS5_ExnrD51RcCGh68gRCQW-_BQLi_YG5YSbMtGIR4X5yQpGExt0Gi-vu72Hnv_saHEPol0U06tfDQYGJFGRr78_OggXJiADByYd1i2xdE7OVXvUVB4kmyTysViI6ihOinIje3-3NXJUq1vq8RLm42iuLb74pR5-bjQb8LDlUYIfG8IupiIfMMnN9sTil9LaV22x6tDLW_6tHtAf942DDc9j45e7A3d67VbjSYyEpzsvOjzObKZYuNmIBrZRdA-2SLfkQQvu5wz68flhKxHH3a-wVRjok2kJDu3hRcSdQmYWl0ARj652qs5YeZXQRVAnr2vGTkGx_WG75z2xtTktsSfl0s9uUItI1pNGxR0hs-dCSW3u2PRPKttcc4cRKMhUOHi0wPZmruyj5BpTCSz4ftHuk9wNoAkqoRBXps-T63elSesVOtSUhACrspvKTyw3wD318aIPFAPYSXM5AMmtK--t_cxoYIW5q-trte4IAkdRwvelpBoNidaO21XL142Yzig-aue8vQUKeQ6z7jsQyvUsoZzpHQux_bhvEV_ogiTRxbBxJ3Jq2gn8Fd2XjfZzvRDUoEiyq3pknIny7PRThqd6uUlEF7XFdIZdeTiuZcgZaPRvqptrsVuzBh1MLAx0EMPva9jUpKzJJXc1A3e9HqGKY7a7m9W__-SSReunQHudiYvKaFLATXKQZ2asTnwvZ0xgQqbPZcvhnXhoFlFv09taNYw1K-r1AiRbca-b23U2-td7MuSVovAPgAWpkZNnJu5xc6R9PaJ-NFm8kF04OOK-f9Xilhc8heJArn8KGRk7J9kOEnLma9v55Emt03XTrSnzT_zaj7X_Ge77Bmy_P7Xo6uoEAbP9Cs0IQmC_JMvE9L1U3VkgTTPbMfkvmr8yYwDEDMZdoCAx6QW34v0lIsNuMcq0sJUiovCTenUhyUwR1lP0S98Ga0SE6JQUN0dK2OMdlwfKudM8lcKfrFnlP-dvmjzygDYpGp0eb2lV6YrE7GDNqtVIapc5j6Dryy8-NuhVJUHfmEzHeZMMGecFLADq1kHDpmvmoz_RicJQwS-eAgeT3zLo5hYrElRLkicQSlcTC-YAcbsSpkdwrOiWDpHxctpYlcmoRMzBozo3VZSSYVE52J6rg5nQ0x_W4RFn_nuCBXuSFr8NIfG5nBkfG9XR3dvMP09SjvAd7VfKwCoVATJHO08coF5BdmRjPl96vx62wFhCSmn6xMOPt5MlyDNYJFN2tvR4teMu0GaAm2BupsKtmUs4WUdgFw3C2JYtZNkVDC4X_0Yi28KGhLHlSKMDhQnXZ26b7SB4zWU_CM6CCrXbwZYwQPvsS7FN0x8rAaFj8tO_x1iZmUoudnjW3fsRt3NAZUpFGSGJG8cmeOo0qow6FOEtFgqtQerAmed6LieHM-SgI0WIWA3EW10frPz4D_zTZtSkFMXmi0tBI4UUsWuCLFyvTSy3Wg9SNpHlVOJ-Xu6sGqmp0CoOhZwhA0lyeFmRKGXR_9ZB-DdzBSvqwB9lzAY0SSvSpSihKbzghnnecZxg0-XjC8Bz87qq5oEutQEwiOCGMvp1ublKFUG4i_byS0d8fHSOsW9n9CqNPgCCZJKfuf2vpJaWl0oWhWEsMW2IQAEt1gKsWKeRxUFTsSZCtE4foAyE49C7jYh3svqL-7qDUKTMW52F1T0TMM6FustiL3bhOiGE258rOrpepXOx0uFy6dHXXaFHhxGEdisw-fLIJFuvIexEFvUJvGwjaLHL8sGlRRuWXthwIZSTEkajmQjayN0GwR_mOV6YdQzBcF8LWB2BDicuQNICPW2VY36zkPA4C5OiRQoQM5CJwj5Pt76Y6OlwkpY-M6v_xR7EvOUgxGiPPN9roU3TQUd7LDQ76YBPhuvcyv0FYixeQGWpVBN85NopssJ2McGLwaOoiqoTnByir2eDp8n4tG5Q5SOguw4wBEjNoxf4V9zThYDlHCKQQGifSAFGmTPveNcfJfvuzNrmPLKEPCMHcqFX7UefJ-00OoZa6qAaJxORBJ2UbdphgD016loHW5t95MmcyzTMDlPYeEDLaMgrGARopg2P_d90MoFuYvPkEz4kcE_79u2tLsFR5OmPA7z5lbrJO6WzYDg9vR4Cz5ZYZicce2Q4Mx1xTtHVGFdDpSuqtj77fmIIU8JDFz-jwSHhmzhywLddIBVQFAcHkJkvgAu1kGn6dGmyeUYb6ElqNtPiHMwtv8mCTtfS5Sg3tCzQ7ORrakgDAQ-wrWScD0dDc0-IEKutmKuVUeXHylzV-SnoUNXNdgI0id0Tz6RbZwa3Y4VEp3Vv7TcbM8ltLRSh4ISqUMs4JKbZx7vXwbZGj-CkVafDSx0vErOo5fWbvHhhFPFZziFS9AiZNzcewL3ypkxrMabQ8EFaYjYmzCzHJrlZPcRnFD4Ehh2cTTd93XyY7-ov5eNGwqS0QHPUN3y7-hSWQUrklrt7GEo1pglQECcYWRpic2mOC-KT5QxUnQ6U2FMGnpfNXr675Js1A29kCZVBhidqHX9X5vzz-TL8RLUt8qWLv7j-T18PGZWBYgOycJBP6uEyvv86w9B7Vqk9IUTGxVwzVxaN_1mTQaJqRcSBd6VIDep9hdjavQNXQym3Ld3KVrVYi809Zy6-I5f0oylxB4KIwknScLvy5E50Lhzwy0znH2ggFrLPJSVbOJdUD3FbBT1G5Ia_5UeTvSjcf--l_aVFGPBum15OA554kBRazvjV-adiDmr9CthZYKZIVIyKdmgf8T9fczj8AYlQ5eS7KnPEcjDkSOnHCQoNP4lDVq5Eu2dzco2HB3EQ4YMfdO5beYI6iq1KJQUI406lIy-4SdcrgVrdSG83gfNYe6HKSbvE8l7qVxlPdL0d5_tIN5LX0qDA9hC52TC_osePApZKVv_oyzcCIX1SWkapP0MlHWcNBqln8LICUAUb-HlkMAi6oeoycU07ZLg4gb3jYjUsKShFSXRzi9EijKjP5IKICCVuEbG5ZkbCl8CCjvwVke-AidaUFbsnldlFxkH-2dlBDXU87ih2n5Etd41mYu-4TQe3VFDgPhsCp1iofz8kxiTAnwGVSF0F9aKJcHaK10D6QLpLaJ5P1cGs5nsqaUP4sBg2REJSwzT6QrY8R4nn_invQ153zTzIMDcEIsma7cVNw6JZ93ColIoHxuceZtSXFBHcGelgKwK8hGCeXQ3fomLdm7ggq4VQZ8ykDZuO-isNRERS6Zr12AERiOYkn2nX4qgbtTL9HGxJBCf0z2zBH-WuLu0yP9v1CbEH4Ru0oDPFJWoesldLDYouI3c00XwQwGCqbrYgnZM8JHD4ZDeZUThvHMXjG5fTbt066veM4u2biVcjm5yRaeJKCxY6N52w4JG8rGO0l3oAj4D6Ft2pE9LEIUmZhk3Fy5_YaFVL6oUnZPvZWUrRjFpsoSUeY9_IZDZlvmEOjlmq5g8SpEblalBuGjfbU2P6e890YNaxAsSCfKiLUQ6yWqmOVYXM4xRYhWi7WqgwddxDi6AH4GVtqzvMpUnY-U5KIDzP-o4IEcxoob_wrUCDsd6x3UVlxIP0sxkDuPA9FaNGiH5o41v1Ym97OkLOMXVv_BaK7q62RBM7cXgx7lZyzpx8qedMmcJ9Zrn35LSy3686qrgO8zdrzsMWWo2SY6r7dhcc7qP0fozNSA_lptgh5cW8KO3YjYs1w8yAWq-MmBuo5fLdl_SZo53FwtArqPCURkpiUfMMjtk-lqMgG7cuctqWHwljd6gv8puqSDDLkqAGkCcCBrggVlRtRhLvTfuKO4XXmRarHhk8FyB6TkmlgyJHZoA7_WEyT1FqwsjpGJNvKjAarhDUfxeYSc_U8L8FFgJ2RqJj4g3jF5mKBHYHKj4k8N3_rSufkzZG7kVYZM-7Yy9uXc8_VlPyXyhBXAz4XiFYFMfqWU0_Gwri8ZsDyYxuhXGsu1bId-J3RwikyGO8TeTARhHpvnywqFOW4bHoQnM7_oaOhNrWbWEzXvDUePunmw2bApE6IQA-QfpumSrMIWQzLjFyMt7zMLko4KbaucJNVSsienhKHH86m_w2ryF2AZH_YY5qEPkbVKOxWAGY5rv_Vfoswbe4laF_GN1-OquVfP5wyQUtJd5rsMSDQ5KnE_AKfd4gWaaFSB_F2FhFMNjhIx02NcMCvYk2l9qHPWPM-h1SGAeJFECpDQU6ovV6Al6nlOpHP8gxvEKH4C6oXNTvxuVPkqEhoR1gGa6o7Du-IVzzddD06eQ2_h1EXhtLjEzgiDJx6ArAXx04qhYv0Iq_qgaMgki81u-SIbhRgYyg-tdj40Wzt5bKqEOnOtIPHilFoPxDcQ88we-gE94hnmMrg8G_RIknrkcpWlPnFcB1gR8oLTuXlU3XN8CKaTHdzLBz-F_DZpSCFyWcT1XqmyQM_jcz_v70fdOM9KByPYBXaBXNf0cGXAo8nFUgW6azh3v19v_j0AH-ebm0P2qvpbyJJkuvRhLqluBfNN0x6MSCFoTogfZSOAGAWkskNh9aewqu1u"
        }
      }
    ],
    "usageMetadata": {
      "promptTokenCount": 57,
      "candidatesTokenCount": 236,
      "totalTokenCount": 293,
      "billablePromptUsage": {
        "textCount": 249
      },
      "trafficType": "ON_DEMAND",
      "promptTokensDetails": [
        {
          "modality": "TEXT",
          "tokenCount": 57
        }
      ],
      "candidatesTokensDetails": [
        {
          "modality": "TEXT",
          "tokenCount": 236
        }
      ]
    },
    "modelVersion": "gemini-2.0-flash-001",
    "createTime": "2025-03-27T14:02:25.864430Z",
    "responseId": "cVrlZ67hNOyVybgPmLC5sAg"
  }

Merender widget kontekstual Google Maps

Merender widget kontekstual Google Maps diperlukan sebagai bagian dari penggunaan Pemrosesan dengan Google Maps di Vertex AI. Dalam respons apa pun yang didasarkan pada Google Maps, ada googleMapsWidgetContextToken yang sesuai yang digunakan untuk merender widget kontekstual di dekat respons yang dihasilkan.

  "googleMapsWidgetContextToken": "widgetcontent/AcBXPQdpWQWbap9H-OH8sEKmOXxmEKAYvff0tvthhneMQC3VrqWCjpnPBl4-Id98FGiA_S_t8aeAeJj0T6JkWFX56Bil8oBSR0W8JH3C_RSYLbTjxKdpxc9yNn6JcZTtolIRZon9xi6WpNGuSyjcIxWu2S0hwpasNOpUlWrG1RxVCB4WD1fsz_pwR236mG36lMxevXTQ_JnfdYNuQwQ4Lc3vn...<snip>...
  Ts5VJE_b3IC5eE_6wez0nh61r7foTUZpP7BXMwxR-7Wyfcj6x1v6mIWsFGr1o0p_HSAMNqWPg-aFVnkPLhAkOR6MaNZOfezTva-gxHlu7z_haFvYxcUE1qfNVQ",

Halaman yang menampilkan widget harus menggunakan versi alfa Google Maps JS API. Untuk informasi selengkapnya, lihat Memuat Maps JavaScript API.

Anda harus menggunakan kunci API yang diaktifkan untuk Grounding dengan Google Maps di Vertex AI untuk memuat Google Maps JS API.

Contoh kode ini menunjukkan cara membuat widget menggunakan HTML.

  <body>
    <gmp-place-contextual id="widget"></gmp-place-contextual>
  </body>

Di JavaScript, gunakan metode berikut untuk memperbarui token konteks:

function updateWidget(contextToken) {
  let widget = document.querySelector('#widget');
  widget.contextToken = contextToken;
}

Anda juga dapat membuat widget secara dinamis dengan kode berikut:

async function createWidget(contextToken) {
  await google.maps.importLibrary('places');
  let widgetContainer = document.querySelector('#wc');  // a div that contains the widget
  const placeContextualElement = new
      google.maps.places.PlaceContextualElement({ contextToken });
  widgetContainer.appendChild(placeContextualElement);
}

Contoh kode HTML ini menunjukkan cara menggunakan opsi konfigurasi untuk beralih antara dua tata letak yang berbeda (compact atau vertical).

    <gmp-place-contextual id="widget">
      <gmp-place-contextual-list-config layout="compact">
      </gmp-place-contextual-list-config>
    </gmp-place-contextual>

Contoh kode HTML ini menunjukkan cara menonaktifkan peta.

    <gmp-place-contextual id="widget">
      <gmp-place-contextual-list-config map-hidden>
      </gmp-place-contextual-list-config>
    </gmp-place-contextual>

Contoh kode JavaScript ini menunjukkan cara menentukan tata letak compact dan cara menyembunyikan peta.

  const widgetConfig = new google.maps.places.PlaceContextualListConfigElement({
    layout: 'compact',
    mapHidden: true
  });
  widget.appendChild(widgetConfig);

Langkah berikutnya