Tài liệu này liệt kê những yêu cầu dành riêng cho mọi ứng dụng được phát triển bằng SDK Địa điểm dành cho iOS, bao gồm cả dịch vụ Tự động hoàn thành địa điểm trong 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 Nền tảng Google Maps.
Cung cấp điều khoản sử dụng và chính sách quyền riêng tư
Nếu phát triển ứng dụng SDK Địa điểm dành cho iOS, bạn phải cung cấp Điều khoản sử dụng và Chính sách quyền riêng tư cho ứng dụng của mình theo các nguyên tắc đã nêu trong Thoả thuận của bạn với Google:
- Điều khoản sử dụng và Chính sách quyền riêng tư phải được cung cấp công khai.
- Bạn phải nêu rõ trong Điều khoản sử dụng của ứng dụng rằng khi sử dụng ứng dụng của bạn, người dùng chịu sự ràng buộc của Điều khoản dịch vụ của Google.
- Bạn phải thông báo cho người dùng trong Chính sách quyền riêng tư của mình rằng bạn đang sử dụng(các) API Google Maps và kết hợp bằng cách dẫn chiếu Chính sách quyền riêng tư của Google.
Nơi bạn nên cung cấp Điều khoản sử dụng và Chính sách quyền riêng tư phụ thuộc vào nền tảng của ứng dụng của bạn.
Ứng dụng dành cho thiết bị di động
Nếu đang phát triển một ứng dụng dành cho thiết bị di động, bạn nên cung cấp đường liên kết đến Điều khoản sử dụng và Chính sách quyền riêng tư trên trang tải xuống của ứng dụng trong cửa hàng ứng dụng liên quan và trong trình đơn cài đặt ứng dụng.
Ứng dụng web
Nếu đang phát triển một ứng dụng web, bạn nên cung cấp đường liên kết đến Điều khoản sử dụng và Chính sách quyền riêng tư ở chân trang web.
Tìm nạp trước, lưu vào bộ nhớ đệm hoặc lưu trữ nội dung
Ứng dụng sử dụng SDK Địa điểm dành cho iOS phải tuân thủ các điều khoản trong Thoả thuận của bạn với Google. Theo các điều khoản trong Thoả thuận của bạn, bạn không được tìm nạp trước, lập chỉ mục, lưu trữ hoặc lưu vào bộ nhớ đệm bất kỳ Nội dung nào, ngoại trừ các điều kiện giới hạn được nêu trong các điều khoản.
Xin lưu ý rằng mã địa điểm (dùng để xác định duy nhất một địa điểm) sẽ được miễn khỏi các hạn chế về việc lưu vào bộ nhớ đệm. Mã địa điểm được trả về trong trường "place_id" của SDK địa điểm dành cho phản hồi trên iOS. 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.
Hiển thị kết quả về SDK Địa điểm dành cho iOS
Bạn có thể hiển thị SDK địa điểm dành cho kết quả iOS trên Google Maps hoặc không có bản đồ. Nếu bạn muốn hiển thị kết quả SDK địa điểm dành cho iOS trên bản đồ, thì những kết quả này phải được hiển thị trên Google Maps. Bạn không được phép sử dụng SDK Địa điểm cho dữ liệu iOS trên bản đồ không phải là bản đồ của Google.
Hiển thị biểu trưng và thuộc tính của Google
Nếu ứng dụng của bạn hiển thị dữ liệu trên Google Maps thì biểu trưng của Google sẽ được đưa vào và không thể thay đổi được. Những ứng dụng hiển thị dữ liệu của Google trên cùng một màn hình với Google Maps không cần phải cung cấp thêm thuộc tính cho Google.
Nếu ứng dụng của bạn hiển thị dữ liệu trên một trang hoặc chế độ xem không đồng thời hiển thị Google Maps, bạn phải hiển thị biểu trưng Google cùng với dữ liệu đó. Ví dụ: nếu ứng dụng của bạn hiển thị dữ liệu của Google trên một thẻ và Google Maps có dữ liệu đó trên một thẻ khác, thì thẻ đầu tiên phải hiển thị biểu trưng Google. Nếu ứng dụng của bạn dùng các trường tìm kiếm có hoặc không có tính năng tự động hoàn thành, thì biểu trưng phải xuất hiện cùng dòng.
Biểu trưng Google nên được đặt ở góc dưới cùng bên trái của bản đồ, với thông tin phân bổ được đặt ở góc dưới cùng bên phải, cả hai phải hiển thị toàn bộ trên bản đồ chứ không phải bên dưới bản đồ hoặc một vị trí khác trong ứng dụng. Ví dụ về bản đồ sau đây cho thấy biểu trưng Google ở phía dưới bên trái của bản đồ và thuộc tính ở phía dưới bên phải.
![vị trí ghi nguồn theo chính sách](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/images/policies_attribution_placement.png?authuser=5&hl=vi)
Để dùng trên nền sáng | Để dùng trên nền tối |
---|---|
![]() |
![]() |
Tệp zip sau đây chứa biểu trưng Google có kích thước chính xác dành cho máy tính, ứng dụng Android và iOS. Bạn không được đổi kích thước hoặc sửa đổi các biểu trưng này theo bất kỳ cách nào.
Tải xuống: google_logo.zip
Đừng sửa đổi thông tin ghi nhận sự đóng góp. Đừng xoá, che khuất hoặc cắt bỏ thông tin ghi công. Bạn không thể sử dụng biểu trưng của Google cùng dòng (ví dụ: "Những bản đồ này đến từ [Google_logo]").
Liên tục phân bổ giá trị đóng góp. Nếu bạn sử dụng ảnh chụp màn hình hình ảnh của Google ngoài video nhúng trực tiếp, hãy cung cấp thông tin ghi công tiêu chuẩn như xuất hiện trong hình ảnh. Nếu cần, bạn có thể tuỳ chỉnh kiểu và vị trí của văn bản ghi công, miễn là văn bản đó nằm gần nội dung và người xem hoặc người đọc thông thường có thể đọc được. Bạn không được di chuyển thông tin ghi công ra xa nội dung, chẳng hạn như đến cuối cuốn sách, phần ghi công của các tệp hoặc chương trình hoặc phần chân trang của trang web.
Bao gồm cả 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 lập bản đồ của chúng tôi đến từ các nhà cung cấp không phải Google. Nếu sử dụng hình ảnh như vậy, văn bản ghi công của bạn phải có tên "Google" 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 có nhà cung cấp dữ liệu bên thứ ba trích dẫn hình ảnh, việc chỉ bao gồm "Google" hoặc biểu trưng của Google là không thể ghi nhận đúng.
Nếu bạn đang sử dụng Nền tảng Google Maps trên một thiết bị không hỗ trợ hiển thị thông tin ghi công, vui lòng liên hệ với nhóm bán hàng của Google để thảo luận về các giấy phép phù hợp với trường hợp sử dụng của bạn.
Các yêu cầu khác về mô hình phân bổ
Thông tin ghi nhận sự đóng góp 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 ở định dạng được cung cấp. Google khuyên ứng dụng của bạn nên hiển thị thông tin này bên dưới thông tin chi tiết về địa điểm.
Các hoạt động phân bổ của bên thứ ba do API trả về không bao gồm mô hình phân bổ của Google. Bạn phải tự thêm thuộc tính này, như mô tả trong bài viết Hiển thị biểu trưng và thuộc tính của Google.
Hãy làm theo các hướng dẫn này để truy xuất các thông tin phân bổ 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 sự đóng góp cho một địa điểm
Khi truy xuất một địa điểm bằng cách nhận một địa điểm theo mã nhận dạng, bạn có thể truy xuất các thuộc tính 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 sự đóng góp cho một tập hợp địa điểm
Nếu ứng dụng của bạn hiện thông tin thu đượ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 cho thấy thông tin phân bổ của bên thứ ba đối với thông tin chi tiết về địa điểm xuất hiện. Bạn có thể truy xuất
các thuộc tính cho tất cả các vị trí đượ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
mà bạn có thể truy cập và hiển thị theo cách tương tự như attributions
ở một nơi, như mô tả ở trên.
Hiển thị thuộc tính 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 chứa ảnh đó.
- Để truy cập vào bất kỳ thông tin phân bổ nào, hãy sử dụng
GMSPlacePhotoMetadata.attributions
. Tài sản này làNSAttributedString
hoặcnil
nếu không có thuộc tính nào để hiển thị. - Để xem thông tin ghi nhận sự đóng góp của tác giả, hãy sử dụng
GMSPlacePhotoMetadata.authorAttributions
. Thuộc tính này chứa một mảng 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 bài đánh giá
Mỗi đố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ể tuỳ ý hiển thị các bài đánh giá này trong ứng dụng của mình.
Khi hiển thị các bài đánh giá do người dùng Google đóng góp, bạn phải đặt tên tác giả ở gần. Khi có trong trường ghi công tác giả của đối tượng GMSPlaceReview
, bạn nên đưa ảnh của tác giả cũng như đường liên kết đến hồ sơ của họ. Hình ảnh sau đây là ví dụ về một bài đánh giá về một công viên:
Bạn cũng nên trình bày cách sắp xếp các bài đánh giá cho người dùng cuối.
Cách xem 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ị thuộc tính của bên thứ ba
Các thuộc tính 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 duy trì và hiển thị cho người dùng.
Bạn nên sử dụng UITextView
để hiển thị các thông tin ghi nhận sự đóng góp, vì các đường liên kết trong thông tin phân bổ phải hoạt động.
Để đảm bảo các đường liên kết hoạt động, hãy đặ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ề thuộc tính của bên thứ ba
Thông tin ghi nhận sự đóng góp của bên thứ ba thường bao gồm văn bản kèm theo một đường liên kết. Ví dụ:
Trang thông tin theo Công ty mẫu
Trong ví dụ trên, phạm vi văn bản Công ty mẫu thuộc phạm vi của thuộc tính NSLink
.
Nguyên tắc về kiểu cho mô hình phân bổ trên Google
Sau đây là nguyên tắc chọn kiểu cho các thuộc tính của Google trong CSS và HTML nếu bạn không thể sử dụng biểu trưng có thể tải xuống của Google.
Không gian trống
Khoảng không gian trống xung quanh khoá phải bằng hoặc lớn hơn chiều cao của chữ "G" trong Google.
Khoảng cách giữa bản sao thuộc tính và biểu trưng Google phải bằng một nửa chiều rộng của chữ "G".
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/images/policies_spacing.png?authuser=5&hl=vi)
Mức độ dễ đọc
Dòng tên tác giả phải luôn rõ ràng, dễ đọc và xuất hiện với biến thể màu phù hợp cho một nền nhất định. Luôn đảm bảo cung cấp đủ độ tương phản cho biến thể biểu trưng mà bạn chọn.
Màu
Sử dụng văn bản Google Material Gray 700 trên nền trắng hoặc sáng, sử dụng độ phủ màu đen tối đa từ 0% đến 40%.
#5F6368 RGB 95 99 104 HSL 213 5 39 HSB 213 9 41
Trên nền tối hơn và trên nền ảnh hoặc các mẫu không bận rộn, hãy sử dụng văn bản màu trắng cho dòng ghi tên tác giả và thuộc tính.
#FFFFFF RGB 255 255 255 HSL 0 0 100 HSB 0 0 100
Phông chữ
Hãy sử dụng phông chữ Roboto.
Dịch vụ so sánh giá (CSS) mẫu
Khi áp dụng cho văn bản "Google", CSS sau đây sẽ hiển thị "Google" với phông chữ, màu sắc và khoảng cách thích hợp trên nền trắng hoặc sáng.
font-family: Roboto; font-style: normal; font-weight: 500; font-size: 16px; line-height: 16px; padding: 16px; letter-spacing: 0.0575em; /* 0.69px */ color: #5F6368;