Place Autocomplete(新機能)

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

Autocomplete(新)サービスは リクエストに応じて場所の候補を返します。リクエストで、 テキスト検索文字列と、検索領域を制御する地理的境界。

予測入力(新)サービスは、 照合して、場所の名前や住所を解決し、したがって、アプリケーションはユーザーとして その場で場所の候補を表示します。

場所の候補は、お店やサービス、住所、地図上の場所などの場所です。 指定した入力テキスト文字列と検索領域に基づいて、興味 / 関心を洗い出します。

たとえば、入力に部分的な文字列を含む文字列を使用して、API を呼び出します。 ユーザー入力「Spagh」。検索範囲をニューヨーク市に限定しています。 レスポンスには、検索に一致する場所の候補のリストが含まれます。 たとえば「Cafe Spaghetti」という名前のレストラン、 場所の詳細が表示されます

返される場所の候補は、ユーザーに表示されるように設計されており、 希望の場所を選ぶことができますPlace Details を作成して (新規)追加リクエスト 返された場所の提案に関する情報。

予測入力(新)リクエスト

予測入力リクエストを作成するには、 GMSPlaceClient。 パラメータは、 GMSAutocompleteRequest 渡されます。レスポンスでは、予測入力候補が GMSAutocompletePlaceSuggestion 渡されます。

API キーと query パラメータは必須です。また、 GMSAutocompleteSessionToken リクエストを請求セッションに関連付け GMSAutocompleteFilter 結果に適用します。

必須パラメータと省略可能なパラメータの詳細については、このドキュメントのパラメータ セクションをご覧ください。

Swift

let token = GMSAutocompleteSessionToken()

let northWestBounds = CLLocationCoordinate2DMake(40.921628, -73.700051)
let southEastBounds = CLLocationCoordinate2DMake(40.477398, -74.259087)

let filter = GMSAutocompleteFilter()
filter.types = [kGMSPlaceTypeRestaurant]
filter.locationBias = GMSPlaceRectangularLocationOption(northWestBounds, southEastBounds)
    
let request = GMSAutocompleteRequest(query:"Spagh")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))")
        }
      }
    })

Objective-C

CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(37.388162, -122.088137);
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(37.395804, -122.077023);

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.types = @[ kGMSPlaceTypeRestaurant ];
filter.locationBias = GMSPlaceRectangularLocationOption(northEast, southWest);
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
    }
  }
}];

GooglePlacesSwift

let center = (37.3913916, -122.0879074)
let northEast = (37.388162, -122.088137)
let southWest = (37.395804, -122.077023)

let bias = RectangularCoordinateRegion(northEast: northEast, southWest: southWest)
let filter = AutocompleteFilter(types: [ .restaurant ], origin: center, coordinateRegionBias: bias)

let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  // Handle suggestions.
case .failure(let placesError):
  // Handle error.
}

予測入力(新)の回答

予測入力は最大 5 つの配列を返す GMSAutocompleteSuggestion 個のインスタンス。配列には次のものが含まれます。

  • placeID
  • types: この場所に適用されるタイプ。
  • distanceMeters: 出発地からの距離。
  • attributedFullText: 人が読める形式の候補の全文。
  • attributedPrimaryText: 人が読める形式の候補のメインテキスト。
  • attributedSecondaryText: 人が読める形式の候補のセカンダリ テキスト。
  • structuredFormat: 都市や地域などの具体的な名前と、あいまいさをなくすテキスト あります。

必須パラメータ

クエリ

検索するテキスト文字列。完全な単語と部分文字列を指定し、 名前、住所、Plus Codes。「 予測入力(新)サービスが一致する候補を返す この文字列に基づいて結果を並べ替えます。

オプション パラメータ

タイプ

1 つの場所に設定できるメインのタイプは 1 つだけですタイプテーブル A または Table B が関連付けられています。 たとえば、プライマリ タイプは mexican_restaurantsteak_house です。

デフォルトでは、API は input パラメータに基づいてすべての場所を返します。 常に同じである必要があります。検索結果を制限する 特定のプライマリ型またはプライマリ型にするには、 types パラメータ。

このパラメータを使用して、テーブル A または Table B.場所が一致している必要があります レスポンスに含める、指定されたメインの型の値のいずれか。

次の場合、リクエストは INVALID_REQUEST エラーで拒否されます。

  • 6 つ以上のタイプが指定されている。
  • 認識されないタイプが指定されています。

実施国数

配列として指定された、指定した地域のリストからの結果のみを含める 最大 15 の国別コード トップレベル ドメイン( ドメイン) 使用できます。省略すると、レスポンスに制限は適用されません。 たとえば、リージョンをドイツとフランスに制限するには、次のようにします。

Swift

let filter = GMSAutocompleteFilter()
filter.countries = ["DE", "FR"]

Objective-C

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.countries = @[ @"DE", @"FR" ];

GooglePlacesSwift

let filter = AutocompleteFilter(countries: ["DE", "FR"])
  

locationRestrictioncountries の両方を指定すると、結果は次のようになります。 2 つの設定の交差部分に配置します

inputOffset

カーソル位置を示す、ゼロベースの Unicode 文字オフセット。 input。カーソルの位置は、返される予測の種類に影響します。条件 空の場合、デフォルトは input です。

locationBias または locationRestriction

locationBias または locationRestriction を指定できます。両方は指定できません。 クリックします。locationRestriction は、サービスを実行するリージョンを指定するものと考えてください。 locationBias には結果が存在するリージョンを指定する必要があります。 結果はエリアの近くである必要がありますが、エリア外でもかまいません。

  • locationBias には検索する領域を指定します。この位置はバイアスとなり つまり、指定した場所付近の検索結果が返されます。たとえば、 除外します

  • locationRestriction には検索する領域を指定します。範囲外の結果 何も返されません。

locationBias リージョンまたは locationRestriction リージョンを長方形として指定する 表示することもできます。

円は、中心点と半径(メートル単位)で定義します。半径は 0.0 ~ 50000.0 の範囲内(両端を含む)デフォルト値は 0.0 です。対象 locationRestriction の場合は、半径を 0.0 より大きい値に設定する必要があります。 それ以外の場合、リクエストは結果を返しません。

例:

Swift

let center = CLLocationCoordinate2DMake(40.730610, -73.935242)
let radius = 1000.0

filter.locationBias = GMSPlaceCircularLocationOption(center, radius)

Objective-C

CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242);
radius = 1000.0;

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.locationBias = GMSPlaceCircularLocationOption(center, radius);

GooglePlacesSwift

let center = CLLocationCoordinate2DMake(40.477398, -74.259087)

let bias = CircularCoordinateRegion(center: center, radius: 1000.0)

let filter = AutocompleteFilter(coordinateRegionBias: bias)      
  

長方形は緯度 / 経度のビューポートで、対角線上に 2 つの lowhigh の反対側です。ビューポートは閉じた領域と見なされます 意味します。緯度の範囲は -90 ~-90 の範囲で指定してください 90 度(両端を含む)、経度の境界は -180 ~ 180 の範囲で指定してください 度(両端を含む):

  • low = high の場合、ビューポートはその単一点で構成されます。
  • low.longitude > の場合high.longitude の場合、経度の範囲は反転します( ビューポートが 180 度の経度線と交差している場合など)。
  • low.longitude = -180 度、high.longitude= 180 度の場合、 ビューポートにはすべての経度が含まれます。
  • low.longitude = 180 度、high.longitude = -180 度の場合、 経度の範囲が空です。

lowhigh の両方を入力する必要があります。表示されるボックスは入力できません。 空です。ビューポートが空の場合はエラーになります。

たとえば、次のビューポートはニューヨーク市を完全に囲んでいます。

Swift

let high = CLLocationCoordinate2DMake(40.921628, -73.700051)
let low = CLLocationCoordinate2DMake(40.477398, -74.259087)

let filter = GMSAutocompleteFilter()
filter.locationBias = GMSPlaceRectangularLocationOption(high, low)

Objective-C

CLLocationCoordinate2D high = CLLocationCoordinate2DMake(40.477398, -74.259087);
CLLocationCoordinate2D low = CLLocationCoordinate2DMake(440.921628, -73.700051);

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.locationBias = GMSPlaceRectangularLocationOption(high, low);

GooglePlacesSwift

let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087)
let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051)

let filter = AutocompleteFilter(coordinateRegionBias: bias)
  

オリジン

対象物までの直線距離を計算する原点 宛先(distanceMeters として返されます)。この値を省略すると、 直線距離は返されません。緯度と経度で指定する必要があります 経度の座標:

Swift

let filter = GMSAutocompleteFilter()
filter.origin =  CLLocation(latitude: 37.395804, longitude: -122.077023)
 

Objective-C

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];

filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];

GooglePlacesSwift

let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
  

regionCode

レスポンスのフォーマットに使用される地域コード。ccTLD(「top-level」など) ドメイン) 使用できます。ほとんどの ccTLD コードは ISO 3166-1 コードと同一ですが、 いくつか注意すべき例外がありますたとえば、英国の ccTLD は「uk」です。 (.co.uk)、ISO 3166-1 コードは「gb」(厳密に言えば、「The グレート ブリテンおよび北アイルランド連合王国」)。

無効な地域コードを指定すると、API から INVALID_ARGUMENT が返されます。 エラーが発生します。このパラメータは、適用される法律に基づき、結果に影響する場合があります。

sessionToken

セッション トークンはユーザーが生成した文字列で、 予測入力(新版)の通話は「セッション」として表示されます。 予測入力(新版)では、セッション トークンを使用して ユーザーの予測入力検索のクエリと選択フェーズを個別のセッションに 請求に使用されます。詳しくは、セッション トークン

予測入力(新)の例

locationRestriction と locationBias を使用する

予測入力(新版)ではデフォルトで IP バイアスが使用されます。 検索範囲を設定します。IP バイアスを設定すると、API は バイアスをかけることができます必要に応じて、locationRestriction または locationBias を指定します。両方は指定できません。 検索できます。

地域の制限では、検索する地域を指定します。指定範囲外の結果 領域は返されません。次の例では、ロケーション制限を使用して、 半径 5,000 m を中心とする円形の地域の制限に対するリクエスト サンフランシスコ:

Swift

let token = GMSAutocompleteSessionToken()

let center = CLLocationCoordinate2DMake(37.775061, -122.419400)
let radius = 5000.0

let filter = GMSAutocompleteFilter()
filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius)
    
let request = GMSAutocompleteRequest(query:"Piz")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))")
        }
      }
    })

Objective-C


CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400);
radius = 5000.0;

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius);
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
    }
  }
}];

GooglePlacesSwift

let center = (37.775061, -122.419400)
let radius = 5000.0
let restriction = CircularCoordinateRegion(center: center, radius: radius)
let filter = AutocompleteFilter(coordinateRegionRestriction: restriction)
let token = AutocompleteSessionToken()

let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  for suggestion in autocompleteSuggestions {
    switch suggestion {
    case .place:
      // Show place suggestion data.
    }
  }
case .failure(let placesError):
  // Handle error.
}
  

場所のバイアスを使用すると、場所がバイアスとして機能し、 指定した場所(指定した範囲外の結果も含む)を返すことができます エリアです。次の例では、位置バイアスを使用するように前のリクエストを変更します。

Swift

let token = GMSAutocompleteSessionToken()

let center = CLLocationCoordinate2DMake(37.775061, -122.419400)
let radius = 5000.0

let filter = GMSAutocompleteFilter()
filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
    
let request = GMSAutocompleteRequest(query:"Piz")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))")
        }
      }
    })

Objective-C

CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400);
radius = 5000.0;

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
    }
  }
}];

GooglePlacesSwift

let center = (37.775061, -122.419400)
let radius = 5000.0
let bias = CircularCoordinateRegion(center: center, radius: radius)
let filter = AutocompleteFilter(coordinateRegionBias: bias)
let token = AutocompleteSessionToken()

let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  for suggestion in autocompleteSuggestions {
    switch suggestion {
    case .place:
      // Show place suggestion data.
    }
  }
case .failure(let placesError):
  // Handle error.
}
  

タイプを使用する

types パラメータを使用して、リクエストの結果を特定のタイプに制限します。 表 ATable B.1 対 1 の 最大 5 つの値からなる配列。省略すると、すべての型が返されます。

次の例では、「Soccer」というクエリ文字列が指定されていますトレーニング済みの 検索結果を次のタイプの施設に制限するためのパラメータ "sporting_goods_store":

Swift

let token = GMSAutocompleteSessionToken()

let filter = GMSAutocompleteFilter()
filter.types = ["sporting_goods_store"]
    
let request = GMSAutocompleteRequest(query:"Soccer")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))")
        }
      }
    })

Objective-C

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.types = @[ "sporting_goods_store" ];
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Soccer"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
    }
  }
}];

GooglePlacesSwift

let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ])
let token = AutocompleteSessionToken()

let autocompleteRequest = AutocompleteRequest(query: "Soccer", sessionToken: token, filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  for suggestion in autocompleteSuggestions {
    switch suggestion {
    case .place:
      // Show place suggestion data.
    }
  }
case .failure(let placesError):
  // Handle error.
}
    

オリジンを使用

リクエストに origin パラメータを含める場合は、 緯度と経度の座標。API には直線距離、 レスポンスの送信元から送信先へのレスポンスでは、 距離は distanceMeters です。

次の例では、原点をサンフランシスコの中心に設定しています。

Swift

let token = GMSAutocompleteSessionToken()

let origin = CLLocation(latitude: 37.7749, longitude: -122.4194)

let filter = GMSAutocompleteFilter()

filter.origin =  origin
    
let request = GMSAutocompleteRequest(query:"Amoeba")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText)) and distance: \(String(describing: result.placeSuggestion?.distanceMeters))")
        }
      }
    })

Objective-C


GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude:-122.077023];
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Amoeba"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
      }
    }
}];

GooglePlacesSwift

let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.7749, longitude: -122.4194))
let token = AutocompleteSessionToken()

let autocompleteRequest = AutocompleteRequest(query: "Amoeba", sessionToken: token, filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  for suggestion in autocompleteSuggestions {
    switch suggestion {
    case .place:
      // Show place suggestion data.
    }
  }
case .failure(let placesError):
  // Handle error.
}
  

帰属表示

予測入力(新版)は、 作成します。地図を表示する場合は、Google マップを使用してください。また、 予測入力(新)サービスからの候補 検索時にインラインで Google ロゴを フィールド/結果。詳しくは、Google ロゴと 帰属表示をご覧ください。