Place Details

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

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

場所の詳細

GMSPlace クラスは特定の場所に関する情報を提供します。こちらの GMSPlace 次のように指定できます。

場所をリクエストするときは、リクエストする場所データのタイプを指定する必要があります。 戻ります。これを行うには、データを指定する GMSPlaceField を渡します。 返すことができます。これは重要な考慮事項です 追加費用が発生します

プレイスデータの結果を空にすることはできないため、プレイスのみ を含む結果が返されます(たとえば、リクエストされた場所に 結果に photos フィールドは表示されません)。

次の例では、2 つのフィールド値のリストが渡されます リクエストによって返されるデータを指定できます。

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

Objective-C

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

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

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

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

  • name - 場所の名前。
  • editorialSummary – 場所の簡単な説明を示します。
  • placeID – 場所のテキスト識別子。読む プレイス ID については、後ほど詳しく説明します。
  • coordinate – 場所の地理的位置。 緯度と経度の座標で指定されます。
  • phoneNumber – 場所の電話番号( 使用します。
  • formattedAddress - 人が読める形式のアドレス。 あります。

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

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

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

  • openingHours – 場所の営業時間( (GMSOpeningHours で表される)によって表されるデータです。発信 GMSOpeningHours.weekdayText: ローカライズされた文字列のリストを取得します。 曜日と時間帯を表します。GMSOpeningHours.Periods に電話 より詳細な情報を含む GMSPeriod のリストを返す これは weekdayText によって提供されるデータと同等です。 注: 常に営業している場合、期間は 日曜日の午前 0 時で、closeEvent は null です。
  • currentOpeningHourssecondaryOpeningHours - 場所の休日および一時的なスケジュールの変更を行うフィールド。
  • addressComponents - 次の配列の配列 各要素のコンポーネントを表す GMSAddressComponent オブジェクト 検索します。これらのコンポーネントは、Terraform が 場所の住所に関する構造化された情報を抽出します。 検索したりすることもできます。これらのコンポーネントは使用しないでください 住所の形式代わりに formattedAddress を使用してください。 プロパティを使用して、ローカライズされた形式の住所を提供します。

    addressComponents に関する次の点に注意してください 配列:

    • 住所コンポーネントの配列には、 formattedAddress
    • この配列には、必ずしもすべての政治団体が メールに含まれるものとは別に、 formattedAddress
    • レスポンスの形式は、 できます。特に、addressComponents の数は、 によって異なり、随時 同じ住所に到着しますコンポーネントは配列内の位置を変更できます。 コンポーネントのタイプは変わる場合があります。特定のコンポーネントを 含まれません。
  • userRatingsTotal - 構成するレビューの数を表します 場所の評価です。

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

  • <ph type="x-smartling-placeholder"></ph> isOpen は、場所が所定の時間に営業しているかどうかを計算します。 出典: openingHours および UTCOffsetMinutes、 現在の日時が表示されます。
  • isOpenAtDate 特定の日付に営業しているかどうかを openingHours および UTCOffsetMinutes、 現在の日時が表示されます。
  • これらの関数を使用して営業時間や日付を取得すると、元の fetchPlaceFromPlaceID: または findPlaceLikelihoodsFromUserLocationWithPlaceFields: リクエストには GMSPlaceFieldOpeningHoursGMSPlaceFieldUTCOffsetMinutes の両方を指定する必要があります。 表示されます。これらのフィールドのいずれかがない場合、結果の GMSPlace オブジェクトに営業時間や日付は含まれず、 GMSPlaceOpenStatusUnknown。正確な結果を得るには、 GMSPlaceFieldBusinessStatusGMSPlaceFieldUTCOffsetMinutes フィールドを宣言する必要があります。リクエストされていない場合、 把握することです

    使用方法については、こちらの動画をご覧ください。 Place Details を含む isOpen

特別営業時間を取得する

openingHours の通常の営業時間は取得されますが、currentOpeningHourssecondaryOpeningHours は休日および一時的なスケジュールの変更をサポートします。 特別営業時間がある場合は、それをフィルタして表示することができます。

Swift

    func examineOpeningHours(place: GMSPlace) {

      // Check if the current opening hours contains a special day that has exceptional hours
      guard let currentOpeningHours = place.currentOpeningHours else { return }
      if let specialDays = currentOpeningHours.specialDays {
        guard !specialDays.isEmpty else { return }
        if let specialDay = specialDays.filter { $0.isExceptional }.first  {
          // Indicate exceptional hours
        }
      }

      // Check if current opening hours contains a truncated time period
      let periods = currentOpeningHours.periods

      if !periods.isEmpty {
        for period in periods {
          let open = period.open
          let close = period.close

          if let open = open {
            let date = open.date

            if open.isTruncated {
              // Indicate truncated time period
            }
          }
        }
      }

      // Check if the place's secondary opening hours indicate when delivery is available
      let secondaryOpeningHours = place.secondaryOpeningHours
      guard let hoursType = secondaryOpeningHours.first?.hoursType else {
      return
      }

      if (hoursType == GMSPlaceHoursTypeDelivery) {
        // Indicate hours where delivery is available
      }
  }

Objective-C

- (void)examineOpeningHours:(GMSPlace *) place {

    // Check if the current opening hours contains a special day that has exceptional hours
    GMSOpeningHours *currentOpeningHours = place.currentOpeningHours;
    if (currentOpeningHours != nil) {
      NSArray<GMSPlaceSpecialDay *> *specialDays = currentOpeningHours.specialDays;
      if ([specialDays count] != 0) {
        for (GMSPlaceSpecialDay *specialDay in specialDays) {
          NSDate *date = specialDay.date;
          if ([specialDay isExceptional]) {
            // Indicate exceptional hours
          }
        }
      }
    }

    // Check if current opening hours contains a truncated time period
    NSArray <GMSPeriod *> * periods = currentOpeningHours.periods;

    if ([periods count] != 0) {
      for (GMSPeriod * period in periods) {
        GMSTimeOfWeek *open = period.open;
        GMSTimeOfWeek *close = period.close;

        if (open) {
          if ([open isTruncated]) {
            // Indicate truncated time period
          }
        }
      }
    }

    // Check if the place's secondary opening hours indicate when delivery is available
    GMSOpeningHours *secondaryOpeningHours = place.secondaryOpeningHours;
    GMSPlaceHoursType hoursType = secondaryOpeningHours.getHoursType;

    if (hoursType == GMSPlaceHoursTypeDelivery) {
      // Indicate hours where delivery is available
    }
}

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 について説明します。

1 つのプレイス ID が参照できる場所は 1 つのみですが、1 つの場所に複数の場所を指定できます 組み合わせることもできます

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

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

詳しくは、 プレイス ID の概要をご覧ください。