Places SDK for Android 的政策

本主题介绍了使用 Places SDK for Android 开发的所有应用(包括该 API 中的地点自动补全服务)的提供方说明要求。如需详细了解 Google Maps Platform 条款,请参阅 Google Maps Platform 服务条款

提供使用条款和隐私政策

如果您要开发 Places SDK for Android 应用,则必须在该应用中提供使用条款隐私权政策,并确保其符合您与 Google 达成的协议中列出的准则:

  • 使用条款》和《隐私权政策》必须公开发布。
  • 您必须在应用的使用条款中明确声明,使用您的应用即表示用户受 Google 服务条款的约束。
  • 您必须在隐私权政策中告知用户您正在使用 Google Maps API,并以提述方式纳入 Google 隐私权政策

关于显示《使用条款》和《隐私权政策》的建议位置取决于您使用的平台。

移动应用

如果您开发的是移动应用,建议您在应用的下载页面上(位于相关应用商店内)以及应用设置菜单中提供指向《使用条款》和《隐私权政策》的链接。

Web 应用

如果您开发 Web 应用,建议您在网站的页脚中提供指向《使用条款》和《隐私权政策》的链接。

预提取、缓存或存储内容

使用 Places SDK for Android 的应用受您与 Google 之间达成的协议条款约束。根据协议条款,您不得预先提取、存储、存储或缓存任何内容,除非在条款中规定的有限条件下。

显示 Places SDK for Android 结果

您可以在 Google 地图上显示 Places SDK for Android 结果,也可以不在地图上显示结果。如果您想在地图上显示 Places SDK for Android 结果,则必须将这些结果显示在 Google 地图上。 禁止在非 Google 地图地图上使用 Places SDK for Android 数据。

如果您的应用在 Google 地图上显示数据,则包含 Google 徽标,不得更改。在与 Google 地图相同的屏幕上显示 Google 数据的应用无需向 Google 提供进一步的提供方说明。

如果您的应用在页面或视图上显示数据,但不显示 Google 地图,您必须在该数据中显示 Google 徽标。例如,如果您的应用在一个标签页上显示 Google 数据,而包含该数据的 Google 地图在另一个标签页上显示,则第一个标签页必须显示 Google 徽标。如果您的应用使用的搜索字段(无论是否使用自动补全功能),则必须以内嵌方式显示徽标。

Google 徽标应放置在地图的左下角,而提供方信息应位于右下角,这两个图标应在地图上整体呈现,而不是在地图或应用内的其他位置呈现。以下地图示例在地图左下角显示 Google 徽标,并在右下角显示提供方说明。

以下 ZIP 文件包含不同尺寸的 Google 徽标,分别适用于桌面、Android 和 iOS 应用。您不得以任何方式修改这些徽标或调整其尺寸。

下载google_logo.zip

请勿修改提供方说明。请勿移除、遮挡或剪裁归因信息。您不能内嵌使用 Google 徽标(例如,“这些地图来自 [Google_logo]”)。

确保归因接近。如果您要使用用于直接嵌入以外的 Google 图像的屏幕截图,请包含图片中显示的标准提供方说明。如有必要,您可以自定义提供方说明文字的样式和位置,只要文字靠近内容,并且普通查看者或读者易于辨认即可。 您不得将提供方说明从相应内容移开,例如移到图书末尾、文件或节目的演职员表,或网站的页脚。

包括第三方数据提供商。我们的地图产品上的部分数据和图片来自 Google 以外的提供商。如果使用此类图像,您的提供方信息中必须标明名称“Google”和相关的数据提供商,例如“地图数据:Google, Maxar Technologies”。如果图像中提及了第三方数据提供商,只标注“Google”或 Google 徽标是不恰当的。

如果您在无法显示提供方说明的设备上使用 Google Maps Platform,请 与 Google 销售团队联系,讨论适合您的用例的许可。

其他归因要求

请按照以下说明检索第三方提供方说明,并在您的应用中显示提供方说明。

从地点检索提供方说明

如果您的应用要显示通过调用按 ID 获取地点获得的信息,它还必须显示针对所获取的地点详情的第三方提供方说明。

该 API 会返回一个 Place 对象。如需从 Place 对象中检索提供方说明,请调用 Place.getAttributions()。该方法会返回 String;如果没有要显示的归因,则返回空字符串。

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());
    textView.append("Attributions: " + place.getAttributions());
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        // Handle the error.
    }
});

显示照片的提供方说明

如果您的应用显示照片,您必须为每张照片显示提供方说明。PhotoMetadata 可以包含以下两种归因类型之一:

如需获取照片的字符串提供方说明,请调用 PhotoMetadata.getAttributions()。该方法会返回 HTML 字符序列,如果没有可显示的提供方说明,则返回空字符串。

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

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

如需获取照片的作者提供方说明,请调用 PhotoMetadata.getAuthorAttributions()。该方法会返回一个 AuthorAttributions 对象。该对象包含一个由 AuthorAttribution 对象组成的 List,每个作者署名对应一个对象。

// 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();

显示评价

一个 Place 对象最多可以包含五条评价,其中每条评价都由一个 Review 对象表示。您可以选择在应用中显示这些评价。

Google 还建议您向最终用户显示评价的排序方式。

如需访问评价,请调用 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.
    }
});

显示第三方提供方说明

对第三方提供商的提供方说明包含 HTML 格式的内容和链接,您必须保留这些内容和链接,并以它们的提供格式向用户显示。Google 建议您在地点详情下方显示此信息。

API 会为应用使用的所有地点生成提供方说明。这些提供方说明是按 API 调用(而不是每个地点)提供的。

显示提供方说明的一种方法是使用 TextView。例如:

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

第三方提供方说明示例

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

请注意,用于唯一标识地点的地点 ID不受缓存限制的约束。因此,您可以无限期存储地点 ID 值。地点 ID 会在 Places SDK for Android 响应的 place_id 字段中返回。

Google 归因的样式指南

如果您无法使用可下载的 Google 徽标,请遵循以下 CSS 和 HTML 中 Google 提供方说明的样式指南。

留白

完整标识周围的留白空间应等于或大于 Google 中“G”字样的高度。

提供方说明文案与 Google 徽标之间的间距应为“G”字号的一半。

易读性

署名应始终清晰可辨,并且可根据给定背景以正确的颜色变化显示。请务必为您选择的徽标变体提供足够的对比度。

颜色

在白色或浅色背景上使用 Google Material Gray 700 文本,最大限度地采用 0%–40% 的黑色调色范围。

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

在较暗的背景以及摄影模式或非杂乱的图案中,使用白色文本提供署名和提供方说明。

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

字体

使用 Roboto 字体。

示例 CSS

以下 CSS 应用于文本“Google”时,会在白色或浅色背景上使用适当的字体、颜色和间距呈现“Google”。

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;