Place Details

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

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

場所の詳細

GMSPlace クラスは、特定の場所に関する情報を提供します。GMSPlace オブジェクトを保持する方法は次のとおりです。

プレイス フィールド

場所をリクエストする際は、返す場所データの種類を指定する必要があります。これを行うには、GMSPlaceField を渡し、返すデータ型を指定します。これは各リクエストの費用に影響するため、重要な考慮事項です。プレイスデータの結果は空にできないため、データを含むプレイスの結果のみが返されます(たとえば、リクエストされたプレイスに写真がない場合、photos フィールドは結果に表示されません)。次のフィールドを 1 つ以上指定できます。

  • GMSPlaceFieldName
  • GMSPlaceFieldPlaceID
  • GMSPlaceFieldPlusCode
  • GMSPlaceFieldBusinessStatus
  • GMSPlaceFieldCoordinate
  • GMSPlaceFieldOpeningHours
  • GMSPlaceFieldPhoneNumber
  • GMSPlaceFieldFormattedAddress
  • GMSPlaceFieldRating
  • GMSPlaceFieldPriceLevel
  • GMSPlaceFieldTypes
  • GMSPlaceFieldWebsite
  • GMSPlaceFieldViewport
  • GMSPlaceFieldAddressComponents
  • GMSPlaceFieldPhotos
  • GMSPlaceFieldUserRatingsTotal
  • GMSPlaceFieldIconImageURL
  • GMSPlaceFieldIconBackgroundColor
  • GMSPlaceFieldUTCOffsetMinutes
  • GMSPlaceFieldAll

詳しくは、場所のフィールドの概要をご覧ください。場所のデータのリクエストに対する課金方法については、使用量と課金をご覧ください。

GMSPlace クラスには、次の場所データを含めることができます。

  • name - 場所の名前。
  • placeID - 場所のテキスト表記の ID。場所 ID について詳しくは、このページの後の部分をご覧ください。
  • coordinate - 場所の地理的位置(緯度と経度の座標で指定)。
  • businessStatus - ビジネスのオペレーション ステータス(ビジネスの場合)。GMSBusinessStatusOperationalGMSBusinessStatusClosedTemporarilyGMSBusinessStatusClosedPermanentlyGMSBusinessStatusUnknown のいずれかの値を含めることができます。
  • phoneNumber - 国際電話番号形式の場所の電話番号。
  • formattedAddress - 人が読める形式のこの場所の住所。

    ほとんどの場合、この住所は「郵便の宛先」と同一ですイギリスなど一部の国では、ライセンス上の制限があるため実際の郵便の宛先は配信できません。

    フォーマット済み住所は、論理的には 1 つ以上の住所コンポーネントで構成されます。たとえば、「111 8th Avenue, New York, NY」という住所は、「111」(番地)、「8th Avenue」(道路名)、「New York」(都市名)、「NY」(アメリカの州名)で構成されています。

    フォーマット済み住所は、プログラムで解析しないでください。その代わりに、フォーマット済み住所のフィールドに加えて、API レスポンスに含まれる個々の住所コンポーネントを使用してください。

  • rating – 集計されたユーザー レビューに基づく、1.0 ~ 5.0 の値を持つ浮動小数点として返される場所の評価。
  • openingHours - 場所の営業時間(GMSOpeningHours で表します)。GMSOpeningHours.weekdayText を呼び出して、1 週間の毎日の営業時間のローカライズされた文字列のリストを取得します。GMSOpeningHours.Periods を呼び出して、weekdayText によって提供されるデータと同等の詳細情報を含む GMSPeriod のリストを返します。注: 場所が常に営業している場合、期間は日曜日の深夜 0 時で表され、closeEvent は null です。
  • plusCode - 場所の場所の Plus Code 表現。
  • priceLevel - この場所の価格レベル。0(最低)~ 4(最も高い)の範囲で整数として返されます。
  • types - この場所の特徴を表すタイプタイプのリスト。この配列は複数の値を含むことも、空にすることもできます。新しい値が事前通知なしに導入される場合があります。サポートされるタイプのリストをご覧ください。
  • website - 場所のウェブサイトの URI(既知の場合)。場所に関連付けられたビジネスまたはその他の事業体が管理しているウェブサイトです。
  • attributions - Places SDK for iOS から取得した Place Details をアプリで使用する場合に、ユーザーに表示する必要がある属性を含む NSAttributedString。アトリビューションの取得と表示の詳細については、アトリビューション ガイドをご覧ください。
  • addressComponents - 場所の住所のコンポーネントを表す GMSAddressComponent オブジェクトの配列。これらのコンポーネントは、場所の住所に関する構造化された情報を抽出すること(たとえば、場所がある都市の検索)を目的としています。これらのコンポーネントは、住所のフォーマットには使用しないでください。代わりに、ローカライズされた住所を表示する formattedAddress プロパティを使用してください。

    addressComponents 配列については、次の点に注意してください。

    • 住所コンポーネントの配列には、formattedAddress よりも多くのコンポーネントが含まれている場合があります。
    • この配列には、formattedAddress に含まれているもの以外の住所を持つ行政区画が、すべて含まれているとは限りません。
    • レスポンスの形式は、リクエスト間で同じになるとは限りません。特に、addressComponents の数はリクエストされた住所によって異なり、同じ住所でも将来的に変わる可能性があります。コンポーネントは、配列内の位置を変更できます。 コンポーネントのタイプは変わる場合があります。特定のコンポーネントが以降のレスポンスに含まれない場合があります。
  • userRatingsTotal - 場所の評価に含まれるクチコミ数です。
  • GMSPlaceFieldIconImageURL - 場所のタイプ(PNG 形式)を表すアイコンの URL。
  • GMSPlaceFieldIconBackgroundColor - 場所のタイプアイコンの背景色です。
  • UTCOffsetMinutes - 場所のタイムゾーンのオフセット(分単位)。

GMSPlace クラスには、次のメンバー関数が含まれています。

  • isOpen は、openingHoursUTCOffsetMinutes、現在の日時に基づいて、指定した時間に営業しているかどうかを表します。
  • isOpenAtDate は、openingHoursUTCOffsetMinutes、現在の日付と時刻に基づいて、指定した日付に営業しているかどうかを計算します。
  • これらの関数を使用して日時や日付を取得する場合は、元の fetchPlaceFromPlaceID: リクエストまたは findPlaceLikelihoodsFromUserLocationWithPlaceFields: リクエストで GMSPlaceFieldOpeningHoursGMSPlaceFieldUTCOffsetMinutes の両方のフィールドを指定する必要があります。これらのフィールドのいずれかが欠落している場合、結果の GMSPlace オブジェクトには開始時刻または日付が含まれず、呼び出しは GMSPlaceOpenStatusUnknown を返します。正確な結果を得るには、元の場所のリクエストで GMSPlaceFieldBusinessStatus フィールドと GMSPlaceFieldUTCOffsetMinutes フィールドをリクエストしてください。リクエストされなければ、ビジネスは営業中であるとみなされます。

    isOpen と Place Details を併用する方法については、こちらの動画をご覧ください。

ID でプレイスを取得する

場所 ID は、場所を一意に識別するテキスト表記の ID です。Places SDK for iOS では、GMSPlace オブジェクトから場所 ID を取得できます。場所 ID を保存して、後で GMSPlace オブジェクトを再度取得することもできます。

ID で場所を取得するには、GMSPlacesClient fetchPlaceFromPlaceID: を呼び出して、次のパラメータを渡します。

  • プレイス ID を含む文字列。
  • 1 つ以上の GMSPlaceField。返されるデータ型を指定します。
  • 呼び出しによってオートコンプリート クエリを終了させる場合のセッション トークン。それ以外の場合は、nil を渡します。
  • 結果を処理する GMSPlaceResultCallback

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

Swift

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

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeId, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeId = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_placesClient fetchPlaceFromPlaceID:placeId placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

アプリに属性を表示する

アプリに GMSPlacesClient lookUpPlaceID:callback: から取得した情報を表示する場合は、アトリビューションも表示する必要があります。アトリビューションに関するドキュメントをご覧ください。

プレイス ID について

Places SDK for iOS で使用される場所 ID は、Places API、Places SDK for Android などの Google API で使用される ID と同じです。

各場所 ID で参照できる場所は 1 つだけですが、1 つの場所が複数の場所 ID を持つことができます。

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

場所 ID を指定して場所をリクエストした場合、レスポンスで常に同じ場所を受け取ることができる(それでも場所が存在する場合)ため、ただし、レスポンスには、リクエストとは異なる場所 ID が含まれていることがあります。

詳しくは、場所 ID の概要をご覧ください。