Places SDK for iOS は、既存の Place Details をサポートしています。既存の Places SDK for iOS を使い慣れている場合は、新しいバージョンの Place Details で、次の変更が行われています。
新しい料金モデルを採用している。すべての 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
インスタンスに渡します。また、この例ではフィールド マスクを使用して、場所の表示名とウェブサイト URL のみがレスポンスに含まれるようにしています。
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); } }];