Place Details(新規)

プラットフォームを選択: Android iOS JavaScript ウェブサービス

Places SDK for iOS(新版)はアプリに豊富な情報を提供 場所に関する情報(場所の名前や住所、 緯度と経度の座標で指定された場所、場所のタイプ( ナイトクラブ、ペットショップ、美術館など)。特定の期間にこの情報にアクセスするには、 固定の識別子であるプレイス ID を使用して 場所を特定します。

Place Details を取得する

GMSPlace クラスには特定の場所に関する情報が格納されています。これには、 場所データ フィールド(新)。手に入れよう: GMSPlace 呼び出すことによって、 GMSPlacesClient fetchPlaceWithRequest:, GMSFetchPlaceRequest オブジェクトと 型のコールバック メソッド GMSPlaceResultCallback

GMSFetchPlaceRequest オブジェクトでは以下を指定します。

  • (必須)プレイス ID(Google プレイス内の場所の一意の識別子) Google マップ上で実行できます
  • (必須)GMSPlace オブジェクトで返すフィールドのリスト。 フィールド マスクGMSPlaceProperty。 フィールド リストで 1 つ以上のフィールドを指定しない場合、またはフィールドを省略した場合 その場合、呼び出しはエラーを返します。
  • (省略可)レスポンスのフォーマットに使用される地域コード。
  • (省略可)予測入力(新規)セッションを終了するために使用されるセッション トークン。

Place Details リクエストを行う

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

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

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

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);
  }
}];

Places Swift SDK for iOS(プレビュー)

// 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
}

Place Details レスポンス

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

営業状況を確認する

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

このメソッドは、以下を含む GMSPlaceIsOpenWithRequest 型の引数を 1 つ取ります。

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

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

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

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

isOpenWithRequest レスポンス

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

言語 オープンの場合の値 閉じた場合の値 ステータスが不明な場合の値
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift(プレビュー) true false nil

isOpenWithRequest の請求

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

例: GMSPlaceIsOpenWithRequest リクエストを行う

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

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
            }
          }];
          

GooglePlacesSwift

          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
          }
          

必須パラメータ

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

プレイス ID

Places SDK for iOS で使用されるプレイス ID は、 Places API(Places SDK for Android)で使用されているものと同じ識別子 使用できます。1 つのプレイス ID が参照できる場所は 1 つのみですが、1 つの場所に複数の場所を指定できます 組み合わせることもできます

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

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

フィールド リスト

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

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

  • 以下のフィールドで Place Details(ID のみ)SKU がトリガーされます。

    GMSPlacePropertyPlaceIDGMSPlacePropertyNameGMSPlacePropertyPhotos

  • 次のフィールドで Place Details(場所のみ)SKU がトリガーされます。

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • 以下のフィールドで Place Details(Basic)SKU がトリガーされます。

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • 以下のフィールドで Place Details(Advanced)SKU がトリガーされます。

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

  • 以下のフィールドで Place Details(Preferred)SKU がトリガーされます。

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

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

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];
  

Places Swift SDK for iOS(プレビュー)

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

オプション パラメータ

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

regionCode

レスポンスのフォーマットに使用される地域コード。 2 文字の CLDR コードの値。このパラメータはバイアス効果をもたらすことも 表示されます。デフォルト値はありません。

レスポンスの住所フィールドの国名が 地域コードは、住所から省略されます。

ほとんどの CLDR コードは ISO 3166-1 コードと同一です。 いくつか例外がありますたとえば、英国の ccTLD は 「uk」(.co.uk)、ISO 3166-1 コードは「gb」(技術的には、 「グレート ブリテンおよび北アイルランド連合王国」という当事者である必要があります)。 このパラメータは、適用される法律に基づき、結果に影響する場合があります。

sessionToken

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

アプリに属性を表示する

以下から取得した情報をアプリが表示するタイミング GMSPlacesClient 必要な帰属情報も表示する必要があります。

たとえば、GMSPlacesClient オブジェクトの reviews プロパティは、 最大 5 つの配列を GMSPlaceReview 説明します。各 GMSPlaceReview オブジェクトには、帰属表示と著者帰属を含めることができます。 アプリにレビューを表示する場合は、帰属情報または著者名も表示する必要があります。 あります。

詳細については、このモジュールのコースリソースに アトリビューション