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
メソッド。 >
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 がトリガーされます。
GMSPlacePropertyPlaceID
、GMSPlacePropertyName
、GMSPlacePropertyPhotos
次のフィールドで 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
オブジェクトには、帰属表示と著者帰属を含めることができます。
アプリにレビューを表示する場合は、帰属情報または著者名も表示する必要があります。
あります。
詳細については、このモジュールのコースリソースに アトリビューション。