Chính sách về SDK Địa điểm dành cho Android

Chủ đề này cung cấp các yêu cầu ghi công cho tất cả ứng dụng được phát triển bằng SDK Địa điểm dành cho Android, bao gồm tính năng Tự động hoàn thành về địa điểm thuộc API đó. Để biết thêm các điều khoản của Nền tảng Google Maps, hãy xem Đ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 bạn phát triển SDK Địa điểm dành cho ứng dụng Android, bạn phải cung cấp Điều khoản Sử dụngQuyền riêng tư Chính sách liên quan đến đơn đăng ký của bạn đáp ứng các nguyên tắc được nêu trong Thoả thuận của bạn với Google:

  • Điều khoản sử dụngChính sách quyền riêng tư phải được công khai sẵn có.
  • Bạn phải nêu rõ trong Điều khoản sử dụng của ứng dụng của mình rằng khi sử dụng ứng dụng, người dùng bị ràng buộc bởi Điều khoản của Google Dịch vụ.
  • Bạn phải thông báo cho người dùng trong Chính sách quyền riêng tư rằng bạn đang sử dụng API của Google Maps và kết hợp bằng cách tham khảo Chính sách quyền riêng tư của Google.

Nơi được đề xuất cung cấp Điều khoản sử dụngChí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 di động, bạn nên cung cấp đường liên kết đến Điều khoản sử dụngChính sách quyền riêng tư đối với ứng dụng của bạn trang tải xuống trong cửa hàng ứng dụng liên quan và trong phầ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ụngChính sách quyền riêng tư ở chân trang của bạn.

Tìm nạp trước, lưu vào bộ nhớ đệm hoặc lưu trữ nội dung

Các ứng dụng sử dụng SDK địa điểm dành cho Android phải tuân thủ các điều khoản của Thoả thuậ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ừ điều kiện được nêu trong điều khoản.

Lưu ý rằng mã địa điểm, được dùng để xác định duy nhất một địa điểm, được miễn 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" trong SDK Địa điểm dành cho phản hồi Android. 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 Android

Bạn có thể hiển thị SDK địa điểm dành cho kết quả Android trên Google Maps hoặc không có bản đồ. Nếu bạn muốn hiển thị SDK Địa điểm dành cho kết quả Android trên bản đồ, thì những kết quả này phải được hiển thị trên Google Maps. Nghiêm cấm sử dụng SDK địa điểm cho dữ liệu Android trên bản đồ không phải là bản đồ của Google.

Nếu ứng dụng của bạn hiển thị dữ liệu trên Google Map, thì liên kết biểu trưng sẽ được bao gồm và không được thay đổi. Các ứng dụng hiển thị dữ liệu trên Google trên cùng một màn hình như Google Maps không cần thiết để 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 còn hiển thị Bản đồ Google, bạn phải hiển thị biểu trưng của 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 Google trên một tab và Google Maps với dữ liệu đó trên một thẻ khác, thẻ đầu tiên phải hiển thị biểu trưng Google. Nếu ứng dụng của bạn sử 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, biểu trưng phải được hiển thị 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 đồ kèm theo thuộc tính thông tin được đặt ở góc dưới cùng bên phải, cả hai thông tin này phải hiển thị trên bản đồ được hiển thị dưới dạng tổng thể và không nằm dưới bản đồ hoặc một vị trí khác trong ứng dụng. Chiến lược phát hành đĩa đơn ví dụ về bản đồ sau đây hiển thị 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

Tệp zip sau chứa biểu trưng Google có kích thước chính xác cho máy tính để bàn, Android và iOS. Bạn không thể đổi kích thước hoặc sửa đổi các hình ảnh này biểu trưng 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. Không xóa, che khuất hoặc cắt bỏ thuộc tính của bạn. 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 từ [Google_logo]").

Liên tục phân bổ giá trị đóng góp. Nếu sử dụng ảnh chụp màn hình hình ảnh của Google bên ngoài nhúng trực tiếp, bao gồm thuộc tính 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 thuộc tính, miễn là văn bản trong phạm vi gần nội dung và dễ đọc với người xem hoặc độc giả thông thường. Bạn không được di chuyển thông tin ghi nhận tác giả ra khỏi nội dung, chẳng hạn như đến cuối cuốn sách, các thông tin ghi công của tệp hoặc chương trình hay 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 bản đồ của chúng tôi các sản phẩm này đế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 thuộc tính phải thể hiện 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." Trường hợp nhà cung cấp dữ liệu của bên thứ ba được trích dẫn với hình ảnh, chỉ bao gồm "Google" hoặc biểu trưng của Google không có thuộc tính thích hợp.

Nếu bạn đang sử dụng Nền tảng Google Maps trên một thiết bị không có màn hình ghi nhận tác giả thiết thực, hãy hãy 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ổ

Hãy làm theo các hướng dẫn này để truy xuất thông tin ghi nhận sự đóng góp của bên thứ ba và để hiển thị các thuộc tính trong ứng dụng của bạn.

Truy xuất thông tin ghi nhận sự đóng góp từ một địa điểm

Nếu ứng dụng của bạn hiển thị thông tin thu được bằng cách gọi nhận địa điểm theo mã nhận dạng ứng dụng cũng phải hiển thị thông tin ghi nhận sự đóng góp của bên thứ ba cho thông tin chi tiết về địa điểm thu được.

API trả về một Place . Để truy xuất các thuộc tính từ đối tượng Place, hãy gọi Place.getAttributions(). Phương thức này trả về một List của đối tượng String hoặc giá trị rỗng nếu không có thông tin ghi nhận sự đóng góp để hiển thị.

String placeId = "INSERT_PLACE_ID_HERE";
List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
  Place place = response.getPlace();
  textView.append("Place found: " + place.getName());
  List<String> attributions = place.getAttributions();
  if (attributions != null) {
    StringBuilder stringBuilder = new StringBuilder("Attributions: ");
    for (String attribution : attributions) {
      stringBuilder.append(attribution).append("\n");
    }
    textView.append(stringBuilder.toString());
  }}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
      // Handle the error.
    }
  }
);

Hiển thị thuộc tính cho ảnh

Nếu ứng dụng của bạn hiển thị hình ảnh địa điểm, bạn phải hiển thị thông tin ghi nhận đóng góp cho từng ảnh có thông tin đó. PhotoMetadata! có thể chứa một trong hai loại thuộc tính:

Để nhận thuộc tính chuỗi cho ảnh, hãy gọi PhotoMetadata.getAttributions(). Phương thức này trả về một Trình tự ký tự HTML hoặc một chuỗi trống nếu không có thuộc tính nào đối với màn hình.

// Get the photo metadata from the Place object.
PhotoMetadata photoMetadata = place.getPhotoMetadatas().get(0);

// Get the attribution text.
String attributions = photoMetadata.getAttributions();

Để nhận ghi nhận tác giả cho một ảnh, hãy gọi PhotoMetadata.getAuthorAttributions(). Phương thức này trả về một Đối tượng AuthorAttributions. Đối tượng này chứa một List trong tổng số AuthorAttribution một đối tượng, mỗi đối tượng ghi nhận tác giả.

// Get the photo metadata from the Place object.
PhotoMetadata photoMetadata = place.getPhotoMetadatas().get(0);

// Get the author attributions object.
AuthorAttributions authorAttributions = photoMetadata.getAuthorAttributions();
List<AuthorAttribution> authorAttributionList = authorAttributions.asList();

Hiện bài đánh giá

Một đối tượng Place 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 Review . Bạn có thể tuỳ ý hiển thị những 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 Review, bạn nên đưa ảnh của tác giả vào và cả đường liên kết đến hồ sơ của họ. Hình ảnh sau đây cho thấy một ví dụ về đánh giá một công viên:

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

Bạn cũng nên đăng cách sắp xếp các bài đánh giá theo người dùng cuối.

Để xem các bài đánh giá, hãy gọi Place.getReviews():

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.REVIEWS);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance("INSERT_PLACE_ID_HERE", placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    List<Review> reviews = place.getReviews();
    // For loop for iterating over the List
    for (int i = 0; i < reviews.size(); i++) {
      // For each review, get the Review object.
        Review placeReview = reviews.get(i);

      // Get any attribution and author attribution.
        String reviewAttribution = placeReview.getAttribution();
        AuthorAttribution authorAttribution = placeReview.getAuthorAttribution();

        // Display the review contents and attributions as necessary.
    }
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        // Handle the error.
    }
});

Hiển thị thông tin ghi nhận sự đóng góp của bên thứ ba

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 trong HTML mà bạn phải duy trì và hiển thị cho người dùng ở định dạng mà chúng sẽ được cung cấp. Google khuyên 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.

API này tạo các thuộc tính cho tất cả các địa điểm mà ứng dụng sử dụng. Các thông tin phân bổ được cung cấp theo lệnh gọi API, chứ không phải cho từng địa điểm.

Một cách để hiển thị các thuộc tính là sử dụng TextView. Ví dụ:

TextView attributionsText = (TextView) findViewById(R.id.attributions);
String thirdPartyAttributions = place.getAttributions();
attributionsText.setText(thirdPartyAttributions);

Ví dụ về thuộc tính của bên thứ ba

Listings by <a href="https://www.example.com/">Example Company</a>

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 Google có thể tải xuống.

Không gian trống

Khoảng không gian trống xung quanh đường khoá phải bằng hoặc lớn hơn chiều cao thuộc "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".

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 có đúng biến thể màu sắc để thông tin cơ bả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 với phạm vi từ 0% đến 40% tông màu đen tối đa.

Google
#5F6368
RGB 95 99 104
HSL 213 5 39
HSB 213 9 41

Trên nền tối hơn và trên ảnh chụp 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à phân bổ giá trị đóng góp.

Google
#FFFFFF
RGB 255 255 255
HSL 0 0 100
HSB 0 0 100

Phông chữ

Sử dụng Phông chữ Roboto.

Dịch vụ so sánh giá (CSS) mẫu

CSS sau đây, khi áp dụng cho văn bản "Google", sẽ hiển thị "Google" với tính năng thích hợp phông chữ, màu sắc và khoảng cách 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;