Places SDK for iOS はアプリに豊富な情報を提供 場所に関する情報(場所の名前や住所、 緯度と経度の座標で指定された場所、場所のタイプ( ナイトクラブ、ペットショップ、美術館など)。特定の期間にこの情報にアクセスするには、 固定の識別子であるプレイス ID を使用して 場所を特定します。
場所の詳細
「
GMSPlace
クラスは特定の場所に関する情報を提供します。こちらの
GMSPlace
次のように指定できます。
- 発信
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
。詳しくは、 現在地を取得することができます。 - 発信
GMSPlacesClient fetchPlaceFromPlaceID:
、GMSPlaceField
、 コールバックメソッドが含まれますPlace Details リクエストで リクエストで少なくとも 1 つのフィールドを指定するか、fields
を省略した場合 パラメータがすべて渡されると、指定可能なすべてのフィールドが返され、 適宜課金されます詳しくは、 place by ID になります。
場所をリクエストするときは、リクエストする場所データのタイプを指定する必要があります。
戻ります。これを行うには、データを指定する 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 です。currentOpeningHours
とsecondaryOpeningHours
- 場所の休日および一時的なスケジュールの変更を行うフィールド。addressComponents
- 次の配列の配列 各要素のコンポーネントを表すGMSAddressComponent
オブジェクト 検索します。これらのコンポーネントは、Terraform が 場所の住所に関する構造化された情報を抽出します。 検索したりすることもできます。これらのコンポーネントは使用しないでください 住所の形式代わりにformattedAddress
を使用してください。 プロパティを使用して、ローカライズされた形式の住所を提供します。addressComponents
に関する次の点に注意してください 配列:- 住所コンポーネントの配列には、
formattedAddress
。 - この配列には、必ずしもすべての政治団体が
メールに含まれるものとは別に、
formattedAddress
。 - レスポンスの形式は、
できます。特に、
addressComponents
の数は、 によって異なり、随時 同じ住所に到着しますコンポーネントは配列内の位置を変更できます。 コンポーネントのタイプは変わる場合があります。特定のコンポーネントを 含まれません。
- 住所コンポーネントの配列には、
userRatingsTotal
- 構成するレビューの数を表します 場所の評価です。
「
GMSPlace
クラスには次のメンバー関数が含まれています。
- <ph type="x-smartling-placeholder"></ph>
isOpen
は、場所が所定の時間に営業しているかどうかを計算します。 出典:openingHours
およびUTCOffsetMinutes
、 現在の日時が表示されます。 isOpenAtDate
特定の日付に営業しているかどうかをopeningHours
およびUTCOffsetMinutes
、 現在の日時が表示されます。
これらの関数を使用して営業時間や日付を取得すると、元の
fetchPlaceFromPlaceID:
または findPlaceLikelihoodsFromUserLocationWithPlaceFields:
リクエストには GMSPlaceFieldOpeningHours
と GMSPlaceFieldUTCOffsetMinutes
の両方を指定する必要があります。
表示されます。これらのフィールドのいずれかがない場合、結果の GMSPlace
オブジェクトに営業時間や日付は含まれず、
GMSPlaceOpenStatusUnknown
。正確な結果を得るには、
GMSPlaceFieldBusinessStatus
と GMSPlaceFieldUTCOffsetMinutes
フィールドを宣言する必要があります。リクエストされていない場合、
把握することです
isOpen
。
特別営業時間を取得する
openingHours
の通常の営業時間は取得されますが、currentOpeningHours
と secondaryOpeningHours
は休日および一時的なスケジュールの変更をサポートします。
特別営業時間がある場合は、それをフィルタして表示することができます。
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 の概要をご覧ください。