Tính năng dựa trên dữ liệu của
Tính năng dựa trên dữ liệu của
- Tăng độ chính xác về mặt thực tế: Giảm hiện tượng mô hình tạo ra thông tin không có thật bằng cách dựa trên cơ sở dữ liệu của Google về hơn 250 triệu địa điểm và doanh nghiệp trong thế giới thực.
- 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ờ mở cửa hiện tại và trạng thái theo thời gian thực của các trạm sạc xe điện.
- Cung cấp bối cảnh trực quan: Xây dựng lòng 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 thông tin dựa trên vị trí của mô hình.
Mô hình được hỗ trợ
gemini-3.1-pro-previewgemini-3.5-flashgemini-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 mô hình Gemini.
Dựa trên dữ liệu của Google Maps cho mô hình
|
Nhấp vào nhà cung định Gemini API để xem nội dung dành riêng cho nhà cung cấp và mã trên trang này. |
Khi bạn tạo thực thể GenerativeModel, hãy cung cấp GoogleMaps làm tool mà mô hình có thể sử 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ô hình phù hợp với trường hợp sử dụng và ứng dụng của bạn.
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 dựa trên dữ liệu 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ỉ cung cấp cho mô hình quyền truy cập vào công cụ dựa trên dữ liệu của
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â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 đưa 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ụ dựa trên dữ liệu củaGoogle 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 sử dụng để trả lời câu hỏi của họ. Việc 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ụ dựa trên dữ liệu củaGoogle Maps .(Chỉ SDK web) Kết xuất tiện ích theo bối cảnh của
Google Maps : Tiện ích theo bối cảnh được kết xuất bằng mã thông báo theo bối cảnh,googleMapsWidgetContextToken. Mã thông báo này được trả về trong câu trả lời của 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 Tiện ích dựa trên dữ liệu củaGoogle Maps trong tài liệu vềGoogle Maps .
Sử dụng thuộc tính địa điểm trong câu lệnh
Phần này liệt kê thuộc tính địa điểm được dùng để mô tả địa điểm
và được tính năng dựa trên dữ liệu của
Thuộc tính địa điểm mẫu
Danh sách này cung cấp mẫu thuộc tính về địa điểm theo bảng chữ cái mà mô hình của bạn có thể sử 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
- 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 của tính năng dựa trên dữ liệu của
Câu lệnh mẫu sử dụng thuộc tính đị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 dựa trên dữ liệu của
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à liệu nhà hàng đó có cung cấp dịch vụ tiện lợi hay không.
- Câu lệnh 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 về không? Xếp hạng của họ là bao nhiêu?
Kiểm tra khả năng tiếp cận cho một người bạn: 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 mẫu: Tôi cần một nhà hàng có lối vào cho xe lăn.
Tìm địa điểm để ăn nhẹ vào đêm muộn: Tìm một cơ sở đang mở cửa và phục vụ một bữa ăn cụ thể trong một khoảng thời gian cụ thể.
- Câu lệnh mẫu: "Burger Joint" có mở cửa vào lúc này 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à bao nhiêu?
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, dịch vụ và phương thức thanh toán.
- Câu lệnh mẫu: "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 dựa trên dữ liệu với Google Maps
Khi bạn cung cấp cho mô hình công cụ GoogleMaps, 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 của mô hình:
Nhận câu lệnh: Ứng dụng của bạn gửi 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, chẳng hạn như nếu câu lệnh chứa bối cảnh địa lý (như "quán cà phê gần tôi", "bảo tàng ở San Francisco").Gọi công cụ: Mô hình, nhận ra ý định địa lý, sẽ gọi công cụ dựa trên dữ liệu của
Google Maps .Gửi truy vấn đến
Google Maps : Dịch vụ dựa trên dữ liệu củaGoogle Maps 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ỳ ý đưa vĩ độ và kinh độ vào cấu hình của công cụ (hoặc thậm chí chỉ trong câu lệnh) để có kết quả phù hợp và được cá nhân hoá hơn
Google Maps . Công cụ 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ư tìm kiếm trênGoogle Maps , trong đó các truy vấn tại địa phương ("gần tôi") sẽ sử dụng toạ độ, còn các truy vấn cụ thể hoặc không phải tại địa phương sẽ ít 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ả dựa trên dữ liệu: Mô hình trả về câu trả lời cuối cùng, thân thiện với người dùng và dựa trên kết quảGoogle Maps . 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.
- Đối tượng
groundingMetadatacó kết quảGoogle Maps và nguồn. - (Chỉ SDK web) Tuỳ ý googleMapsWidgetContextToken cho phép bạn
kết xuất tiện ích theo ngữ cảnh
Google Maps trong ứng dụng để 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 Tiện ích dựa trên dữ liệu củaGoogle Maps widget trong tài liệu vềGoogle Maps .
Xin lưu ý rằng việc cung cấp groundingMetadata và do đó
câu trả lời đó không phải là
Tìm hiểu kết quả dựa trên dữ liệu
Nếu mô hình dựa trên câu trả lời của mình vào kết quả groundingMetadata chứa dữ liệu có cấu trúc cần thiết
để xác minh thông tin 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 Kết quả dựa trên dữ liệu
groundingChunks: Một mảng đố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 câu trả lờitextcủa mô hình với các nguồn tronggroundingChunks. Mỗi đoạn liên kết mộtsegmentvăn bản (được xác định bởistartIndexvàendIndex) với một hoặc nhiềugroundingChunkIndices. Trường này giúp bạn xây dựng các đường liên kết nguồn nội tuyến. 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 trên trang này.- (Chỉ SDK web)
googleMapsWidgetContextToken: Mã thông báo văn bản có thể dùng để kết xuất tiện ích Địa điểm theo bối cảnh. Trường này chỉ được trả về khi bạn sử dụng SDK web và nếu bạn đã đặt tham sốenableWidgetthànhtrue.
Dưới đây là câu trả lời mẫu 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ụ đối với tính năng dựa trên dữ liệu của
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 bạn, khi trình bày kết quả từ tính năng dựa trên dữ liệu của
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ả dựa trên dữ liệu.Người dùng phải xem được các nguồn
Google Maps trong một lượt tương tác.
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 bằng đườ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 cung cấp trong câu trả lời.
- Liên kết đến nguồn bằng
uritrong câu trả lời.
Bạn có thể thu gọn chế độ xem các 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
Google Maps favicon được chèn trước thông tin phân bổ văn bản.Google 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 phân bổ văn bản
Khi bạn phân bổ 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 chuyển văn bản
Google Mapssang 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 Bất kỳ phông chữ không chân nào đã được sử dụng trong sản phẩm của bạn hoặc "Sans-Serif" để gọi phông chữ mặc định của hệ thống 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 có thể 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 kết xuất 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 vào bộ nhớ đệm mã thông báo theo bối cảnh và mã địa điểm
Kết quả dựa trên dữ liệu của
- (Chỉ SDK web)
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 về tính năng dựa trên dữ liệu của 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 dựa trên dữ liệu của
Bạn sẽ không sử dụng tính năng dựa trên dữ liệu của
Google Maps cho các hoạt động có rủi ro cao bao gồm 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 dựa trên dữ liệu của Google Maps với
Google Maps ở Lãnh thổ bị cấm. Để biết thêm thông tin, hãy xem phần Lãnh thổ bị cấm của Google Maps Platform. Danh sách Lãnh thổ bị cấm có thể được cập nhật theo thời gian.
Kết quả dựa trên dữ liệu và tính năng giám sát AI trong bảng điều khiển của Firebase
Nếu bạn đã bật tính năng giám sát AI trong bảng điều khiển, thì các câu trả lời sẽ được lưu trữ trong Cloud Logging.FirebaseCloud Logging Theo mặc định, dữ liệu này có thời gian lưu giữ là 30 ngày.
Bạn có trách nhiệm đảm bảo rằ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 Điều khoản dịch vụ trong Điều khoản dành riêng cho dịch vụ). Bạn có thể cần điều chỉnh thời gian lưu giữ trong Cloud Logging để đáp ứng các yêu cầu này.
Giá và hạn mức về giá
Giá của tính năng dựa trên dữ liệu của
Hãy nhớ xem 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 dựa trên dữ liệu của