テキスト検索(新版)

プラットフォームを選択: Android iOS JavaScript ウェブサービス

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 オブジェクトの 次のメンバー関数が含まれます。

  • <ph type="x-smartling-placeholder"></ph> 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

    レスポンスのフォーマットに使用される地域コード。 <ph type="x-smartling-placeholder"></ph> 2 文字の CLDR コードの値。このパラメータはバイアス効果をもたらすことも 表示されます。デフォルト値はありません。

    レスポンスの住所フィールドの国名が 地域コードは、住所から省略されます。

    ほとんどの CLDR コードは ISO 3166-1 コードと同一です。 いくつか例外がありますたとえば、英国の ccTLD は "uk"(.co.uk)、ISO 3166-1 コードは「gb」(技術的には、 「グレート ブリテンおよび北アイルランド連合王国」という当事者である必要があります)。 このパラメータは、適用される法律に基づき、結果に影響する場合があります。

アプリに属性を表示する

以下から取得した情報をアプリが表示するタイミング GMSPlacesClient 必要な帰属情報も表示する必要があります。

たとえば、GMSPlacesClient オブジェクトの reviews プロパティは、 最大 5 つの配列を GMSPlaceReview 説明します。各 GMSPlaceReview オブジェクトには、帰属表示と著者帰属を含めることができます。 アプリにレビューを表示する場合は、帰属情報または著者名も表示する必要があります。 あります。

詳細については、このモジュールのコースリソースに アトリビューション