Places SDK for Android 的政策和提供方信息

本主题中列出的提供方信息要求适用于使用 Places SDK for Android 开发的所有应用,包括作为该 API 一部分的地点自动补全服务。如需详细了解 Google Maps Platform 条款,请参阅 Google Maps Platform 服务条款。

政策

本部分介绍了与 Places SDK for Android 相关的政策。政策提供了实用的实施指南和要求,可帮助您正确使用服务并符合 Google Maps Platform 的预期。

数据存储区、缓存和抓取

在应用中使用 Google 地图内容时,请遵循《Google Maps Platform 服务条款》和《Google Maps Platform 服务专用条款》第 3.2.3 节中的数据处理要求:

  • 缓存和抓取限制(第 3.2.3(a) 和 (b) 条):仅在《Google Maps Platform 服务专用条款》明确允许的情况下缓存或存储 Google 地图内容。 不得导出、提取或抓取 Google 地图内容,以便在服务之外使用。例如,不得在服务之外预提取、编入索引、存储或重新分发 Google 地图内容;不得批量下载地图图块、街景图片、地理编码、路线、距离矩阵结果、道路信息、地点信息、海拔值或时区详细信息;不得复制和保存商家名称、地址或用户评价。
  • 派生内容限制(第 3.2.3(c) 条):按照 Google Maps Platform 服务条款的许可,在应用中使用 Google 地图内容。 请勿基于 Google 地图内容创作内容。例如,请勿从卫星图像中描摹或数字化特征、构建 3D 或地形模型、使用地点经纬度值作为点在多边形内分析的输入、根据街景图像构建位置索引,或将基于文本的驾车时间转换为合成语音。

如需在不缓存受限数据的情况下降低延迟时间和已出账单费用,请使用字段掩码或字段列表,仅请求界面所需的字段。存储免检标识符(例如地点 ID),以便在用户与地点互动时提取最新详情。

Google 技术支持工程师无法提供法律建议,也无法针对 Google Maps Platform 服务条款授予例外情况。请咨询您的法律顾问,确定您的实现是否符合这些条款;如果您的应用场景需要自定义许可,请与销售团队联系。

缓存限制的例外情况

《Google Maps Platform 服务专用条款》授予了以下有限的缓存例外情况:

  • 地点 ID:用于唯一标识地点的地点 ID 可不受缓存限制。 因此,您可以无限制地存储地点 ID 值。地点 ID 会在 API 响应的 id 或 place_id 字段中返回。如需了解如何保存、刷新和管理地点 ID,请参阅地点 ID 指南。
  • 纬度和经度坐标:在使用 Google Maps Platform 服务专用条款中授予此例外情况的服务时,您可以临时缓存纬度 (latitude) 和经度 (longitude) 值,最长可连续缓存 30 个日历日,之后您必须删除缓存的坐标:
    • Routes API、Route Optimization API、Directions API(旧版)和 Roads API
    • Geocoding API、Geolocation API 和 Address Validation API
    • Places API、Places UI Kit 和 Navigation SDK
  • 特定于服务的缓存期限:Google Maps Platform 特定服务条款还针对 Address Validation API、Air Quality API、Pollen API、Solar API、Weather API 和 Places Aggregate API 定义了特定于字段的缓存期限和允许的用途。

欧洲经济区国家和地区

对于账单邮寄地址位于欧洲经济区 (EEA) 的客户,此产品有不同的服务条款,并且可能还具有不同的功能。 在使用 Google Maps Platform 进行构建之前,请先查看以下适用于 EEA 的条款和信息:

如果您的账单邮寄地址不在欧洲经济区,则您需遵守以下服务条款:

Google 地图标明出处要求

本部分介绍了通过应用显示 Google 地图和内容时应遵循的版权归属要求和准则。

归因示例

以下是 Places UI Kit 的一个提供方说明示例。

Places UI Kit
非 Google 地图上的提供方信息示例
应用于“地点详情”紧凑组件的必需提供方说明。 在此非 Google 地图上,Google 地图的提供方信息清晰可见,并且 Google Maps Platform 内容在视觉上与其他内容有所区分。

显示 Google 地图归因

在应用或网站中显示 Google Maps Platform API 中的内容时,您必须遵循 Google 地图的标明出处要求。如果内容显示在已显示提供方说明的 Google 地图上,则无需添加额外的提供方说明。

包含 Google 地图提供方信息

对于 Google Maps Platform 已在界面中提供的 Google 地图提供方说明(例如在 Places UI Kit 中):

  • 无论提供方信息显示在何处,都不要将其移除。请勿更改、隐藏或遮挡提供方信息,并确保其在背景中清晰可见。
  • 始终使用边框、背景颜色、阴影或足够的留白等界面提示,在视觉上将 Google Maps Platform 内容与其他内容区分开来。
  • 进行视觉修改时,您必须遵守所有 Google 地图提供方说明要求。

提供方说明应尽可能采用 Google 地图徽标的形式。 在空间有限的情况下,可以使用文本 Google 地图。 必须始终让最终用户清楚哪些内容是由 Google 地图提供的。

左:Google 地图徽标出处注明;右:Google 地图文本出处注明
左图:Google 地图徽标提供方信息示例,右图:Google 地图文本提供方信息示例

徽标归因

在应用或网站中使用 Google 地图徽标时,请遵循以下要求。
Google 地图徽标署名的可接受变体
Google 地图徽标署名的可接受变体示例

下载 Google 地图徽标

使用官方 Google 地图徽标文件。请下载以下徽标,并遵循本部分中的准则。

下载 Google 地图注明出处资源

使用 Google 地图徽标时,请遵循以下准则。

  • 请勿以任何方式修改徽标。
  • 保持徽标的宽高比,以防变形。
  • 在杂乱的背景(例如地图或图片)上使用带边框的徽标。
  • 在纯色或细微渐变等纯色背景上使用无轮廓徽标。

徽标尺寸规范

请遵循以下 Google 地图徽标尺寸规范:
  • 徽标高度下限:16dp
  • 徽标高度上限:19dp
  • 徽标留白空间下限:左侧、右侧和顶部为 10dp,底部为 5dp

如需了解 dp,请参阅 Material Design 网站上的像素密度。

Google 地图徽标,显示最小留白空间和可接受的尺寸范围
显示最小留白空间和可接受尺寸范围的 Google 地图徽标示例

徽标无障碍功能

请遵循以下有关 Google 地图徽标的无障碍要求:
  • 在徽标和背景之间保持无障碍对比度。
  • 添加一个包含文本 Google 地图的无障碍标签。
Google 地图徽标属性的不当变体和无障碍问题
Google 地图徽标属性的不当变体和无障碍问题示例

文字提供方说明

如果您的界面尺寸不支持使用 Google 地图徽标,您可以用文字拼写出 Google 地图。请遵循以下准则:

Google 地图文字出处注明的可接受变体
Google 地图文字属性的可接受变体示例
  • 请勿以任何方式修改 Google 地图文本:
    • 请勿更改 Google 地图的大小写
    • 请勿将 Google Maps 换行
    • 请勿将 Google 地图 本地化为其他语言。
    • 使用 HTML 属性 translate="no" 阻止浏览器翻译 Google 地图。
Google 地图文字属性的不当变体
Google 地图文本出处注明的不当变体示例
  • 按照下表中的说明设置 Google 地图文本的样式:

    Google 地图文字样式要求
    属性 样式
    字体系列 Roboto。加载字体是可选操作。
    后备字体系列 产品中已使用的任何 Sans Serif 正文字体,或用于调用默认系统字体的“Sans-Serif”
    字体样式 正常
    字体粗细 400
    字体颜色 白色、黑色 (#1F1F1F) 或灰色 (#5E5E5E)。与背景保持无障碍 (4.5:1) 对比度。
    字号 最小字号:12sp
    最大字号:16sp
    如需了解 sp,请参阅 Material Design 网站上的字号单位。
    字间距 正常

示例 CSS

以下 CSS 代码段会在白色或浅色背景上以适当的排版样式和颜色呈现“Google 地图”。

@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;
}

视觉要求

请遵循以下要求,对 Google 地图署名进行视觉处理。
  • 将提供方信息置于内容顶部或底部附近,并放在同一个视觉容器中。对于单行内容,可将提供方信息置于右侧或左侧。

  • 使用边框、背景颜色、阴影或足够的留白等界面提示,在视觉上将 Google Maps Platform 内容与其他内容区分开来。

  • 请勿将 Google 地图与非 Google Maps Platform 内容混淆,以免造成误导。
  • 请确保提供方说明始终清晰可见。切勿移除、隐藏、遮挡或修改该信息。

下图展示了这些视觉要求的示例。

Google 地图提供方信息位于内容顶部、底部和侧边的示例
Google 地图提供方说明位于内容顶部、底部和侧边的示例

将 Google 地图内容(地点评分)与其他内容区分开来的两种方法示例
两种将 Google 地图内容(地点评分)与其他内容区分开来的方法示例

请勿遮挡 Google 地图的提供方信息,或将其与其他来源的内容混在一起
请勿遮挡 Google 地图提供方说明,也不要将其与其他来源的内容混在一起

第三方数据提供商

地图产品上的一些数据和图片来自 Google 以外的提供方。 对于某些产品(例如 Map Tiles API),我们可能会向您提供所需的第三方数据提供商的注明。如果使用此类图像,提供方信息文字中必须提及“Google 地图”和相关数据提供方,例如“地图数据:Google、Maxar Technologies”。如果 Google 提供了第三方提供方信息,那么提供方信息中不应仅包含“Google 地图”或 Google 徽标。

其他提供方信息要求

请按照以下说明检索第三方提供方信息,然后在应用中显示提供方信息。

从 Place 对象中检索提供方信息

如果应用显示通过调用按 ID 获取地点而获取的信息,则还必须显示获取的地点详情的第三方提供方信息。

此 API 会返回 Place 对象。如需从 Place 对象中检索提供方信息,请调用 Place.getAttributions()。该方法会返回一个包含 String 对象的 List,如果没有可显示的提供方信息,则返回 null。

String placeId = "INSERT_PLACE_ID_HERE";
List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_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.
    }
  }
);

显示照片的提供方信息

如果应用会显示地点照片,您必须显示每张照片所有者的作者信息。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();

搜索结果归因

在欧洲,使用 Google 的纯粹排名时,搜索产品必须提供说明文字,且用户只需点击一次即可访问这些文字,其中应说明决定搜索结果排名的主要因素及其权重。说明文字:

标题:关于这些结果

正文:当您搜索某个地点附近的商家或场所时,Google 地图会显示本地搜索结果。并且会结合多种因素(主要是相关性、距离和知名度)帮助您找到最符合搜索条件的结果。

按钮 1:了解详情
“了解详情”文字应链接到帮助中心文章。

按钮 2:确定

显示评价

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

显示 Google 用户提供的评价时,您必须将作者姓名放在紧邻评价的位置。如果 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>

自动补全最终用户地址

如果最终用户在您的客户应用中使用自动补全功能提前输入街道地址,并且该街道地址本可以由该最终用户在不使用自动补全功能的情况下完整准确地提供,则最终用户选择的地址不受《Google Maps Platform 协议》中 Google 地图内容限制的约束。 此例外情况仅适用于最终用户选择的街道地址,并且仅适用于该最终用户的特定交易;不适用于自动补全功能提供的建议地址列表或其他 Google 地图内容。此例外情况不适用于其他 Google Maps Platform 服务提供的任何地图注点或地址查找功能。

自动补全最终用户地址

在上图中,左侧的地址列表仍受 Google 地图内容限制。最终用户选择其所选地址后,该地址不受 Google 地图内容的限制,仅用于该最终用户的适用交易。