Places SDK for iOS 支援現有的 Place Details。 如果您熟悉現有的 Places SDK for iOS, 新版 Place Details 進行下列變更:
使用新的定價模式。如需所有 API 的定價資訊,請參閱 Places SDK for iOS 定價 (新版)。
必須遮蓋欄位。您必須指定要傳回的欄位 回應。沒有預設的傳回欄位清單。如果您省略 清單中,這些方法會傳回錯誤。
如要提出要求,請呼叫新的
GMSPlacesClient fetchPlaceWithRequest:
敬上 方法。傳遞至要求:
新的
GMSFetchPlaceRequest
敬上 類別,用來定義所有請求參數,例如地點 ID 和 工作階段符記型別的回呼
GMSPlaceResultCallback
敬上 處理回應。
回應會包含
GMSPlace
敬上 包含地點詳細資訊的執行個體。types
中的值GMSPlace
例項的屬性現在由 表 A 和 表 B.回應
GMSPlace
執行個體包含新的reviews
屬性為GMSPlaceReview
。 當應用程式顯示從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); } }];