Places SDK for iOS 支援地點詳細資料 (舊版)。如果您熟悉 Places SDK for iOS (舊版),「Place Details (New)」會進行下列變更:
採用新的定價模式。如要瞭解所有 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 版本」。
要求範例
使用 Place Details (新版) 時,您會提出要求,並在 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); } }];