迁移到地点详情(新)

Places SDK for iOS 支持现有的 地点详情。 如果您熟悉现有的 Places SDK for iOS, 新版“地点详情” 进行以下更改:

  • 使用新的价格模式。如需了解所有 API 的价格信息,请参阅 Places SDK for iOS(新)的价格

  • 必须选择字段遮盖。您必须指定要返回的字段 。没有返回字段的默认列表。如果省略 那么这些方法会返回错误。

  • 要发出请求,请调用新的 GMSPlacesClient fetchPlaceWithRequest: 方法。

  • 传递给请求:

  • 响应包含一个 GMSPlace 实例,其中包含地点的详细信息。types 中的值 GMSPlace 实例的属性现在由 表 A表 B.

  • 响应 GMSPlace 实例包含类型为 GMSPlaceReview 的新 reviews 属性。当应用显示从 GMSPlace 获取的信息时 例如照片和评价等,但应用还必须显示 所有来源。

    有关详情,请参阅 归因

  • 响应 GMSPlace 实例包含以下成员函数:

    • isOpen 计算地点在给定时间是否营业。

    • isOpenAtDate 计算地点在给定日期是否营业。

    这些函数仅在启用 Places SDK for iOS。在下列情况下,它们不可用 启用 Places SDK for iOS(新)。如需更多信息 请参阅选择 SDK 版本

示例请求

对于“地点详情(新)”,您发出请求并 传递 GMSFetchPlaceRequest 实例中的所有参数。这个 示例还使用了字段掩码,因此该响应仅包含显示名称 及相应地点的网站网址:

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest instance.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: fields, sessionToken: nil)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *fields = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];