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; } } ];
GooglePlacesSwift
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
オブジェクトがあります。
データ フィールドのほか、GMSPlace
オブジェクトの
次のメンバー関数が含まれます。
- <ph type="x-smartling-placeholder"></ph>
isOpen
は、ある場所が所定の時間に営業しているかどうかを計算します。 isOpenAtDate
特定の日付に営業しているかどうかを計算します。
必須パラメータ
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];
GooglePlacesSwift
// 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
オブジェクトには、帰属表示と著者帰属を含めることができます。
アプリにレビューを表示する場合は、帰属情報または投稿者も表示する必要があります。
あります。
詳細については、このモジュールのコースリソースに アトリビューション。