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

GooglePlacesSwift

// 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 オブジェクトには、フィールド リストで指定されたフィールドのみが入力されます。

レスポンスの GMSPlace オブジェクトには、データ フィールドに加えて、次のメンバー関数が含まれています。

  • isOpen は、指定された時間に場所が営業しているかどうかを計算します。
  • isOpenAtDate は、特定の日に場所が営業しているかどうかを計算します。

必須パラメータ

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

プレイス ID

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

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

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

フィールド リスト

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

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

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

    GMSPlacePropertyPlaceIDGMSPlacePropertyNameGMSPlacePropertyPhotos

  • 以下のフィールドによって Place Details(Location Only)SKU がトリガーされます。

    GMSPlacePropertyAddressComponentsGMSPlacePropertyFormattedAddressGMSPlacePropertyCoordinateGMSPlacePropertyPlusCodeGMSPlacePropertyTypesGMSPlacePropertyViewport

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

    GMSPlacePropertyBusinessStatusGMSPlacePropertyIconBackgroundColorGMSPlacePropertyIconImageURLGMSPlacePropertyUTCOffsetMinutesGMSPlacePropertyWheelchairAccessibleEntrance

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

    GMSPlacePropertyCurrentOpeningHoursGMSPlacePropertySecondaryOpeningHoursGMSPlacePropertyPhoneNumberGMSPlacePropertyPriceLevelGMSPlacePropertyRatingGMSPlacePropertyOpeningHoursGMSPlacePropertyUserRatingsTotalGMSPlacePropertyWebsite

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

    GMSPlacePropertyCurbsidePickupGMSPlacePropertyDeliveryGMSPlacePropertyDineInGMSPlacePropertyEditorialSummaryGMSPlacePropertyReservableGMSPlacePropertyReviewsGMSPlacePropertyServesBeerGMSPlacePropertyServesBreakfastGMSPlacePropertyServesBrunchGMSPlacePropertyServesDinnerGMSPlacePropertyServesLunchGMSPlacePropertyServesVegetarianFoodGMSPlacePropertyServesWineGMSPlacePropertyTakeout

次の例では、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];
  

GooglePlacesSwift

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

セッション トークンは、オートコンプリート(新機能)の呼び出しを「セッション」としてトラッキングする、ユーザー生成の文字列です。オートコンプリート(新機能)は、セッション トークンを使用して、ユーザーのオートコンプリート検索におけるクエリと場所選択のフェーズを個別のセッションにグループ化し、請求を行います。セッション トークンは、Autocomplete(New)呼び出しに続く Place Details(New)呼び出しに渡されます。詳細については、セッション トークンをご覧ください。

アプリに属性を表示する

アプリが GMSPlacesClient から取得した情報(写真やレビューなど)を表示する場合、必要な属性も表示する必要があります。

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

詳細については、アトリビューションのドキュメントをご覧ください。