Place Details への移行(新規)

Places SDK for iOS は、場所の詳細(以前のバージョン)をサポートしています。Places SDK for iOS(以前のバージョン)をご存知の場合は、Place Details(新しいバージョン)で次の変更が行われます。

  • 新しい料金モデルを使用します。すべての API の料金については、Places SDK for iOS(新版)の料金をご覧ください。

  • フィールドのマスキングが必要です。レスポンスで返すフィールドを指定する必要があります。返されるフィールドのデフォルトのリストはありません。このリストを省略すると、メソッドはエラーを返します。

  • リクエストを行うには、新しい GMSPlacesClient fetchPlaceWithRequest: メソッドを呼び出します。

  • リクエストに渡します。

    • 場所 ID やセッション トークンなど、すべてのリクエスト パラメータを定義する新しい GMSFetchPlaceRequest クラスのインスタンス。

    • レスポンスを処理する 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);
  }
}];