Text Search は、一連の場所に関する情報を返す 基づきます。たとえば、「東京のピザ屋」、「近所の靴店」などと検索します。 オタワ」、「123 Main Street」このサービスは、場所のリストを返します。 位置情報のバイアスを照合する
このサービスは特に、あいまいな住所を特定するのに役立ちます。 自動システムでクエリを実行する場合、 および住所以外の部分がビジネスだけでなく、 あります。あいまいな住所のクエリの例: 形式が不適切な住所 住所以外の要素(会社名など)を含むリクエスト。 最初の 2 つの例のようなリクエストの場合、 場所(地域、場所の制限、場所のバイアスなど)が設定されている。
「東京都渋谷区渋谷 3-21-3」または「123 Main Street, US」 | 英国内の複数の「ハイ ストリート」米国の場合は複数の「Main Street」が存在します。 地域制限を指定しないと、クエリは望ましい結果を返さない あります。 |
「ニューヨーク レストラン チェーン」 | 複数の「チェーン店」ニューヨークにある番地がない、または 識別します |
「東京都港区北青山 4-20-3」または「123 Main Street, Pleasanton US」 | 「High Street」は 1 つだけです英国のエッシャー市に拠点を置く「Main Street」を 1 つだけ カリフォルニア州プレザントン市に拠点を置く組織です |
「UniqueRestaurantName New York」 | ニューヨークでこの名前の施設が 1 つのみである番地なし 考慮する必要があります |
「東京のピザレストラン」 | このクエリには、場所の制限と「ピザレストラン」が含まれています。 明確に定義された場所タイプです複数の結果が返されます。 |
「+1 514-670-8700」 | このクエリには電話番号が含まれています。次のキーワードに対して複数の結果が返されます。 場所が表示されます。 |
テキスト検索で場所のリストを取得する
GMSPlacesClient
searchByTextWithRequest:
を呼び出して Text Search リクエストを行います。
渡す
GMSPlaceSearchByTextRequest
リクエスト パラメータとコールバック メソッドを定義するオブジェクト
GMSPlaceSearchByTextResultCallback
,
レスポンスを処理します。
GMSPlaceSearchByTextRequest
オブジェクトでは、すべての Pod が
必須パラメータと省略可能なパラメータ
表示されます。必須パラメータは次のとおりです。
GMSPlace
オブジェクトで返されるフィールドのリスト。また、 フィールド マスクといいます。これは、GMSPlaceProperty
。 フィールド リストで 1 つ以上のフィールドを指定しない場合、またはフィールドを省略した場合 その場合、呼び出しはエラーを返します。- テキストクエリ。
このテキスト検索リクエストの例では、レスポンスの GMSPlace
オブジェクトを指定しています。
検索に含まれる各 GMSPlace
オブジェクトのプレイス名とプレイス ID が含まれます。
表示されます。また、次のタイプの場所のみを返すようにレスポンスをフィルタします。
「レストラン」
Swift
// Create the GMSPlaceSearchByTextRequest object. let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.placeID].map {$0.rawValue} let request = GMSPlaceSearchByTextRequest(textQuery:"pizza in New York", placeProperties:myProperties) request.isOpenNow = true request.includedType = "restaurant" request.maxResultCount = 5 request.minRating = 3.5 request.rankPreference = .distance request.isStrictTypeFiltering = true request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0) // Array to hold the places in the response var placeResults: [GMSPlace] = [] let callback: GMSPlaceSearchByTextResultCallback = { [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().searchByText(with: request, callback: callback)
Objective-C
// Create the GMSPlaceSearchByTextRequest object. GMSPlaceSearchByTextRequest *request = [[GMSPlaceSearchByTextRequest alloc] initWithTextQuery:@"pizza in New York" placeProperties:@[GMSPlacePropertyName, GMSPlacePropertyPlaceID]]; request.isOpenNow = YES; request.includedType = @"restaurant"; request.maxResultCount = 5; request.minRating = 3.5; request.rankPreference = GMSPlaceSearchByTextRankPreferenceDistance; request.isStrictTypeFiltering = YES; request.priceLevels = @[ @(kGMSPlacesPriceLevelFree), @(kGMSPlacesPriceLevelCheap) ]; request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0); // Array to hold the places in the response _placeResults = [NSArray array]; // Create the GMSPlaceSearchByTextRequest object. [_placesClient searchByTextWithRequest:request callback:^(NSArray<GMSPlace *> *_Nullable placeResults, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { if (placeResults.count > 0) { // Get list of places. _placeResults = placeResults; } } } ];
GooglePlacesSwift
let restriction = RectangularLocationRestriction( northEast: CLLocationCoordinate2D(latitude: 20, longitude: 30), southWest: CLLocationCoordinate2D(latitude: 40, longitude: 50) ) let searchByTextRequest = SearchByTextRequest( textQuery: "pizza in New York", placeProperties: [ .name, .placeID ], locationRestriction: restriction, includedType: .restaurant, maxResultCount: 5, minRating: 3.5, priceLevels: [ .moderate, .inexpensive ], isStrictTypeFiltering: true ) switch await placesClient.searchByText(with: searchByTextRequest) { case .success(let places): // Handle places case .failure(let placesError): // Handle error }
Text Search のレスポンス
Text Search API は、一致した文字列を
GMSPlace
一致する場所ごとに 1 つの GMSPlace
オブジェクトがあります。
データ フィールドのほか、GMSPlace
オブジェクトの
次のメンバー関数が含まれます。
-
isOpen
は、ある場所が所定の時間に営業しているかどうかを計算します。 isOpenAtDate
特定の日付に営業しているかどうかを計算します。
必須パラメータ
GMSPlaceSearchByTextRequest
オブジェクトを使用して、必要な
パラメータを指定します。
-
フィールド リスト
返すプレイスデータ プロパティを指定します。リストを渡す
GMSPlace
返されるデータ フィールドを指定するプロパティです。フィールドを省略すると、 含まれていると、リクエストはエラーを返します。フィールド リストを設計することをおすすめします。これにより、 保存し、不要な処理時間を回避して、 請求料金を管理できます。
次のフィールドを 1 つ以上指定します。
次のフィールドで Text Search(ID のみ)SKU がトリガーされます。
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
次のフィールドで Text Search(Basic)SKU がトリガーされます。
GMSPlacePropertyAddressComponents
,GMSPlacePropertyBusinessStatus
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyCoordinate
,GMSPlacePropertyPhotos
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyViewport
,GMSPlacePropertyWheelchairAccessibleEntrance
次のフィールドで Text Search(Advanced)SKU がトリガーされます。
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
次のフィールドで Text Search(Preferred)SKU がトリガーされます。
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
-
textQuery
検索するテキスト文字列(例: 「レストラン」、「123 メイン」) 「サンフランシスコで一番おすすめの場所」などの語句を入力します。
オプション パラメータ
GMSPlaceSearchByTextRequest
オブジェクトを使用して、オプションの
パラメータを指定します。
includedType
指定したタイプに一致する場所のみを表示します。 表 A. 1 つのタイプのみ指定できます。例:
request.includedType = "bar"
request.includedType = "pharmacy"
isOpenNow
true
の場合は、営業中の場所のみを返します クエリが送信されたときに表示されますfalse
の場合は、すべてのビジネスが返されます。 オープンステータスに関係なく Google プレイスのデータベースに営業時間が記載されていない場所は、次のようになります。 このパラメータをfalse
に設定した場合に返されます。isStrictTypeFiltering
includeType
パラメータとともに使用します。[true
、指定したタイプに一致する場所のみincludeType
が返されます。 false(デフォルト)の場合、一致しない場所がレスポンスに含まれる可能性があります。 作成されます。locationBias
検索する領域を指定します。この場所はバイアスの原因となり 指定した場所周辺の検索結果(結果を含む)を返すことができます 移動します
locationRestriction
またはlocationBias
を指定できます。 両方はできませんlocationRestriction
は、 結果が存在する必要があるリージョンと、locationBias
が 結果を検索する地域を、この地域に近いが範囲外でもよい エリアです。領域を長方形のビューポートまたは円として指定します。
円は、中心点と半径(メートル単位)で定義されます。半径 0.0 ~ 50000.0 の範囲で指定してください。デフォルトの radius は 0.0 です。 例:
request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)
長方形は緯度 / 経度のビューポートで、 低点と高点が対角線上にあります。低い地点は南西です 頂点は北東を表します 決定します
ビューポートは 境界を含みます。緯度境界 経度は -90 ~ 90 度の範囲で指定する必要があります。 -180 ~ 180 度の範囲にする必要があります。
low
=high
の場合、ビューポートは次の要素で構成されます。 実現できます。low.longitude
> の場合high.longitude
、 経度の範囲が反転します(ビューポートが 180 度を横断します)。 。low.longitude
= -180 度、かつhigh.longitude
= 180 度(ビューポートにすべてを含む) 選択しますlow.longitude
= 180 度、かつhigh.longitude
= -180 度、経度範囲 空です。low.latitude
> の場合high.latitude
、 緯度の範囲が空です。
locationRestriction
検索する領域を指定します。指定領域外の検索結果は 返されます。領域を長方形のビューポートとして指定します。説明を見る /
locationBias
をご覧ください。locationRestriction
またはlocationBias
を指定できます。 両方はできませんlocationRestriction
は、 結果が存在する必要があるリージョンと、locationBias
が 結果を検索する地域を、この地域に近いが範囲外でもよい エリアです。-
maxResultCount
返されるプレイス結果の最大数を指定します。範囲内で指定してください 1 ~ 20(デフォルト)で指定します。
minRating
ユーザーの平均評価が この上限以下になります値は 0.0 ~ 5.0 の範囲で指定してください。 0.5 単位で指定します。例: 0、0.5、1.0、...、5.0。値は次のとおりです。 0.5 単位で切り上げられますたとえば、値を 0.6 にすると、すべての 1.0 未満にします。
-
priceLevels
検索対象を、特定の料金レベルとしてマークされている場所に限定します。 デフォルトでは、すべての価格レベルが選択されています。
次で定義された 1 つ以上の値の配列を指定します。
PriceLevel
。例:
request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
rankPreference
次のタイプに基づいてレスポンス内の結果のランク付け方法を指定します。 query:
- 「ニューヨーク市のレストラン」のようなカテゴリクエリでは
デフォルトは
.relevance
(検索の関連性によるランク付け)です。rankPreference
を.relevance
に設定するか、.distance
(距離で結果をランク付けする) - 「Mountain View, CA」のようなカテゴリーではないクエリの場合は、
rankPreference
を未設定のままにした場合。
- 「ニューヨーク市のレストラン」のようなカテゴリクエリでは
デフォルトは
regionCode
レスポンスのフォーマットに使用される地域コード。 2 文字の CLDR コードの値。このパラメータはバイアス効果をもたらすことも 表示されます。デフォルト値はありません。
レスポンスの住所フィールドの国名が 地域コードは、住所から省略されます。
ほとんどの CLDR コードは ISO 3166-1 コードと同一です。 いくつか例外がありますたとえば、英国の ccTLD は 「uk」(.co.uk)、ISO 3166-1 コードは「gb」(技術的には、 「グレート ブリテンおよび北アイルランド連合王国」という当事者である必要があります)。 このパラメータは、適用される法律に基づき、結果に影響する場合があります。
アプリに属性を表示する
以下から取得した情報をアプリが表示するタイミング
GMSPlacesClient
必要な帰属情報も表示する必要があります。
たとえば、GMSPlacesClient
オブジェクトの reviews
プロパティは、
最大 5 つの配列を含む
GMSPlaceReview
説明します。各 GMSPlaceReview
オブジェクトには、帰属表示と著者帰属を含めることができます。
アプリにレビューを表示する場合は、帰属情報または投稿者も表示する必要があります。
できます。
詳細については、このモジュールのコースリソースに アトリビューション。