Nearby Search(新版)リクエストは、検索する地域を入力として受け取ります
中心点の緯度と経度の座標で定義される、円として
半径を指定します。このリクエストは、一致する場所のリストを返します。各場所は
GMSPlace
オブジェクトです。
デフォルトでは、レスポンスには検索領域内のすべてのタイプの場所が含まれます。必要に応じて 明示的に含める、または除外する場所タイプのリストを指定することで、レスポンスをフィルタできます。 レスポンスが返されます。たとえば、次のタイプに該当する場所のみをレスポンスに含めるように指定できます。 「レストラン」、「ベーカリー」、「カフェ」を検索するか、「学校」タイプの場所をすべて除外します。
Nearby Search(新版)リクエスト
Nearby Search リクエストを行うには、
GMSPlacesClient searchNearbyWithRequest:
渡す
GMSPlaceSearchNearbyRequest
リクエスト パラメータとコールバック メソッドを定義するオブジェクト
GMSPlaceSearchNearbyResultCallback
、
レスポンスを処理します。
GMSPlaceSearchNearbyRequest
オブジェクトでは、すべての Pod が
required および optional
パラメータを指定します。必須パラメータは次のとおりです。
GMSPlace
オブジェクトで返されるフィールドのリスト。 フィールド マスク。GMSPlaceProperty
。 フィールド リストで 1 つ以上のフィールドを指定しない場合、またはフィールドを省略した場合 その場合、呼び出しはエラーを返します。- 場所の制限(検索範囲を定義する円)。
この例の付近の検索リクエストでは、レスポンスの GMSPlace
オブジェクトを指定しています。
場所の名前(GMSPlacePropertyName
)と場所の座標を含む
(GMSPlacePropertyCoordinate
)(検索内の各 GMSPlace
オブジェクトに対して)
表示されます。また、レスポンスをフィルタリングして、タイプが「restaurant」の場所のみを返すようにします。検索します。
Swift
// Array to hold the places in the response var placeResults: [GMSPlace] = [] // Define the search area as a 500 meter diameter circle in San Francisco, CA. let circularLocationRestriction = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500) // Specify the fields to return in the GMSPlace object for each place in the response. let placeProperties = [GMSPlaceProperty.name, GMSPlaceProperty.coordinate].map {$0.rawValue} // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. var request = GMSPlaceSearchNearbyRequest(locationRestriction: circularLocationRestriction, placeProperties: placeProperties) let includedTypes = ["restaurant", "cafe"] request.includedTypes = includedTypes let callback: GMSPlaceSearchNearbyResultCallback = { [weak self] results, error in guard let self, error == nil else { if let error { print(error.localizedDescription) } return } guard let results = results as? [GMSPlace] else { return } placeResults = results } GMSPlacesClient.shared().searchNearby(with: request, callback: callback)
Objective-C
// Array to hold the places in the response _placeResults = [NSArray array]; // Define the search area as a 500 meter diameter circle in San Francisco, CA. id<GMSPlaceLocationRestriction> circularLocation = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500); // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. GMSPlaceSearchNearbyRequest *request = [[GMSPlaceSearchNearbyRequest alloc] initWithLocationRestriction:circularLocation placeProperties:@[ GMSPlacePropertyName, GMSPlacePropertyCoordinate ]]; // Set the place types to filter on. NSArray<NSString *> *includedTypes = @[ @"restaurant", @"cafe" ]; request.includedTypes = [[NSMutableArray alloc] initWithArray:includedTypes]; [_placesClient searchNearbyWithRequest:request callback:^(NSArray<GMSPlace *> *_Nullable places, NSError *_Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { // Get list of places. _placeResults = places; } } ];
Places Swift SDK for iOS(プレビュー)
let restriction = CircularCoordinateRegion(center: CLLocationCoordinate2DMake(37.7937, -122.3965), radius: 500) let searchNearbyRequest = SearchNearbyRequest( locationRestriction: restriction, placeProperties: [ .name, .coordinate], includedTypes: [ .restaurant, .cafe ], ) switch await placesClient.searchNearby(with: searchNearbyRequest) { case .success(let places): // Handle places case .failure(let placesError): // Handle error }
Nearby Search のレスポンス
Nearby Search API は、一致した文字列をGMSPlace
一致する場所ごとに 1 つの 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 }
必須パラメータ
GMSPlaceSearchNearbyRequest
オブジェクトを使用して、Terraform の必須パラメータを指定します。
表示されます。
-
フィールド リスト
Place Details をリクエストする場合は、リクエストするデータを指定する必要があります。
GMSPlace
オブジェクトでフィールド マスクとして返されます。目標を定義するには、 渡すには、フィールド マスクから値の配列をGMSPlaceProperty
GMSPlaceSearchNearbyRequest
オブジェクトに追加します。 フィールド マスキングは、不要なデータをリクエストしないようにするための優れた設計プラクティスです。 不要な処理時間と料金請求を回避できます次のフィールドを 1 つ以上指定します。
次のフィールドによって Nearby Search(Basic)SKU:
GMSPlacePropertyAddressComponents
,GMSPlacePropertyBusinessStatus
,GMSPlacePropertyCoordinate
,GMSPlacePropertyFormattedAddress
、GMSPlacePropertyName
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyPhotos
,GMSPlacePropertyPlaceID
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyViewport
,GMSPlacePropertyWheelchairAccessibleEntrance
次のフィールドによって Nearby Search(Advanced)SKU:
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
、GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
次のフィールドによって Nearby Search(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]
-
locationRestriction
GMSPlaceLocationRestriction
検索する領域を定義するオブジェクトです。中心点と中心点で定義した円で 半径(メートル単位)。半径は 0.0 ~ 50000.0 の範囲で指定してください。デフォルトの半径は 0.0。リクエストでは、0.0 より大きい値を設定する必要があります。
オプション パラメータ
GMSPlaceSearchNearbyRequest
オブジェクトを使用して、ラベルのオプション パラメータを指定します。
表示されます。
-
includeTypes/excludedTypes、includedPrimaryTypes/excludedPrimaryTypes
次の型から型のリストを指定できます。 テーブル A をフィルタに使用する 表示されます。各タイプ制限のカテゴリで最大 50 個のタイプを指定できます。
1 つの場所には、タイプの中から 1 つのメインタイプのみを指定できます。 テーブル A が関連付けられています。 できます。たとえば、主要な種類が
"mexican_restaurant"
または"steak_house"
。使用includedPrimaryTypes
とexcludedPrimaryTypes
: 結果をフィルタリングする メインタイプを指定します場所には、タイプの複数のタイプ値を含めることもできます。 表 A 関連付けられていますたとえば、レストランには次のタイプがあります。
"seafood_restaurant"
さん、"restaurant"
さん、"food"
さん、"point_of_interest"
、"establishment"
。includedTypes
を使用するexcludedTypes
は、関連付けられたタイプのリストで結果をフィルタリングします。 できます。一般的なプライマリ タイプを指定する場合(例:
"restaurant"
、"hotel"
です。レスポンスには、より具体的なプライマリ タイプの場所を含めることができます。 表示されます。たとえば、プライマリ タイプである"restaurant"
。レスポンスには、メインタイプが「"restaurant"
。ただし、より具体的な場所が含まれる場合もあります。 プライマリ タイプ("chinese_restaurant"
、"seafood_restaurant"
など)を指定します。複数のタイプ制限を指定して検索を指定した場合は、 すべての制限を満たすものが返されますたとえば
{"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}
、"restaurant"
に関連するサービスを提供していますが、主な運営はしていません"steak_house"
として。includedTypes
リストに含まれる場所タイプのリスト 検索する Table A。 このパラメータを省略すると、すべてのタイプの場所が返されます。
excludedTypes
場所タイプのリスト: 除外するテーブル A できます。
includedTypes
("school"
など)と リクエスト内でexcludedTypes
("primary_school"
など)である場合、"school"
に分類されますが、"primary_school"
。レスポンスには、次の少なくとも 1 つに一致する場所が含まれます。includedTypes
のみが含まれ、excludedTypes
はなし。タイプが競合する場合(例: 両方に指定されているタイプ)
includedTypes
excludedTypes
の場合は、INVALID_REQUEST
エラーが返されます。includedPrimaryTypes
参照元に含まれる主要な場所タイプのリスト 含めるテーブル A 。
excludedPrimaryTypes
参照元に含まれる主要な場所タイプのリスト 除外する表 A 表示されます。
競合する主要なタイプがある場合(例: 両方に使用されているタイプ)
includedPrimaryTypes
とexcludedPrimaryTypes
INVALID_ARGUMENT
エラーが返されます。 -
maxResultCount
返されるプレイス結果の最大数を指定します。範囲内で指定してください 1 ~ 20(デフォルト)で指定します。
-
rankPreference
使用するランキングのタイプ。このパラメータを省略すると、検索結果は人気順でランク付けされます。 次のいずれかになります。
.popularity
(デフォルト)人気度に基づいて検索結果を並べ替えます。.distance
結果の距離に基づいて昇順で並べ替えます。 表示されます。
-
regionCode
レスポンスのフォーマットに使用される地域コード。 <ph type="x-smartling-placeholder"></ph> 2 文字の CLDR コードの値。デフォルト値はありません。
レスポンスの
formattedAddress
フィールドの国名がregionCode
の場合、国コードはformattedAddress
から省略されます。 このパラメータはadrFormatAddress
(常に国を含む)には影響しません。 この名前を含まないshortFormattedAddress
で返されます。ほとんどの CLDR コードは、 ISO 3166-1 コード いくつか例外がありますたとえば、英国の ccTLD は 「uk」(.co.uk)、ISO 3166-1 コードは「gb」(技術的には、 「グレート ブリテンおよび北アイルランド連合王国」という当事者である必要があります)。 このパラメータは、適用される法律に基づき、結果に影響する場合があります。
アプリに属性を表示する
以下から取得した情報をアプリが表示するタイミング
GMSPlacesClient
必要な帰属情報も表示する必要があります。
たとえば、GMSPlacesClient
オブジェクトの reviews
プロパティは、
最大 5 つの配列を
GMSPlaceReview
説明します。各 GMSPlaceReview
オブジェクトには、帰属表示と著者帰属を含めることができます。
アプリにレビューを表示する場合は、帰属情報または著者名も表示する必要があります。
あります。
詳細については、このモジュールのコースリソースに アトリビューション。