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