Chính sách và thông tin ghi nhận quyền tác giả cho Places SDK for iOS

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 Places SDK 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.

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

Xin lưu ý rằng mã địa điểm (dùng để xác định duy nhất 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 place_id trong 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.

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 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):

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 sẽ phải tuân theo các điều khoản dịch vụ sau:

Yêu cầu ghi công của 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 công cho Places UI Kit.

Ví dụ về thông tin ghi nhận tác giả của Places UI Kit trên bản đồ không phải của Google
Thông tin ghi nhận tác giả bắt buộc được áp dụng cho thành phần thu gọn Chi tiết địa điểm. Trên bản đồ không phải của Google này, thông tin ghi nhận tác giả của Google Maps hiển thị rõ ràng và nội dung của Google Maps Platform được phân biệt trực quan với nội dung khác.

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ả trên 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 đó xuất hiện ở đâ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.

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.

Bên trái: Thông tin ghi công biểu trưng của Google Maps, Bên phải: Thông tin ghi công dạng văn bản của Google Maps
Bên trái: Ví dụ về việc ghi nhận tác giả bằng biểu trưng của Google Maps, Bên phải: Ví dụ về việc ghi nhận tác giả bằng văn bản của Google Maps

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.
Các biến thể được chấp nhận cho việc ghi nhận tác giả biểu trưng Google Maps
Ví dụ về các biến thể được chấp nhận cho việc ghi nhận tác giả biểu trưng Google Maps

Tải biểu trưng của Google Maps xuống

Sử dụng các 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ống

Khi 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 thông số kỹ thuật về kích thước sau đây cho biểu trưng của Google Maps:
  • Chiều cao tối thiểu của biểu trưng: 16dp
  • 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.

Biểu trưng Google Maps cho thấy khoảng trống tối thiểu và phạm vi kích thước được chấp nhận
Ví dụ về biểu trưng của Google Maps cho thấy khoảng trống tối thiểu và phạm vi kích thước được chấp nhận

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:
Các biến thể không được chấp nhận và vấn đề về khả năng hỗ trợ tiếp cận đối với thông tin ghi nhận tác giả biểu trưng của Google Maps
Ví dụ về các biến thể không được chấp nhận và vấn đề về khả năng hỗ trợ tiếp cận đối với việc ghi nhận tác giả bằng biểu trưng của 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:

Các biến thể được chấp nhận của thông tin ghi nhận tác giả dạng văn bản của Google Maps
Ví dụ về các biến thể được chấp nhận của thông tin ghi công dạng văn bản của Google Maps
  • Không sửa đổi văn bản Google Maps theo bất kỳ cách nào:
    • Khô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".
Các biến thể không được chấp nhận của thông tin ghi nhận tác giả dạng văn bản trên Google Maps
Ví dụ về các biến thể không được chấp nhận của thuộc tính văn bản Google Maps
  • Định kiểu văn bả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 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, chẳng hạn 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 được xoá, ẩn, che khuất hoặc sửa đổi thông báo này.

Các hình sau đây minh hoạ các yêu cầu về hình ảnh này.

Ví dụ về thông tin ghi nhận tác giả trên Google Maps được đặt ở trên cùng, ở dưới cùng và ở bên cạnh nội dung
Ví dụ về thông tin ghi nhận tác giả của Google Maps được đặt ở trên cùng, dưới cùng và bên cạnh nội dung

Ví dụ về hai cách phân biệt Nội dung trên Google Maps (điểm xếp hạng địa điểm) với nội dung khác
Ví dụ về hai cách phân biệt Nội dung trên Google Maps (điểm xếp hạng địa điểm) với nội dung khác

Đừng che khuất thông tin ghi nhận tác giả của Google Maps hoặc kết hợp thông tin đó với nội dung từ các nguồn khác
Đừng che khuất thông tin ghi nhận tác giả của Google Maps hoặc kết hợp thông tin đó với nội dung từ các nguồn khá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 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 cách.

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 đề xuất ứng dụng của bạn 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 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 mà bạn có thể truy cập và hiển thị theo cách tương tự như attributions trên một địa điểm, như mô tả ở trên.

Thông tin ghi nhận tác giả trong kết quả tìm kiếm

Ở Châu Âu, khi sử dụng hệ thống xếp hạng không bị 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 (cách không quá 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 công cho ảnh

Nếu ứng dụng của bạn hiển thị ảnh, bạn phải cho thấy 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ột NSAttributedString hoặc nil nế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ượng GMSPlaceAuthorAttribution.

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á. Nếu 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:

Hiển thị thông tin tác giả

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 được. Để đảm bảo các đường liên kết hoạt động, hãy đặt một trình 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 ngoại lệ 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.

Tự động hoàn thành địa chỉ của người dùng cuối

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ế đối với 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 đó.