Place Details(新規)

プラットフォームを選択: Android iOS JavaScript ウェブサービス
欧州経済領域(EEA)のデベロッパー

Places SDK for iOS(New)は、場所の名前と住所、緯度/経度座標で指定された地理的位置、場所の種類(ナイトクラブ、ペットショップ、博物館など)など、場所に関する豊富な情報をアプリに提供します。特定の場所のこの情報にアクセスするには、プレイス ID(場所を一意に識別する安定した識別子)を使用します。

Place Details を取得する

GMSPlace クラスには、特定の場所に関する情報( Place Data Fields(New)に示されているすべてのデータ フィールドなど)が含まれています。 GMSPlace オブジェクトを取得するには、 GMSPlacesClient fetchPlaceWithRequest: を呼び出し、 GMSFetchPlaceRequest オブジェクトと GMSPlaceResultCallback 型のコールバック メソッドを渡します。

GMSFetchPlaceRequest オブジェクトは、次のものを指定します。

  • (必須)プレイス ID。Google プレイス のデータベースおよび Google マップで、特定の場所を一意に識別する ID です。
  • (必須)GMSPlace オブジェクトで返されるフィールドのリスト。GMSPlaceProperty で定義されているフィールド マスクとも呼ばれます。フィールド リストで 1 つ以上のフィールドを指定しない場合、またはフィールド リストを省略した場合、呼び出しはエラーを返します。
  • (省略可)レスポンスのフォーマットに使用するリージョン コード。
  • (省略可)Autocomplete(New)セッションを終了するために使用するセッション トークン。

Place Details リクエストを行う

この例では、次のパラメータを渡して、ID で場所を取得します。

  • ChIJV4k8_9UodTERU5KXbkYpSYs のプレイス ID。
  • 場所の名前とウェブサイトの URL を返すように指定するフィールド リスト。
  • 結果を処理する GMSPlaceResultCallback

API は、指定されたコールバック メソッドを呼び出し、 GMSPlace オブジェクトを渡します。場所が見つからない場合、プレイス オブジェクトは nil になります。

Places Swift SDK

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil)

client.fetchPlace(with: 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 *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties 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);
  }
}];

Place Details レスポンス

Place Details は、場所の詳細を含む GMSPlace オブジェクトを返します。GMSPlace オブジェクトには、フィールド リストで指定されたフィールドのみが入力されます。

営業ステータスを取得する

GMSPlacesClient オブジェクトには、isOpenWithRequest(Swift では isOpenRequest、GooglePlacesSwift では isPlaceOpenRequest)というメンバー関数が含まれています。この関数は、呼び出しで指定された時間に基づいて、場所が現在営業中かどうかを示すレスポンスを返します。

このメソッドは、次のものを含む GMSPlaceIsOpenWithRequest 型の単一の引数を受け取ります。

  • A GMSPlace オブジェクト、またはプレイス ID を指定する文字列。必要なフィールドを含む Place オブジェクトの作成について詳しくは、Place Details をご覧ください。
  • 確認する時間を指定する、省略可能な NSDate(Obj-C)または Date(Swift)オブジェクト。時間が指定されていない場合は、デフォルトで現在時刻が使用されます。
  • レスポンスを処理する GMSPlaceOpenStatusResponseCallback メソッド。
  • >

GMSPlaceIsOpenWithRequest メソッドでは、GMSPlace オブジェクトに次のフィールドを設定する必要があります:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

これらのフィールドが Place オブジェクトに指定されていない場合、またはプレイス ID を渡した場合、メソッドは GMSPlacesClient GMSFetchPlaceRequest: を使用して取得します。

isOpenWithRequest レスポンス

isOpenWithRequest は、GMSPlaceIsOpenResponse オブジェクトを返します。このオブジェクトには、ビジネスが営業中か閉店しているか、ステータスが不明かどうかを示す status というブール値が含まれています。

言語 営業中の場合の値 閉店している場合の値 ステータスが不明な場合の値
Places Swift true false nil
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown

isOpenWithRequest の請求

  • GMSPlacePropertyUTCOffsetMinutes フィールドと GMSPlacePropertyBusinessStatus フィールドは、Basic Data SKU で課金されます。その他の営業時間については、Place Details Enterprise SKU で課金されます。
  • 以前のリクエストで GMSPlace オブジェクトにこれらのフィールドがすでに含まれている場合、再度課金されることはありません。

例: GMSPlaceIsOpenWithRequest リクエストを行う

次の例は、既存の GMSPlace オブジェクト内で GMSPlaceIsOpenWithRequest を初期化する方法を示しています。

Places Swift SDK

        let isOpenRequest = IsPlaceOpenRequest(place: place)
        switch await placesClient.isPlaceOpen(with: isOpenRequest) {
          case .success(let isOpenResponse):
            switch isOpenResponse.status {
              case true:
                // Handle open
              case false:
                // Handle closed
              case nil:
                // Handle unknown
          case .failure(let placesError):
            // Handle error
        }
        

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];

          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }

            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

必須パラメータ

必須パラメータを指定するには、GMSFetchPlaceRequest オブジェクトを使用します。

プレイス ID

Places SDK for iOS で使用されるプレイス IDは、Places API、Places SDK for Android 、その他の Google API で使用される識別子と 同じです。各プレイス ID は 1 つの場所のみを参照できますが、1 つの場所に複数のプレイス ID を設定できます。

場所が新しいプレイス ID を取得する場合があります。 たとえば、お店やサービスが新しい場所に移動するケースが考えられます。

プレイス ID を指定して場所をリクエストすると、レスポンスで常に同じ場所が返されることが保証されます(その場所がまだ存在する場合)。ただし、レスポンスにはリクエストのプレイス ID とは異なるプレイス ID が含まれる場合があります。

フィールド リスト

Place Details をリクエストする場合は、場所の GMSPlace オブジェクトで返すデータをフィールド マスクとして指定する必要があります。フィールド マスクを定義するには、GMSPlaceProperty の値の配列を GMSFetchPlaceRequest オブジェクトに渡します。 フィールド マスキングは、不要なデータをリクエストしないようにするための優れた設計手法です。これにより、不要な処理時間や請求を回避できます。

次のフィールドを 1 つ以上指定します。

  • 次のフィールドは、Place Details Essentials ID Only SKU をトリガーします。

    GMSPlacePropertyPlaceID
    GMSPlacePropertyPhotos

    フィールドとそれに関連付けられた SKU の完全なリストについては、Place Data Fields(New)をご覧ください。

  • 次のフィールドは、Place Details Essentials SKU をトリガーします。

    GMSPlacePropertyAddressComponents
    GMSPlacePropertyFormattedAddress
    GMSPlacePropertyCoordinate
    GMSPlacePropertyPlusCode
    GMSPlacePropertyTypes
    GMSPlacePropertyViewport

    フィールドとそれに関連付けられた SKU の完全なリストについては、Place Data Fields(New)をご覧ください。

  • 次のフィールドは、Place Details Pro SKU をトリガーします。

    GMSPlacePropertyBusinessStatus
    GMSPlacePropertyIconBackgroundColor
    GMSPlacePropertyIconImageURL
    GMSPlacePropertyName
    GMSPlacePropertyUTCOffsetMinutes
    GMSPlacePropertyWheelchairAccessibleEntrance

    フィールドとそれに関連付けられた SKU の完全なリストについては、Place Data Fields(New)をご覧ください。

  • 次のフィールドは、Place Details Pro SKU をトリガーします。

    GMSPlacePropertyCurrentOpeningHours
    GMSPlacePropertySecondaryOpeningHours
    GMSPlacePropertyPhoneNumber
    GMSPlacePropertyPriceLevel
    GMSPlacePropertyRating
    GMSPlacePropertyOpeningHours
    GMSPlacePropertyUserRatingsTotal
    GMSPlacePropertyWebsite

    フィールドとそれに関連付けられた SKU の完全なリストについては、Place Data Fields(New)をご覧ください。

  • 次のフィールドは、Place Details Enterprise SKU をトリガーします。

    GMSPlacePropertyCurbsidePickup
    GMSPlacePropertyDelivery
    GMSPlacePropertyDineIn
    GMSPlacePropertyEditorialSummary
    GMSPlacePropertyReservable
    GMSPlacePropertyReviews
    GMSPlacePropertyServesBeer
    GMSPlacePropertyServesBreakfast
    GMSPlacePropertyServesBrunch
    GMSPlacePropertyServesDinner
    GMSPlacePropertyServesLunch
    GMSPlacePropertyServesVegetarianFood
    GMSPlacePropertyServesWine
    GMSPlacePropertyTakeout

    フィールドとそれに関連付けられた SKU の完全なリストについては、Place Data Fields(New)をご覧ください。

次の例では、2 つの フィールド値 のリストを渡して、リクエストによって返される GMSPlace オブジェクトに name フィールドと placeID フィールドが含まれるように指定します。

Places Swift SDK

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

オプション パラメータ

オプション パラメータを指定するには、GMSFetchPlaceRequest オブジェクトを使用します。

regionCode

レスポンスのフォーマットに使用するリージョン コード。 2 文字の CLDR コード値として指定します。このパラメータは、検索結果にバイアス効果を与えることもできます。デフォルト値はありません。

レスポンスのアドレス フィールドの国名がリージョン コードと一致する場合、国コードはアドレスから省略されます。

ほとんどの CLDR コードは ISO 3166-1 コードと同一ですが、いくつか注意が必要な例外もあります。たとえば、イギリスの ccTLD は「uk」(.co.uk)ですが、ISO 3166-1 コードは「gb」(厳密には「グレートブリテンおよび北アイルランド連合王国」のエンティティ)です。 パラメータは、適用される法律に基づいて結果に影響を与える可能性があります。

sessionToken

セッション トークンは、Autocomplete(New)の呼び出しを「セッション」として追跡するユーザー生成の文字列です。 Autocomplete(New)は、セッション トークンを使用して、予測入力検索でのユーザーのクエリと場所の選択フェーズを、請求処理のために個別のセッションにグループ化します。セッション トークンは、Autocomplete(New)の呼び出しに続く Place Details(New)の呼び出しに渡されます。詳細については、 セッション トークンをご覧ください。

アプリに属性を表示する

アプリで GMSPlacesClientから取得した情報(写真やクチコミなど)を表示する場合は、必要な帰属情報も表示する必要があります。

たとえば、reviews オブジェクトの GMSPlacesClient プロパティ には、最大 5 つの GMSPlaceReview オブジェクトの配列が含まれています。各 GMSPlaceReview オブジェクトには、帰属情報と著作者の帰属情報を含めることができます。 アプリでクチコミを表示する場合は、帰属情報または著作者の帰属情報も表示する必要があります。

詳細については、 帰属情報に関するドキュメントをご覧ください。