Places SDK for iOS 支持地点详情(旧版)。如果您熟悉 Places SDK for iOS(旧版),地点详情(新)会进行以下更改:
- 采用新的价格模式。如需了解所有 API 的价格信息,请参阅 Places SDK for iOS(新)的价格。 
- 必须进行字段遮盖。您必须指定要在响应中返回哪些字段。没有默认的返回字段列表。如果您省略此列表,这些方法会返回错误。 
- 如需发出请求,请调用新的 - GMSPlacesClient fetchPlaceWithRequest:方法。
- 传递给请求: - 一个新 - GMSFetchPlaceRequest类的实例,用于定义所有请求参数,例如地点 ID 和会话令牌。
- 用于处理响应的回调,类型为 - GMSPlaceResultCallback。
 
- 响应包含一个 - 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<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); } }];