Tính năng bám sát nguồn với
Việc tiếp đất bằng
- Tăng độ chính xác về thông tin thực tế: Giảm hiện tượng ảo giác của mô hình bằng cách dựa vào cơ sở dữ liệu của Google về hơn 250 triệu địa điểm và doanh nghiệp thực tế.
- Truy cập thông tin theo thời gian thực: Trả lời câu hỏi bằng dữ liệu trực tiếp, chẳng hạn như giờ hoạt động hiện tại và trạng thái theo thời gian thực của trạm sạc xe điện.
- Cung cấp bối cảnh trực quan: Xây dựng niềm tin của người dùng bằng cách tích hợp các tiện ích bản đồ tương tác, ảnh và Chế độ xem đường phố ngay bên cạnh các tuyên bố dựa trên vị trí của mô hình.
Các mô hình được hỗ trợ
gemini-3.1-pro-previewgemini-3-flash-previewgemini-3.1-flash-litegemini-2.5-progemini-2.5-flashgemini-2.5-flash-lite
Ngôn ngữ được hỗ trợ
Xem các ngôn ngữ được hỗ trợ cho các mô hình Gemini.
Cung cấp thông tin cơ sở cho mô hình bằng Google Maps
|
Nhấp vào nhà cung cấp Gemini API để xem nội dung và mã dành riêng cho nhà cung cấp trên trang này. |
Khi bạn tạo phiên bản GenerativeModel, hãy cung cấp GoogleMaps dưới dạng tool mà mô hình có thể dùng để tạo câu trả lời.
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
Tìm hiểu cách chọn một mô hình phù hợp với trường hợp sử dụng và ứng dụng của bạn.
Để có kết quả lý tưởng, hãy sử dụng nhiệt độ 1.0 (đây là giá trị mặc định cho tất cả các mô hình Gemini 2.5 trở lên). Tìm hiểu cách đặt nhiệt độ trong cấu hình của mô hình.
Các phương pháp hay nhất và mẹo để cải thiện kết quả
Phần này mô tả một số phương pháp hay nhất chung để sử dụng tính năng Nền tảng với
Các phương pháp chung hay nhất
Chỉ cung cấp công cụ khi cần: Để tối ưu hoá hiệu suất và chi phí, hãy chỉ cấp cho mô hình quyền truy cập vào công cụ Nền tảng với
Google Maps khi trường hợp sử dụng có bối cảnh địa lý rõ ràng.Cung cấp vị trí của người dùng: Để có được những câu trả lời phù hợp và được cá nhân hoá nhất (và khi biết vị trí của người dùng), hãy thêm vị trí của người dùng (sử dụng vĩ độ và kinh độ thông qua
latLng) vào cấu hình công cụ Grounding bằngGoogle Maps .Thông báo cho người dùng cuối: Thông báo rõ ràng cho người dùng cuối rằng dữ liệu
Google Maps đang được dùng để trả lời các câu hỏi của họ. Cung cấp cho người dùng cuối các nguồn từGoogle Maps là một yêu cầu về việc sử dụng dịch vụ đối với công cụ Grounding withGoogle Maps .(Chỉ SDK web) Kết xuất tiện ích theo bối cảnh
Google Maps : Tiện ích theo bối cảnh được kết xuất bằng mã thông báo bối cảnhgoogleMapsWidgetContextToken. Mã thông báo này được trả về trong phản hồi Gemini API và có thể dùng để kết xuất nội dung trực quan từGoogle Maps . Để biết thêm thông tin về tiện ích theo bối cảnh, hãy xem phần Căn cứ vào tiện íchGoogle Maps trong tài liệu vềGoogle Maps .
Sử dụng các thuộc tính địa điểm trong câu lệnh
Phần này liệt kê các thuộc tính của địa điểm được dùng để mô tả các vị trí và được Grounding bằng
Thuộc tính mẫu của địa điểm
Danh sách này cung cấp thông tin mẫu theo bảng chữ cái về những thuộc tính của các địa điểm mà mô hình của bạn có thể dùng để tạo câu trả lời.
- Địa chỉ
- Nhận hàng ở lề đường
- Thẻ ghi nợ
- Khoảng cách
- Bãi đỗ xe miễn phí
- Nhạc sống
- Thực đơn cho trẻ em
- Giờ mở cửa
- Các phương thức thanh toán (chẳng hạn như tiền mặt hoặc thẻ tín dụng)
- Câu trả lời về địa điểm
- Cho phép mang theo thú cưng
- Phục vụ bia
- Phục vụ đồ ăn chay
- Có lối đi cho xe lăn
- Wi-Fi
Câu trả lời về địa điểm là câu trả lời từ tính năng Grounding bằng
Ví dụ về câu lệnh sử dụng các thuộc tính của địa điểm
Các ví dụ sau đây sử dụng thuộc tính địa điểm trong câu lệnh về nhiều loại địa điểm. Tính năng bám sát nguồn bằng
Lên kế hoạch cho bữa tối gia đình: Xác định xem một nhà hàng có phù hợp với gia đình hay không và nhà hàng đó có cung cấp dịch vụ thuận tiện hay không.
- Câu hỏi mẫu: "The Italian Place" có phù hợp với trẻ em không và họ có cung cấp dịch vụ mang đi không? Mức phân loại của họ là gì?
Kiểm tra khả năng tiếp cận cho bạn bè: Xác định xem địa điểm có đáp ứng các nhu cầu cụ thể về khả năng tiếp cận hay không.
- Câu lệnh ví dụ: Tôi cần một nhà hàng có lối vào cho xe lăn.
Tìm địa điểm ăn đêm: Tìm một cơ sở đang mở cửa và phục vụ một bữa ăn cụ thể vào một thời điểm nhất định.
- Câu lệnh ví dụ: "Burger Joint" có đang mở cửa không? Họ có phục vụ bữa tối không? Giờ mở cửa của họ vào thứ Sáu là mấy giờ?
Gặp gỡ khách hàng để uống cà phê: Đánh giá mức độ phù hợp của một quán cà phê cho cuộc họp kinh doanh dựa trên các tiện nghi, sản phẩm/dịch vụ và phương thức thanh toán.
- Ví dụ về câu lệnh: "Cafe Central" có Wi-Fi không? Họ có phục vụ cà phê không? Mức giá của họ là bao nhiêu và họ có chấp nhận thẻ tín dụng không?
Xin lưu ý rằng thông tin trong
Cách hoạt động của tính năng Grounding với Google Maps
Khi bạn cung cấp công cụ GoogleMaps cho mô hình, mô hình sẽ tự động xử lý toàn bộ quy trình tìm kiếm, xử lý và trích dẫn thông tin.
Sau đây là quy trình làm việc của mô hình:
Nhận câu lệnh: Ứng dụng của bạn gửi một câu lệnh đến mô hình Gemini khi công cụ
GoogleMapsđược bật.Phân tích câu lệnh: Mô hình phân tích câu lệnh và xác định xem
Google Maps có thể cải thiện câu trả lời hay không, ví dụ: nếu câu lệnh chứa bối cảnh địa lý (chẳng hạn như "quán cà phê gần tôi", "bảo tàng ở San Francisco").Gọi công cụ: Mô hình, khi nhận ra ý định về vị trí địa lý, sẽ gọi công cụ Grounding with
Google Maps .Gửi cụm từ tìm kiếm đến
Google Maps : Dịch vụ Grounding withGoogle Maps (Căn cứ vàoGoogle Maps ) sẽ truy vấnGoogle Maps để tìm thông tin liên quan (ví dụ: địa điểm, bài đánh giá, ảnh, địa chỉ, giờ mở cửa).Bạn có thể tuỳ ý thêm vĩ độ và kinh độ vào cấu hình của công cụ (hoặc thậm chí chỉ cần thêm trực tiếp vào câu lệnh) để có kết quả
Google Maps phù hợp và được cá nhân hoá hơn. Đây là một công cụ tìm kiếm bằng văn bản và hoạt động tương tự như khi bạn tìm kiếm trênGoogle Maps , trong đó các cụm từ tìm kiếm tại địa phương ("gần tôi") sẽ sử dụng toạ độ, còn các cụm từ tìm kiếm cụ thể hoặc không phải tại địa phương sẽ khó bị ảnh hưởng bởi vị trí rõ ràng.Xử lý kết quả
Google Maps : Mô hình xử lý kết quảGoogle Maps và đưa ra câu trả lời cho câu lệnh ban đầu.Trả về
Google Maps Kết quả có căn cứ: Mô hình trả về một câu trả lời cuối cùng, thân thiện với người dùng và có căn cứ dựa trênGoogle Maps kết quả. Câu trả lời này bao gồm:- Câu trả lời bằng văn bản của mô hình.
- Một đối tượng
groundingMetadatacó kết quả và nguồnGoogle Maps . - (Chỉ dành cho Web SDK) Bạn có thể chọn sử dụng googleMapsWidgetContextToken để hiển thị một tiện ích
Google Maps theo bối cảnh trong ứng dụng của mình để tương tác trực quan. Để biết thêm thông tin về tiện ích theo bối cảnh, hãy xem phần Căn cứ vào tiện íchGoogle Maps trong tài liệu vềGoogle Maps .
Xin lưu ý rằng việc cung cấp groundingMetadata và do đó, đây không phải là
Tìm hiểu kết quả có căn cứ
Nếu mô hình dựa vào kết quả groundingMetadata chứa dữ liệu có cấu trúc cần thiết để xác minh các tuyên bố và xây dựng trải nghiệm nguồn phong phú trong ứng dụng của bạn.
Đối tượng groundingMetadata trong
groundingChunks: Một mảng các đối tượng chứa các nguồnmaps(uri,placeIdvàtitle).groundingSupports: Một mảng các đoạn để kết nối phản hồi của mô hìnhtextvới các nguồn tronggroundingChunks. Mỗi đoạn liên kết một văn bảnsegment(dostartIndexvàendIndexxác định) với một hoặc nhiềugroundingChunkIndices. Trường này giúp bạn tạo đường liên kết đến nguồn cùng dòng. Tìm hiểu cách đáp ứng các yêu cầu về việc sử dụng dịch vụ ở phần sau của trang này.- (Chỉ dành cho Web SDK)
googleMapsWidgetContextToken: Mã thông báo văn bản có thể dùng để hiển thị một tiện ích Places theo bối cảnh. Trường này chỉ được trả về khi bạn sử dụng Web SDK và nếu bạn đã đặt tham sốenableWidgetthànhtrue.
Sau đây là một ví dụ về phản hồi bao gồm đối tượng 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/..."
}
}
]
}
Yêu cầu về việc sử dụng dịch vụ
Phần này mô tả các yêu cầu về việc sử dụng dịch vụ cho tính năng Grounding with
Thông báo cho người dùng về các nguồn Google Maps
Với mỗi groundingChunks hỗ trợ từng câu trả lời. Siêu dữ liệu sau đây cũng được trả về:
- uri nguồn
- tiêu đề
- giấy tờ tùy thân
Trong ứng dụng của mình, khi trình bày kết quả từ tính năng Grounding with
Các nguồn
Google Maps phải nằm ngay sau nội dung được tạo mà các nguồn đó hỗ trợ. Nội dung được tạo này còn được gọi làGoogle Maps Kết quả có căn cứ.Người dùng phải xem được các nguồn
Google Maps trong một lượt tương tác của người dùng.
Sau đây là cách lấy các giá trị để hiển thị nguồn từ
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
}
}
}
Hiển thị các nguồn Google Maps có đường liên kết Google Maps
Đối với mỗi nguồn trong groundingChunks, bạn phải tạo bản xem trước đường liên kết theo các yêu cầu sau:
- Phân bổ từng nguồn cho
Google Maps theoGoogle Maps nguyên tắc phân bổ văn bản. - Hiển thị tiêu đề nguồn có trong câu trả lời.
- Liên kết đến nguồn bằng cách sử dụng
uritrong câu trả lời.
Bạn có thể thu gọn chế độ xem nguồn.
Nếu muốn, bạn có thể cải thiện bản xem trước đường liên kết bằng nội dung bổ sung, chẳng hạn như:
- Một biểu tượng
Google Maps favicon được chèn trước phần ghi công văn bảnGoogle Maps . - Ảnh từ URL nguồn (
og:image).
Để biết thêm thông tin về một số nhà cung cấp dữ liệu
Google Maps nguyên tắc về văn bản ghi công
Khi ghi nguồn cho
Đừng sửa đổi văn bản
Google Mapstheo bất kỳ cách nào:- Đừng thay đổi cách viết hoa của văn bản
Google Maps. - Đừng xuống dòng văn bản
Google Mapsthành nhiều dòng. - Đừng bản địa hoá văn bản
Google Mapssang ngôn ngữ khác. - Ngăn trình duyệt dịch văn bản
Google Mapsbằng cách sử dụng thuộc tính HTMLtranslate="no".
- Đừng thay đổi cách viết hoa của văn bản
Tạo kiểu cho văn bản
Google Mapsnhư mô tả trong bảng sau:Tài sản Phong cách Bộ phông chữ Roboto. Bạn không bắt buộc phải tải phông chữ. Bộ phông chữ dự phòng Mọi phông chữ không chân đã được dùng trong sản phẩm của bạn hoặc "Sans-Serif" để gọi phông chữ hệ thống mặc định Kiểu phông chữ Bình thường Độ đậm phông chữ 400 Màu phông chữ Trắng, đen (#1F1F1F) hoặc xám (#5E5E5E). Duy trì độ tương phản dễ tiếp cận (4,5:1) so với nền. Cỡ chữ Cỡ chữ tối thiểu: 12sp
Cỡ chữ tối đa: 16sp
Để tìm hiểu về sp, hãy xem phần Đơn vị cỡ chữ trên trang web Material Design.Giãn cách Bình thường
Ví dụ về CSS
CSS sau đây sẽ hiển thị văn bản Google Maps với kiểu chữ và màu sắc phù hợp trên nền trắng hoặc nền sáng.
@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;
}
Lưu mã thông báo ngữ cảnh và mã địa điểm vào bộ nhớ đệm
- (Chỉ Web SDK)
googleMapsWidgetContextToken placeId
Các quy định hạn chế đối với việc lưu vào bộ nhớ đệm trong Điều khoản Kết nối với Google Maps không áp dụng cho dữ liệu này.
Hoạt động và lãnh thổ bị cấm
Tính năng tiếp đất bằng
Bạn sẽ không sử dụng tính năng Ngừng hoạt động với
Google Maps cho các hoạt động có mức độ rủi ro cao, kể cả dịch vụ ứng phó khẩn cấp.Bạn sẽ không phân phối hoặc tiếp thị ứng dụng cung cấp tính năng Grounding bằng
Google Maps ở Lãnh thổ bị cấm. Để biết thêm thông tin, hãy xem Các lãnh thổ bị cấm của Google Maps Platform. Danh sách Các lãnh thổ bị cấm có thể được cập nhật tuỳ từng thời điểm.
Kết quả dựa trên thông tin thực tế và hoạt động giám sát bằng AI trong bảng điều khiển Firebase
Nếu bạn đã bật tính năng giám sát bằng AI trong bảng điều khiển Firebase, thì các câu trả lời sẽ được lưu trữ trong Cloud Logging. Theo mặc định, dữ liệu này có khoảng thời gian lưu giữ là 30 ngày.
Bạn có trách nhiệm đảm bảo rằng khoảng thời gian lưu giữ này hoặc bất kỳ khoảng thời gian tuỳ chỉnh nào mà bạn đặt đều hoàn toàn phù hợp với trường hợp sử dụng cụ thể của bạn và mọi yêu cầu bổ sung về việc tuân thủ đối với nhà cung cấp Gemini API mà bạn chọn: Gemini Developer API hoặc Vertex AI Gemini API (xem phần Điều khoản dịch vụ trong Điều khoản dành riêng cho từng dịch vụ). Bạn có thể cần phải điều chỉnh khoảng thời gian lưu giữ trong Cloud Logging để đáp ứng những yêu cầu này.
Mức giá và hạn mức
Việc đưa ra thông tin cơ sở với mức giá
Hãy nhớ xem kỹ thông tin chi tiết về giá, phạm vi cung cấp mô hình và hạn mức cho tính năng Cơ sở dữ liệu với