Tài liệu này liệt kê các yêu cầu dành riêng cho tất cả ứng dụng được phát triển bằng SDK Địa điểm cho iOS, bao gồm cả dịch vụ Place Autocomplete thuộc API đó. Bạn có thể xem thêm thông tin chung dành cho nhà phát triển Google Maps trong Điều khoản dịch vụ của Google Maps Platform.
Chính sách
Phần này mô tả các chính sách liên quan đến SDK Địa điểm cho iOS. Các chính sách cung cấp các nguyên tắc và yêu cầu triển khai thực tế để giúp bạn sử dụng Dịch vụ một cách chính xác và phù hợp với kỳ vọng của Google Maps Platform.
Lưu trữ, lưu vào bộ nhớ đệm và trích xuất dữ liệu
Khi sử dụng Nội dung trên Google Maps trong ứng dụng, hãy tuân thủ các yêu cầu về việc xử lý dữ liệu trong Mục 3.2.3 của Điều khoản dịch vụ của Google Maps Platform và Điều khoản dành riêng cho dịch vụ của Google Maps Platform:
- Các quy định hạn chế về việc lưu vào bộ nhớ đệm và trích xuất dữ liệu (Mục 3.2.3(a) và (b)): Chỉ lưu vào bộ nhớ đệm hoặc lưu trữ Nội dung trên Google Maps theo đúng quy định trong Điều khoản dành riêng cho dịch vụ của Google Maps Platform. Không xuất, trích xuất hoặc thu thập Nội dung trên Google Maps để sử dụng bên ngoài Dịch vụ. Ví dụ: không tìm nạp trước, lập chỉ mục, lưu trữ hoặc phân phối lại Nội dung trên Google Maps bên ngoài Dịch vụ; tải xuống hàng loạt ô bản đồ, hình ảnh trong Chế độ xem đường phố, mã địa lý, thông tin đường đi, kết quả ma trận khoảng cách, thông tin về đường, thông tin về địa điểm, giá trị độ cao hoặc thông tin chi tiết về múi giờ; hoặc sao chép và lưu tên doanh nghiệp, địa chỉ hoặc bài đánh giá của người dùng.
- Các giới hạn nội dung phái sinh (Mục 3.2.3(c)): Sử dụng Nội dung trên Google Maps trong ứng dụng của bạn theo quy định trong Điều khoản dịch vụ của Google Maps Platform. Không tạo nội dung dựa trên Nội dung của Google Maps. Ví dụ: không theo dõi hoặc số hoá các đối tượng từ hình ảnh vệ tinh, xây dựng mô hình 3D hoặc mô hình địa hình, sử dụng giá trị vĩ độ và kinh độ của Địa điểm làm dữ liệu đầu vào cho hoạt động phân tích điểm trong đa giác, xây dựng chỉ mục vị trí từ hình ảnh trong Chế độ xem đường phố hoặc chuyển đổi thời gian lái xe dựa trên văn bản thành lời nói tổng hợp.
Để giảm độ trễ và chi phí được lập hoá đơn mà không cần lưu dữ liệu bị hạn chế vào bộ nhớ đệm, hãy sử dụng mặt nạ trường hoặc danh sách trường để chỉ yêu cầu những trường mà giao diện người dùng của bạn cần. Lưu trữ các giá trị nhận dạng được miễn trừ, chẳng hạn như mã địa điểm, để tìm nạp thông tin chi tiết mới khi người dùng tương tác với một địa điểm.
Các kỹ sư hỗ trợ kỹ thuật của Google không thể tư vấn pháp lý hoặc đưa ra ngoại lệ đối với Điều khoản dịch vụ của Google Maps Platform. Hãy tham khảo ý kiến của cố vấn pháp lý để xác định xem việc triển khai của bạn có tuân thủ các điều khoản hay không, hoặc liên hệ với Nhóm bán hàng nếu trường hợp sử dụng của bạn yêu cầu cấp phép tuỳ chỉnh.
Các trường hợp ngoại lệ đối với quy định hạn chế về việc lưu vào bộ nhớ đệm
Điều khoản dành riêng cho dịch vụ của Google Maps Platform cho phép các trường hợp ngoại lệ giới hạn sau đây về việc lưu vào bộ nhớ đệm:
- Mã địa điểm: Mã địa điểm, dùng để xác định riêng một địa điểm, được miễn các quy định hạn chế về việc lưu vào bộ nhớ đệm.
Do đó, bạn có thể lưu trữ các giá trị mã địa điểm vô thời hạn. Mã địa điểm được trả về trong trường
idhoặcplace_idtrong phản hồi của API. Tìm hiểu cách lưu, làm mới và quản lý mã địa điểm trong hướng dẫn về Mã địa điểm. - Toạ độ vĩ độ và kinh độ: Bạn có thể lưu giá trị vĩ độ (
latitude) và kinh độ (longitude) vào bộ nhớ đệm tạm thời trong tối đa 30 ngày dương lịch liên tiếp. Sau đó, bạn phải xoá toạ độ đã lưu vào bộ nhớ đệm khi sử dụng các dịch vụ cho phép ngoại lệ này trong Điều khoản dành riêng cho dịch vụ của Google Maps Platform:- Routes API, Route Optimization API, Directions API (cũ) và Roads API
- Geocoding API, Geolocation API và Address Validation API
- Places API, Places UI Kit và Navigation SDK
- Thời gian lưu vào bộ nhớ đệm theo dịch vụ: Điều khoản dành riêng cho dịch vụ của Google Maps Platform cũng xác định thời gian lưu vào bộ nhớ đệm theo trường và các mục đích được phép đối với Address Validation API, Air Quality API, Pollen API, Solar API, Weather API và Places Aggregate API.
Các quốc gia và lãnh thổ thuộc Khu vực kinh tế Châu Âu
Sản phẩm này có Điều khoản dịch vụ khác dành cho khách hàng có địa chỉ thanh toán ở Khu vực kinh tế Châu Âu (EEA) và cũng có thể có chức năng khác. Trước khi xây dựng bằng Google Maps Platform, hãy xem các điều khoản và thông tin sau đây dành riêng cho Khu vực kinh tế Châu Âu (EEA):
- Điều khoản dịch vụ của Google Maps Platform tại Khu vực kinh tế Châu Âu (EEA)
- Điều khoản dành riêng cho dịch vụ của Google Maps Platform tại Khu vực kinh tế Châu Âu
- Câu hỏi thường gặp về Khu vực kinh tế Châu Âu (EEA)
- Yêu cầu về an toàn đường bộ của Google Maps Platform
Nếu địa chỉ thanh toán của bạn không nằm trong Khu vực kinh tế Châu Âu (EEA), thì bạn phải tuân thủ các điều khoản dịch vụ sau đây:
Yêu cầu về việc ghi công trên Google Maps
Phần này cung cấp các yêu cầu về thông tin ghi công và nguyên tắc hiển thị Google Maps và Nội dung thông qua ứng dụng của bạn.
Ví dụ phân bổ
Sau đây là ví dụ về thông tin ghi nhận tác giả cho Places UI Kit.
Hiển thị thông tin ghi nhận tác giả của Google Maps
Bạn phải tuân thủ các yêu cầu về thông tin ghi công của Google Maps khi hiển thị Nội dung từ các API của Google Maps Platform trong ứng dụng hoặc trang web của mình. Bạn không cần thêm thông tin ghi nhận tác giả bổ sung nếu Nội dung được hiển thị trên Google Maps, nơi thông tin ghi nhận tác giả đã xuất hiện.
Có chứa thông tin ghi nhận tác giả của Google Maps
Đối với thông tin ghi nhận tác giả của Google Maps mà Google Maps Platform đã cung cấp trong giao diện người dùng, chẳng hạn như trong Places UI Kit:
- Đừng xoá thông tin ghi nhận tác giả đi kèm, bất kể thông tin đó được hiển thị ở đâu. Đừng thay đổi, ẩn hoặc che khuất thông tin ghi nhận tác giả và hãy đảm bảo thông tin này hiển thị rõ ràng trên nền.
- Luôn phân biệt Nội dung trên Google Maps Platform với nội dung khác bằng cách sử dụng các dấu hiệu trên giao diện người dùng, chẳng hạn như đường viền, màu nền, bóng hoặc khoảng trắng vừa đủ.
- Khi sửa đổi hình ảnh, bạn phải tuân thủ tất cả các yêu cầu ghi nhận tác giả của Google Maps.
Biểu trưng và thông tin ghi công dạng văn bản của Google Maps
Thông tin ghi nhận tác giả phải có dạng biểu trưng Google Maps bất cứ khi nào có thể. Trong trường hợp không gian bị hạn chế, bạn có thể sử dụng văn bản Google Maps. Người dùng cuối phải luôn biết rõ nội dung nào do Google Maps cung cấp.
Thông tin ghi nhận tác giả biểu trưng
Hãy tuân thủ các yêu cầu sau khi sử dụng biểu trưng Google Maps trong ứng dụng hoặc trang web của bạn.Tải biểu trưng của Google Maps xuống
Sử dụng tệp biểu trưng chính thức của Google Maps. Tải các biểu trưng bên dưới xuống và làm theo nguyên tắc trong phần này.
Tải tài sản ghi nhận tác giả của Google Maps xuốngKhi sử dụng biểu trưng Google Maps, hãy tuân thủ các nguyên tắc sau.
- Đừng sửa đổi biểu trưng theo bất kỳ cách nào.
- Duy trì tỷ lệ khung hình của biểu trưng để tránh bị méo hình.
- Sử dụng biểu trưng có đường viền trên nền rối mắt, chẳng hạn như bản đồ hoặc hình ảnh.
- Sử dụng biểu trưng không có đường viền trên nền trơn, chẳng hạn như màu đồng nhất hoặc dải màu tinh tế.
Quy cách về kích thước biểu trưng
Hãy tuân thủ các quy cách về kích thước sau đây cho biểu trưng Google Maps:- Chiều cao tối thiểu của biểu trưng: 16 dp
- Chiều cao tối đa của biểu trưng: 19 dp
- Khoảng trống tối thiểu xung quanh biểu trưng: 10 dp ở bên trái, bên phải và phía trên, 5 dp ở phía dưới
Để tìm hiểu về dp, hãy xem phần Mật độ pixel trên trang web Material Design.
Hỗ trợ tiếp cận biểu trưng
Hãy tuân thủ các yêu cầu sau đây về khả năng hỗ trợ tiếp cận đối với biểu trưng của Google Maps:- Duy trì độ tương phản dễ tiếp cận giữa biểu trưng và nền.
- Thêm nhãn hỗ trợ tiếp cận có văn bản Google Maps.
Thông tin ghi công dạng văn bản
Nếu kích thước giao diện của bạn không hỗ trợ việc sử dụng biểu trưng Google Maps, bạn có thể viết rõ Google Maps bằng văn bản. Thực hiện theo các hướng dẫn sau:
- Không sửa đổi văn bản Google Maps theo bất kỳ cách nào:
- Đừng thay đổi cách viết hoa của Google Maps
- Đừng xuống dòng cho cụm từ Google Maps
- Đừng bản địa hoá Google Maps sang ngôn ngữ khác.
- Ngăn trình duyệt dịch Google Maps bằng cách sử dụng thuộc tính HTML
translate="no".
Định kiểu văn bản trên Google Maps như mô tả trong bảng sau:
Yêu cầu về kiểu văn bản của Google Maps Thuộc tính Kiểu 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ữ sans serif 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 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.Khoảng cách giữa chữ cái Bình thường
CSS mẫu
CSS sau đây hiển thị Google Maps với kiểu chữ và màu sắc phù hợp trên nền trắng hoặc 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; }
Yêu cầu về hình ảnh
Hãy tuân thủ các yêu cầu sau đây về cách trình bày thông tin ghi nhận tác giả của Google Maps.Đặt thông tin ghi nhận tác giả ở gần đầu hoặc cuối nội dung và trong cùng một vùng chứa hình ảnh. Đối với một dòng nội dung, bạn có thể đặt thông tin ghi nhận tác giả ở bên phải hoặc bên trái.
Phân biệt Nội dung trên Google Maps Platform với nội dung khác bằng cách sử dụng các dấu hiệu trên giao diện người dùng như đường viền, màu nền, bóng hoặc khoảng trắng vừa đủ.
- Đừng trình bày sai về Google Maps bằng cách gán cho Google Maps nội dung không thuộc Google Maps Platform.
- Xác minh rằng thông tin ghi nhận tác giả luôn hiển thị và dễ đọc. Tuyệt đối không xoá, ẩn, che khuất hoặc sửa đổi thông tin này.
Các hình sau đây minh hoạ các yêu cầu về hình ảnh này.
Nhà cung cấp dữ liệu bên thứ ba
Một số dữ liệu và hình ảnh trên các sản phẩm bản đồ của chúng tôi đến từ các nhà cung cấp không phải Google. Đối với một số sản phẩm, chẳng hạn như Map Tiles API, chúng tôi có thể cung cấp cho bạn thông tin ghi nhận tác giả bắt buộc đối với nhà cung cấp dữ liệu bên thứ ba. Khi chúng tôi làm như vậy, văn bản ghi nhận tác giả của bạn phải nêu tên "Google Maps" và (các) nhà cung cấp dữ liệu có liên quan, chẳng hạn như "Dữ liệu bản đồ: Google, Maxar Technologies". Khi Google cung cấp thông tin ghi nhận tác giả của bên thứ ba, việc chỉ thêm "Google Maps" hoặc biểu trưng Google không phải là cách ghi nhận tác giả đúng quy định.
Các yêu cầu khác về việc ghi công
Thông tin ghi nhận tác giả cho nhà cung cấp bên thứ ba chứa nội dung và đường liên kết mà bạn phải hiển thị cho người dùng theo định dạng được cung cấp. Google khuyên bạn nên cho ứng dụng hiển thị thông tin này bên dưới Place Details.
Thông tin ghi nhận tác giả của bên thứ ba do API trả về không bao gồm thông tin ghi nhận tác giả của Google. Bạn phải tự thêm thông tin ghi nhận tác giả này, như mô tả trong phần Hiển thị biểu trưng Google và thông tin ghi nhận tác giả.
Hãy làm theo các hướng dẫn sau để truy xuất thông tin ghi nhận tác giả của bên thứ ba cho một địa điểm hoặc một tập hợp địa điểm.
Truy xuất thông tin ghi nhận tác giả cho một địa điểm
Khi truy xuất một địa điểm bằng cách lấy địa điểm theo mã nhận dạng, bạn có thể truy xuất thông tin ghi nhận tác giả cho địa điểm đó từ thuộc tính attributions trên GMSPlace.
attributions được cung cấp dưới dạng đối tượng NSAttributedString.
Truy xuất thông tin ghi nhận tác giả cho một tập hợp địa điểm
Nếu ứng dụng của bạn hiển thị thông tin có được bằng cách yêu cầu địa điểm hiện tại của thiết bị, thì ứng dụng phải hiển thị thông tin ghi nhận tác giả của bên thứ ba cho thông tin chi tiết về địa điểm được hiển thị. Bạn có thể truy xuất thông tin ghi nhận tác giả cho tất cả địa điểm được truy xuất trong yêu cầu, từ thuộc tính attributions trên GMSPlaceLikelihoodList.
attributions được cung cấp dưới dạng đối tượng NSAttributedString. Bạn có thể truy cập và hiển thị đối tượng này theo cách tương tự như attributions trên một địa điểm, như mô tả ở trên.
Thông tin ghi công trong kết quả tìm kiếm
Ở Châu Âu, khi sử dụng hệ thống xếp hạng không can thiệp của Google, các sản phẩm tìm kiếm phải có văn bản giải thích trong phạm vi 1 lượt nhấp, mô tả các yếu tố chính và trọng số của các yếu tố chính xác định thứ hạng của kết quả tìm kiếm. Văn bản giải thích:
Tiêu đề: Giới thiệu về những kết quả này
Nội dung: Khi bạn tìm kiếm các doanh nghiệp hoặc địa điểm ở gần một vị trí, Google Maps sẽ hiển thị kết quả tại địa phương. Một số yếu tố (chủ yếu là mức độ liên quan, khoảng cách và sự nổi bật) được kết hợp để giúp tìm ra kết quả tốt nhất cho nội dung tìm kiếm của bạn.
Nút 1: Tìm hiểu thêm
Văn bản "Tìm hiểu thêm" phải liên kết đến một bài viết trên Trung tâm trợ giúp.
Nút 2: OK
Hiển thị thông tin ghi nhận tác giả cho ảnh
Nếu ứng dụng của bạn hiển thị
ảnh, bạn phải
hiển thị mọi attributions và authorAttributions cho mỗi
ảnh có các thông tin này.
- Để truy cập vào bất kỳ thông tin ghi nhận tác giả nào, hãy sử dụng
GMSPlacePhotoMetadata.attributions. Thuộc tính này là mộtNSAttributedStringhoặcnilnếu không có thông tin ghi nhận tác giả nào để hiển thị. - Để truy cập vào thông tin ghi nhận tác giả, hãy sử dụng
GMSPlacePhotoMetadata.authorAttributions. Thuộc tính này chứa một mảng gồm các đối tượngGMSPlaceAuthorAttribution.
Swift
GMSPlacesClient.sharedClient().lookUpPhotosForPlaceID(placeID) { (photos, error) -> Void in if let error = error { // TODO: handle the error. print("Error: \(error.description)") } else { // Get attribution for the first photo in the list. if let photo = photos?.results.first { let attributions = photo.attributions } } }
Objective-C
[[GMSPlacesClient sharedClient] lookUpPhotosForPlaceID:placeID callback:^(GMSPlacePhotoMetadataList *_Nullable photos, NSError *_Nullable error) { if (error) { // TODO: handle the error. NSLog(@"Error: %@", [error description]); } else { // Get attribution for the first photo in the list. if (photos.results.count > 0) { GMSPlacePhotoMetadata *photo = photos.results.firstObject; NSAttributedString *attributions = photo.attributions; } } }];
Hiển thị bài đánh giá
Một đối tượng GMSPlace có thể chứa tối đa 5 bài đánh giá, trong đó mỗi bài đánh giá được biểu thị bằng một đối tượng GMSPlaceReview. Bạn có thể
hiển thị các bài đánh giá này trong ứng dụng của mình (không bắt buộc).
Khi hiển thị bài đánh giá do người dùng Google đóng góp, bạn phải đặt tên của tác giả ở gần bài đánh giá đó. Khi có thể, bạn nên thêm ảnh của tác giả và đường liên kết đến hồ sơ của họ vào trường thông tin tác giả của đối tượng GMSPlaceReview. Hình ảnh sau đây cho thấy ví dụ về một bài đánh giá về công viên:

Google cũng đề xuất bạn cho người dùng cuối biết cách sắp xếp bài đánh giá.
Cách xem các bài đánh giá:
Swift
// Define a Place ID. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let myProperties: [GMSPlaceProperty] = [.name, .website, .reviews] // Create the GMSFetchPlaceRequest object. let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties) client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { let firstReview: GMSPlaceReview = place.reviews![0] // Use firstReview to access review text, authorAttribution, and other fields. } })
Objective-C
// Define a Place ID. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return, including reviews. NSArray<GMSPlaceProperty *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite,GMSPlacePropertyReviews]; GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties]; [placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) { if (error) { // TODO: handle the error. NSLog(@"Error: %@", [error description]); } else { // Get first review. GMSPlaceReview *firstReview = [place reviews][0]; // Use firstReview to access review text, authorAttribution, and other fields. } }];
Hiển thị thông tin ghi nhận tác giả của bên thứ ba
Thông tin ghi nhận tác giả cho nhà cung cấp bên thứ ba được cung cấp dưới dạng đối tượng NSAttributedString chứa nội dung và đường liên kết mà bạn phải giữ nguyên và hiển thị cho người dùng.
Bạn nên hiển thị thông tin ghi nhận tác giả bằng UITextView vì các đường liên kết trong thông tin ghi nhận tác giả phải hoạt động.
Để đảm bảo các đường liên kết hoạt động, hãy đặt một uỷ quyền trên UITextView và đặt phương thức shouldInteractWithURL của UITextViewDelegate để trả về YES.
Swift
... self.attributionTextView.delegate = self ... // MARK: - UITextViewDelegate func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool { // Make links clickable. return true }
Objective-C
... self.attributionTextView.delegate = self; ... #pragma mark - UITextViewDelegate - (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange { // Make links clickable. return YES; }
Ví dụ về thông tin ghi công của bên thứ ba
Thông tin ghi nhận tác giả của bên thứ ba thường bao gồm văn bản có đường liên kết. Ví dụ:
Trang thông tin của Công ty mẫu
Trong ví dụ trên, dải văn bản Example Company được bao phủ bởi thuộc tính NSLink.
Tự động hoàn thành địa chỉ của người dùng cuối
Khi người dùng cuối sử dụng chức năng Tự động hoàn thành trong Ứng dụng của khách hàng để nhập trước một địa chỉ đường phố và địa chỉ đường phố đó sẽ được người dùng cuối cung cấp đầy đủ và chính xác mà không cần tính năng Tự động hoàn thành, thì địa chỉ mà người dùng cuối chọn sẽ không phải tuân theo các giới hạn nội dung trên Google Maps trong Thoả thuận về Google Maps Platform. Trường hợp ngoại lệ này chỉ áp dụng cho địa chỉ đường phố do người dùng cuối chọn và chỉ cho giao dịch cụ thể của người dùng cuối đó; trường hợp này không áp dụng cho danh sách địa chỉ đề xuất do chức năng Tự động hoàn thành cung cấp hoặc cho Nội dung khác trên Google Maps. Trường hợp ngoại lệ này không áp dụng cho bất kỳ chức năng tra cứu địa điểm yêu thích hoặc địa chỉ nào do các Dịch vụ khác của Google Maps Platform cung cấp.

Trong hình ảnh trước, danh sách địa chỉ ở bên trái vẫn phải tuân theo các quy định hạn chế về Nội dung trên Google Maps. Sau khi người dùng cuối chọn địa chỉ, địa chỉ đó sẽ không phải tuân theo các quy định hạn chế về Nội dung trên Google Maps chỉ nhằm mục đích giao dịch hiện hành của người dùng cuối đó.