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
オブジェクトの
次のメンバー関数が含まれます。
- <ph type="x-smartling-placeholder"></ph>
isOpen
は、ある場所が所定の時間に営業しているかどうかを計算します。 isOpenAtDate
特定の日付に営業しているかどうかを計算します。
必須パラメータ
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];
GooglePlacesSwift
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
オプション パラメータ
GMSFetchPlaceRequest
オブジェクトを使用して、オプションのパラメータを指定します。
regionCode
レスポンスのフォーマットに使用される地域コード。 <ph type="x-smartling-placeholder"></ph> 2 文字の CLDR コードの値。このパラメータはバイアス効果をもたらすことも 表示されます。デフォルト値はありません。
レスポンスの住所フィールドの国名が 地域コードは、住所から省略されます。
ほとんどの CLDR コードは ISO 3166-1 コードと同一です。 いくつか例外がありますたとえば、英国の ccTLD は 「uk」(.co.uk)、ISO 3166-1 コードは「gb」(技術的には、 「グレート ブリテンおよび北アイルランド連合王国」という当事者である必要があります)。 このパラメータは、適用される法律に基づき、結果に影響する場合があります。
sessionToken
セッション トークンは、予測入力を追跡するユーザー生成文字列です。 (新規)通話を「セッション」と呼びます。予測入力(新版)ではセッション トークンを使用して ユーザーの予測入力検索のクエリと場所選択のフェーズを個別のセッションにグループ化する 請求に使用されます。セッション トークンが Place Details に渡される(新) 。詳細については、次をご覧ください: セッション トークン。
アプリに属性を表示する
以下から取得した情報をアプリが表示するタイミング
GMSPlacesClient
必要な帰属情報も表示する必要があります。
たとえば、GMSPlacesClient
オブジェクトの reviews
プロパティは、
最大 5 つの配列を含む
GMSPlaceReview
説明します。各 GMSPlaceReview
オブジェクトには、帰属表示と著者帰属を含めることができます。
アプリにレビューを表示する場合は、帰属情報または投稿者も表示する必要があります。
あります。
詳細については、このモジュールのコースリソースに アトリビューション。