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

本文档列出了适用于使用 Places SDK for iOS 开发的所有应用的特定要求,包括作为该 API 一部分的地点自动补全服务。如需了解面向 Google 地图 开发者的更一般信息,请参阅 Google Maps Platform 服务条款

政策

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

缓存限制的例外情况

请注意,用于唯一标识地点的地点 ID不受 缓存限制。 因此,您可以无限制地存储地点 ID 值。 系统会在 API 响应的 place_id 字段中返回地点 ID。如需了解如何保存、刷新和管理地点 ID,请参阅地点 ID 指南

欧洲经济区国家和地区

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

如果您的账单邮寄地址不在 EEA,则以下服务条款适用于您:

Google 地图提供方信息要求

本部分提供了通过应用显示 Google 地图和内容时应遵循的提供方信息要求和指南。

归因示例

以下是 Places UI Kit 的提供方信息示例。

非 Google 地图上的 Places UI Kit 提供方信息示例
应用于“地点详情”紧凑型组件的必要提供方信息。 在此非 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 地图 本地化为其他语言。
    • 使用 HTML 属性 translate="no" 防止浏览器翻译 Google 地图
不接受的 Google 地图文字提供方信息变体
Google 地图文字提供方信息的不可接受变体示例
  • 按照下表中的说明设置 Google 地图文字的样式:

    Google 地图文字样式要求
    属性 样式
    字体系列 Roboto。加载字体是可选操作。
    后备字体系列 产品中已使用的任何无衬线正文字体,或“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 Maps Platform 内容作为 Google 地图的提供方信息,从而歪曲 Google 地图。
  • 验证提供方信息是否始终可见且清晰易读。不得移除、隐藏、遮盖或修改提供方信息。

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

Google 地图提供方信息位于内容顶部、底部和侧面的示例
Google 地图提供方信息放置在内容顶部、底部和侧面的示例

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

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

第三方数据提供商

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

其他提供方信息要求

第三方提供商的提供方信息包含您必须以其提供的格式向用户显示的内容和链接。Google 建议您的应用在地点详情下方显示此信息。

API 返回的第三方提供方信息 包含 Google 提供方信息。您必须 自行添加此提供方信息,如 显示 Google 徽标和提供方信息中所述。

请按照以下说明检索单个地点或一组地点的第三方提供方信息。

检索单个地点的提供方信息

当您通过获取地点 ID来检索地点时,您 可以从 attributionsGMSPlace属性中检索该地点的提供方信息。

attributionsNSAttributedString 对象的形式提供。

检索一组地点的提供方信息

如果应用显示通过请求设备的当前地点获取的信息,则应用必须显示所显示地点详情的第三方提供方信息。您可以从 GMSPlaceLikelihoodListattributions 属性中检索请求中检索到的所有地点的提供方信息。

attributionsNSAttributedString 对象的形式提供,您可以按照与上述单个地点的 attributions 相同的方式访问和显示它,如 上文所述。

搜索结果提供方信息

在欧洲,使用 Google 的纯粹排名时,搜索产品必须提供说明文字,且用户点击不超过一次即可查看,说明文字应描述决定搜索结果排名的主要因素以及这些主要因素的权重。说明文字:

标题: 关于这些结果

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

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

按钮 2: 确定

显示照片的提供方信息

如果应用会显示 照片,您必须 显示每张 照片所有者的 attributionsauthorAttributions

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

显示评价

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

显示 Google 用户提供的评价时,您必须将作者姓名放在紧邻评价的位置。如果 GMSPlaceReview 对象的作者信息字段中提供了作者照片及个人资料链接等信息,我们建议您一并添加。下图显示了某个公园的评价示例:

显示作者信息

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

如需访问评价,请执行以下操作:

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.

  }
}];

显示第三方提供方信息

第三方提供商的提供方信息以 NSAttributedString 对象的形式提供,其中 包含您必须保留并向用户显示的内容和链接。

建议使用 UITextView 显示提供方信息,因为提供方信息中的链接必须正常运行。 为确保链接正常运行,请在 UITextView 上设置委托,并将 shouldInteractWithURL 方法设置为返回 YESUITextViewDelegate

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

第三方提供方说明示例

第三方提供方信息通常包含带链接的文字。例如:

Example Company 提供的商品详情

在上面的示例中,Example Company 文本范围由 一个 NSLink 属性涵盖。

最终用户地址自动补全

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

自动补全最终用户地址

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