Google Haritalar ile temellendirme

Google Maps ile temellendirme, Gemini modelini Google Maps konum verilerine bağlayarak uygulamalarınıza konuma duyarlı işlevler eklemenizi sağlar.

Google Maps ile temellendirme aşağıdaki avantajları sunar:

  • Doğruluğu artırın: Yanıtları Google'ın 250 milyondan fazla gerçek dünya yeri ve işletmesini içeren veritabanına dayandırarak model halüsinasyonlarını azaltın.
  • Anlık bilgilere erişme: Güncel çalışma saatleri ve elektrikli araç şarj istasyonlarının anlık durumu gibi canlı verileri kullanarak soruları yanıtlayın.
  • Görsel bağlam sağlama: Etkileşimli harita widget'ları, fotoğraflar ve Street View'u doğrudan modelin konuma dayalı iddialarının yanına entegre ederek kullanıcıların güvenini kazanın.

Desteklenen modeller

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

Desteklenen diller

Gemini modelleri için desteklenen dilleri inceleyin.

Google Maps ile modeli temellendirme

Bu sayfada sağlayıcıya özel içerikleri ve kodu görüntülemek için Gemini API sağlayıcınızı tıklayın.

GenerativeModel örneğini oluştururken GoogleMaps değerini, modelin yanıtını oluşturmak için kullanabileceği bir tool olarak sağlayın.

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

Kullanım alanınıza ve uygulamanıza uygun bir model seçmeyi öğrenin.

İdeal sonuçlar için 1,0 sıcaklığını kullanın (bu, tüm Gemini 2.5 ve sonraki modellerin varsayılan sıcaklığıdır). Modelin yapılandırmasında sıcaklığı nasıl ayarlayacağınızı öğrenin.

Sonuçları iyileştirmeye yönelik en iyi uygulamalar ve ipuçları

Bu bölümde, Google Maps ile Temellendirme'yi kullanmayla ilgili bazı genel en iyi uygulamaların yanı sıra sonuçları iyileştirmek için yer özelliklerinden nasıl yararlanabileceğiniz açıklanmaktadır.

Genel en iyi uygulamalar

  • Aracı yalnızca gerektiğinde sağlayın: Performansı ve maliyeti optimize etmek için modele, Google Maps aracıyla temellendirme erişimini yalnızca kullanım alanında net bir coğrafi bağlam olduğunda sağlayın.

  • Kullanıcı konumunu sağlama: En alakalı ve kişiselleştirilmiş yanıtlar için (ve kullanıcının konumu bilindiğinde) Google Maps ile temellendirme aracı yapılandırmasına kullanıcının konumunu (latLng üzerinden enlem ve boylam kullanarak) ekleyin.

  • Son kullanıcıları bilgilendirin: Son kullanıcılarınızı, sorgularını yanıtlamak için Google Maps verilerinin kullanıldığı konusunda net bir şekilde bilgilendirin. Son kullanıcılara Google Maps kaynaklarını sağlamak, Google Maps ile Temellendirme aracının hizmet kullanım şartıdır.

  • (Yalnızca Web SDK'sı) Google Maps bağlamsal widget'ını oluşturun: Bağlamsal widget, Gemini API yanıtında döndürülen ve Google Maps'den görsel içerik oluşturmak için kullanılabilen bağlam jetonu (googleMapsWidgetContextToken) kullanılarak oluşturulur. Bağlama dayalı widget hakkında daha fazla bilgi için Google Maps belgelerindeki Google Maps widget'ı ile temellendirme bölümünü inceleyin.

İstemlerde yer özelliklerini kullanma

Bu bölümde, konumları tanımlamak için kullanılan ve Google Maps ile Temellendirme tarafından yanıt oluşturmak için kullanılan yer özellikleri listelenmektedir. Bu özellikler, Google Maps ile temellendirmenin yanıtlayabileceği soru türlerini belirlemek için kullanılır.

Örnek yer özellikleri

Bu listede, modelinizin yanıt oluşturmak için kullanabileceği yerlerle ilgili özelliklerin alfabetik olarak sıralanmış bir örneği verilmiştir.

  • Adres
  • Arabaya teslim alma
  • Banka kartı
  • Mesafe
  • Ücretsiz park yeri
  • Canlı müzik
  • Çocuk menüsü
  • Çalışma saatleri
  • Ödeme seçenekleri (ör. nakit veya kredi kartı)
  • Yer yanıtı
  • Evcil hayvan kabul edilir
  • Bira servisi var
  • Vejetaryen yemek servisi var
  • Tekerlekli sandalyeye uygun
  • Kablosuz

Yer yanıtları, kullanıcı yorumlarından elde edilen bilgilere dayalı olarak Google Maps ile Temellendirme'den alınan bir yanıttır.

Yer özelliklerini kullanan örnek istemler

Aşağıdaki örneklerde, farklı yer türleriyle ilgili istemlerde yer özellikleri kullanılmaktadır. Google Maps ile temellendirme, amacınızı anlamak için özellikleri kullanır ve ardından Google Maps'daki yerlerle ilişkili verilere göre alakalı yanıtlar sağlar.

  • Aile yemeği planlama: Bir restoranın aileye uygun olup olmadığını ve uygun hizmetler sunup sunmadığını belirleyin.

    • Örnek istem: "The Italian Place" çocuklara uygun mu ve paket servis hizmeti sunuyor mu? Puanları ne kadar?
  • Bir arkadaşınızın erişilebilirlik durumunu kontrol etme: Konumun belirli erişilebilirlik ihtiyaçlarını karşılayıp karşılamadığını belirleyin.

    • Örnek istem: Tekerlekli sandalyeye uygun girişi olan bir restorana gitmek istiyorum.
  • Gece atıştırmalığı için yer bulma: Belirli bir saatte belirli bir yemeği servis eden açık bir yer bulabilirsiniz.

    • Örnek istem: "Burger Joint" şu anda açık mı? Akşam yemeği servisi var mı? Cuma günü çalışma saatleri nedir?
  • Bir müşteriyle kahve içmek için buluşma: Bir kafenin olanaklarına, sunduklarına ve ödeme seçeneklerine göre iş toplantısı için uygunluğunu değerlendirin.

    • Örnek istem: "Cafe Central"da kablosuz internet var mı? Kahve servisi var mı? Fiyat seviyeleri nedir ve kredi kartı kabul ediyorlar mı?

Google MapsTemellendirilmiş Sonuçlar bölümündeki bilgilerin yolun gerçek koşullarından farklı olabileceğini unutmayın.

Google Maps ile temellendirme nasıl çalışır?

Modele GoogleMaps aracını sağladığınızda model, arama, işleme ve bilgi alıntılamanın tüm iş akışını otomatik olarak yönetir.

Modelin iş akışı şu şekildedir:

  1. İstem alır: Uygulamanız, GoogleMaps aracı etkinleştirilmiş şekilde Gemini modeline bir istem gönderir.

  2. İstemi analiz eder: Model, istemi analiz ederek yanıtını iyileştirip iyileştiremeyeceğini belirler. Örneğin, istemde coğrafi bağlam (ör. "yakınımdaki kafeler", "İstanbul'daki müzeler") olup olmadığını kontrol eder.Google Maps

  3. Aracı çağırır: Coğrafi amaca yönelik olduğunu anlayan model, Google Maps aracıyla temellendirme yapar.

  4. Google Maps'e sorgu gönderir: Google Maps ile Temellendirme hizmeti, alakalı bilgiler (ör. yerler, yorumlar, fotoğraflar, adresler, çalışma saatleri) için Google Maps'e sorgu gönderir.

    Daha alakalı ve kişiselleştirilmiş Google Maps sonuçlar için enlem ve boylamı isteğe bağlı olarak aracın yapılandırmasına (hatta doğrudan isteme) ekleyebilirsiniz. Bu araç, metin tabanlı bir arama aracıdır ve Google Maps'da arama yapmaya benzer şekilde çalışır. Yerel sorgular ("yakınımda") koordinatları kullanırken belirli veya yerel olmayan sorguların açık konumdan etkilenmesi olası değildir.

  5. Google Maps sonuçlarını işler: Model, Google Maps sonuçlarını işler ve orijinal isteme yanıt oluşturur.

  6. Google Maps Temellendirilmiş Sonuç döndürüyor: Model, Google Maps sonuçlarına dayalı, son ve kullanıcı dostu bir yanıt döndürüyor. Bu yanıtta şunlar yer alır:

    • Modelin metin yanıtı.
    • Google Maps sonuçları ve kaynakları içeren groundingMetadata nesnesi.
    • (Yalnızca Web SDK'sı) İsteğe bağlı olarak, görsel etkileşim için uygulamanızda bağlama duyarlı bir Google Maps widget'ı oluşturmanıza olanak tanıyan bir googleMapsWidgetContextToken. Bağlama dayalı widget hakkında daha fazla bilgi için Google Maps belgelerindeki Google Maps widget'ı ile temellendirme bölümüne bakın.

Google Maps'yı modele araç olarak sağlamanın, modelin yanıtını oluşturmak için her zaman Google Maps aracını kullanmasını gerektirmediğini unutmayın. Bu durumlarda yanıtta groundingMetadata nesnesi bulunmaz ve bu nedenle Google Maps Temellendirilmiş Sonuç değildir.

Temellendirilmiş sonucu anlama

Model, yanıtını Google Maps sonuçlarına dayandırıyorsa yanıtta, iddiaları doğrulamak ve uygulamanızda zengin bir kaynak deneyimi oluşturmak için gerekli olan yapılandırılmış verileri içeren bir groundingMetadata nesnesi bulunur.

Google Maps Temellendirilmiş Sonuç'taki groundingMetadata nesnesi aşağıdaki bilgileri içerir:

  • groundingChunks: maps kaynaklarını (uri, placeId ve title) içeren bir nesne dizisi.
  • groundingSupports: Model yanıtı text ile groundingChunks içindeki kaynakları bağlamak için kullanılan bir parça dizisi. Her parça, bir metni segment (startIndex ve endIndex ile tanımlanır) bir veya daha fazla groundingChunkIndices ile bağlar. Bu alan, satır içi kaynak bağlantıları oluşturmanıza yardımcı olur. Bu sayfanın ilerleyen bölümlerinde hizmet kullanım şartlarını nasıl karşılayacağınızı öğrenebilirsiniz.
  • (Yalnızca Web SDK'sı) googleMapsWidgetContextToken: Bağlama duyarlı bir Yerler widget'ı oluşturmak için kullanılabilecek bir metin jetonu. Bu alan yalnızca Web SDK'sı kullanılırken ve enableWidget parametresini true olarak ayarladıysanız döndürülür.

groundingMetadata nesnesi içeren bir örnek yanıtı aşağıda bulabilirsiniz:

{
  "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/..."
      }
    }
  ]
}

Hizmet kullanım şartları

Bu bölümde, seçtiğiniz Gemini API sağlayıcısı için Google Maps ile Temellendirme'nin hizmet kullanım şartları açıklanmaktadır: Gemini Developer API veya Vertex AI Gemini API (Hizmete Özel Şartlar'daki Hizmet Şartları bölümüne bakın).

Kullanıcıları Google Maps kaynakları hakkında bilgilendirme

Her Google Maps Temellendirilmiş Sonuç ile birlikte, her yanıtı destekleyen kaynaklar groundingChunks olarak sağlanır. Aşağıdaki meta veriler de döndürülür:

  • kaynak URI
  • ünvan
  • Kimlik

Uygulamanızda, Google Maps ile Temellendirme'den elde edilen sonuçları sunarken ilişkili Google Maps kaynaklarını belirtmeli ve kullanıcılarınızı aşağıdakiler hakkında bilgilendirmelisiniz:

  • Google Maps kaynakları, kaynakların desteklediği oluşturulmuş içeriği hemen takip etmelidir. Bu şekilde oluşturulan içeriklere Google Maps Temellendirilmiş Sonuç da denir.

  • Google Maps kaynakları, tek bir kullanıcı etkileşimi içinde görüntülenebilmelidir.

Google Maps Temellendirilmiş Sonuç'tan kaynakları gösterme değerlerini nasıl alacağınız aşağıda açıklanmıştır:

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

groundingChunks içindeki her kaynak için aşağıdaki koşullara uygun bir bağlantı önizlemesi oluşturulmalıdır:

Kaynakları gösteren yanıtla istem

Kaynakların görünümünü daraltabilirsiniz.

Yanıt ve kaynakların daraltıldığı istem

İsteğe bağlı olarak, bağlantı önizlemesini aşağıdaki gibi ek içeriklerle zenginleştirebilirsiniz:

  • Google Maps Metin ilişkilendirmesinden önce Google Maps favicon eklenir.
  • Kaynak URL'deki (og:image) bir fotoğraf.

Bazı Google Maps veri sağlayıcılar ve lisans şartları hakkında daha fazla bilgi için Google Haritalar ve Google Earth yasal bildirimleri'ne bakın.

Google Maps metin atıfı kuralları

Metin içinde kaynakları Google Maps ile ilişkilendirirken aşağıdaki yönergeleri uygulayın:

  • Google Maps metnini hiçbir şekilde değiştirmeyin:

    • Metnin büyük harf kullanımını değiştirmeyin Google Maps.
    • Metni Google Maps birden fazla satıra sarmayın.
    • Google Maps metnini başka bir dilde yerelleştirmeyin.
    • translate="no" HTML özelliğini kullanarak tarayıcıların Google Maps metnini çevirmesini engelleyin.
  • Metni Google Maps aşağıdaki tabloda açıklandığı şekilde biçimlendirin:

    Özellik Stil
    Yazı tipi ailesi Roboto. Yazı tipini yüklemek isteğe bağlıdır.
    Yedek yazı tipi ailesi Ürününüzde zaten kullanılan herhangi bir sans serif gövde yazı tipi veya varsayılan sistem yazı tipini çağırmak için "Sans-Serif"
    Yazı tipi stili Normal
    Yazı tipi kalınlığı 400
    Yazı tipi rengi Beyaz, siyah (#1F1F1F) veya gri (#5E5E5E). Arka planla erişilebilir (4.5:1) kontrastı koruyun.
    Yazı tipi boyutu Minimum yazı tipi boyutu: 12 sp
    Maksimum yazı tipi boyutu: 16 sp
    sp hakkında bilgi edinmek için Materyal Tasarım web sitesindeki Yazı tipi boyutu birimleri başlıklı makaleyi inceleyin.
    Boşluk Normal

Örnek CSS

Aşağıdaki CSS, Google Maps metnini beyaz veya açık renkli bir arka planda uygun tipografik stil ve renkle oluşturur.

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

Bağlam jetonunun ve yer kimliğinin önbelleğe alınması

Google Maps Temellendirilmiş sonuç, bağlam jetonu ve yer kimliği içerebilir. Aşağıdaki yanıt verilerini önbelleğe alabilir, depolayabilir ve dışa aktarabilirsiniz:

  • (Yalnızca Web SDK'sı) googleMapsWidgetContextToken
  • placeId

Google Haritalar ile Temellendirme Şartları'ndaki önbelleğe alma kısıtlamaları bu veriler için geçerli değildir.

Yasaklanan etkinlikler ve bölgeler

Google Maps ile temellendirme, güvenli ve güvenilir bir platform sağlamak için belirli içerik ve etkinliklerle ilgili ek kısıtlamalara tabidir. Seçtiğiniz Gemini API sağlayıcının Şartlar'ındaki kullanım kısıtlamalarına ek olarak: Gemini Developer API veya Vertex AI Gemini API (Hizmete Özel Şartlar'daki Hizmet Şartları bölümüne bakın).

  • Acil durum müdahale hizmetleri de dahil olmak üzere yüksek riskli faaliyetler için Google Maps ile Temellendirme'yi kullanmayacaksınız.

  • Google Maps ile Grounding sunan uygulamanızı Yasak Bölge'de dağıtmayacak veya pazarlamayacaksınız. Daha fazla bilgi için Google Haritalar Platformu'nun Yasak Olduğu Bölgeler başlıklı makaleyi inceleyin. Yasaklı Bölgeler listesi zaman zaman güncellenebilir.

Firebase konsolunda temellendirilmiş sonuçlar ve yapay zeka izleme

Firebase konsolunda yapay zeka izlemeyi etkinleştirdiyseniz yanıtlar Cloud Logging içinde saklanır. Bu verilerin varsayılan olarak 30 günlük bir saklama süresi vardır.

Bu saklama süresinin veya belirlediğiniz özel sürenin, özel kullanım alanınızla ve seçtiğiniz Gemini API sağlayıcının ek uygunluk koşullarıyla tam olarak uyumlu olmasını sağlamak sizin sorumluluğunuzdadır: Gemini Developer API veya Vertex AI Gemini API (Hizmete Özgü Şartlar bölümündeki Hizmet Şartları'na bakın). Bu koşulları karşılamak için Cloud Logging'deki saklama süresini ayarlamanız gerekebilir.

Fiyatlandırma ve sıklık sınırları

Google Maps ile temellendirme fiyatlandırması sorgulara göre belirlenir. Bir istem, en az bir Google Maps Temellendirilmiş Sonuç döndürdüğünde (yani yanıt en az bir Google Maps kaynağı içerdiğinde) yalnızca Google Maps kotasına dahil edilir. Tek bir istekten Google Maps adresine birden fazla sorgu gönderilirse bu, sıklık sınırına göre tek bir istek olarak sayılır.

Seçtiğiniz Gemini API sağlayıcının belgelerinde Google Maps ile Temellendirme'nin fiyatlandırması, model kullanılabilirliği ve sınırları hakkında ayrıntılı bilgi edinin: Gemini Developer API | Vertex AI Gemini API.