迁移到地点详情(新)

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

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

  • 必须遮盖字段。您必须指定要在响应中返回的字段。没有默认的已返回字段列表。如果省略此列表,这些方法会返回错误。

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

  • 传递给请求:

  • 响应包含一个 GMSPlace 实例,其中包含有关地点的详细信息。GMSPlace 实例的 types 属性中的值现在由表 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<GMSPlaceProperty *> *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 == null) {
    NSLog(@"Place Found: %@", place.name);
  }
}];