予測入力(新版)は、次の場所で予測された場所を返します。 テキスト検索文字列と地理的境界を含むリクエストに対するレスポンス 検索範囲を設定しますオートコンプリートは、入力の完全な単語と部分文字列を照合して、場所の名前、住所、Plus Codes を解決できます。アプリケーションは、ユーザーの入力に応じてクエリを送信し、場所とクエリの予測を即座に提供できます。
たとえば、ユーザー入力の一部である「Sicilian piz」を含む文字列を入力として使用し、検索範囲をカリフォルニア州サンフランシスコに限定して Autocomplete を呼び出します。レスポンスには場所のリストが含まれます。 検索文字列と検索領域(レストランなど)に一致する候補。 名前は“Sicilian Pizza Kitchen”です
返されたプレイスの予測は、目的のプレイスを選択しやすくなるようユーザーに表示するように設計されています。Place Details を作成して (新規)追加リクエスト 返された場所予測に関する情報です。
予測入力(新)リクエスト
アプリは、予測される場所の名前や場所のリストを取得できます。
予測入力 API から
PlacesClient.findAutocompletePredictions()
,
渡す
FindAutocompletePredictionsRequest
渡されます。次の例は、PlacesClient.findAutocompletePredictions()
の完全な呼び出しを示しています。
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Sicilian piz") .setRegionCode("ES") .setLocationRestriction(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
予測入力(新)の回答
API は Task
内の FindAutocompletePredictionsResponse
を返します。「
FindAutocompletePredictionsResponse
各要素には最大 5 つの
AutocompletePrediction
予測された場所を表すオブジェクトです。クエリやフィルタ条件に対応する既知のプレイスがない場合、リストは空になることがあります。
予測されるプレイスごとに次のメソッドを呼び出して、プレイス詳細を取得できます。
getFullText(CharacterStyle)
は、場所の説明の全文を返します。これは次の組み合わせです: テキストを入力します例: 「エッフェル塔、アベニュー アナトール フランス、 パリ、フランス」)。また、CharacterStyle
を使用すると、説明文の中で検索内容と一致する部分を、指定のスタイルでハイライト表示できます。CharacterStyle
パラメータは省略可能です。ハイライト表示する必要がない場合は、null に設定します。getPrimaryText(CharacterStyle)
は、場所を説明するメインのテキストを返します。これは通常、プレイスの名前です。例: 「エッフェル塔」、「ピット通り 123」getSecondaryText(CharacterStyle)
は、場所の説明の子会社のテキストを返します。これは、オートコンプリートの予測結果で 2 行目に表示するテキストなどに適しています。例: 「Avenue Anatole France, Paris, France」、「Sydney, New South Wales」。getPlaceId()
予測される場所のプレイス ID を返します。プレイス ID は、プレイスを一意に識別するテキスト表記の ID です。この ID を使用して、後でPlace
オブジェクトを再取得できます。オートコンプリートのプレイス ID の詳細については、プレイス情報(新規)をご覧ください。プレイス ID の一般的な情報については、プレイス ID の概要をご覧ください。getTypes()
この場所に関連付けられている場所タイプのリストを返します。getDistanceMeters()
は、この場所とリクエストで指定された出発地との間の直線距離をメートル単位で返します。
必須パラメータ
-
クエリ
検索するテキスト文字列。完全な単語や部分文字列、場所の名前、住所、Plus Codes を指定します。Autocomplete(新規)サービスはこの文字列と一致する候補を、関連性の高い順に並べて結果として返します。
クエリ パラメータを設定するには、
FindAutocompletePredictionsRequest
オブジェクトを作成するときにsetQuery()
メソッドを呼び出します。
オプション パラメータ
-
主な種類
レスポンスで返されるプレイスのフィルタリングに使用される、表 A または表 B のタイプから最大 5 つのタイプ値のリスト。場所は、指定されたプライマリ タイプの値のいずれかに一致する必要があります。
1 つの場所に設定できるメインタイプは、タイプのうち 1 つのみです。 テーブル A またはテーブル B を できます。たとえば、プライマリ タイプは
"mexican_restaurant"
または"steak_house"
です。次の場合、リクエストは
INVALID_REQUEST
エラーで拒否されます。- 指定したタイプの数が 5 個より多い。
- 認識できないタイプが指定されている。
メインの types パラメータを設定するには、
setTypesFilter()
を呼び出します。FindAutocompletePredictionsRequest
メソッドを使用します -
国
指定した国のリストからのみ結果を取得します。このリストは、最大 15 個の ccTLD(「トップレベル ドメイン」)の 2 文字の値のリストとして指定します。省略した場合、レスポンスには制限が適用されません。たとえば リージョンをドイツとフランスに制限します。
locationRestriction
とincludedRegionCodes
の両方を指定すると、 結果は 2 つの設定の交差領域に配置されます。countries パラメータを設定するには、
FindAutocompletePredictionsRequest
オブジェクトを作成するときにsetCountries()
メソッドを呼び出します。 -
入力オフセット
クエリ内のカーソル位置を示す、ゼロベースの Unicode 文字オフセット。 カーソルの位置は、返される予測に影響する可能性があります。空の場合、デフォルトはクエリの長さになります。
入力オフセット パラメータを設定するには、
FindAutocompletePredictionsRequest
オブジェクトを作成するときにsetInputOffset()
メソッドを呼び出します。 地域による偏見や地域の制限
地域のバイアスや地域制限を指定できます 両方ではなく、両方を指定して検索領域を定義します。地域の制限は、結果が含まれる必要がある地域を指定するもので、地域のバイアスとは、結果が近い必要がある地域を指定するものです。主な違いは 指定した地域外の結果が返される場合があります。
場所のバイアス
検索する領域を指定します。このロケーションは制限ではなくバイアスとして機能するため、指定した範囲外の結果が返されることもあります。
位置情報バイアス パラメータを設定するには、
FindAutocompletePredictionsRequest
オブジェクトを作成するときにsetLocationBias()
メソッドを呼び出します。地域の制限
検索する領域を指定します。指定した範囲外の結果は返されません。
ロケーション制限パラメータを設定するには、
setLocationRestriction()
を呼び出します。FindAutocompletePredictionsRequest
メソッドを使用します
位置バイアスまたは位置制限の対象地域を、長方形のビューポートまたは円として指定します。
円は、中心点と半径(メートル単位)で定義します。半径は 0.0 ~ 50000.0(両端を含む)です。デフォルト値は 0.0 です。ロケーションの制限については 半径は 0.0 より大きい値に設定する必要があります。それ以外の場合、リクエストは 一致する結果はありません。
長方形は緯度 / 経度のビューポートで、 対角線上に
low
ポイントとhigh
ポイント。ビューポートは 境界を含みます。緯度の範囲は -90~90 度、経度の範囲は -180~180 度の範囲内で指定する必要があります。low
=high
の場合、ビューポートは単一のポイントで構成されます。low.longitude
> の場合high.longitude
、経度の範囲が反転します (ビューポートは 180 度の経度と交差します)。low.longitude
= -180 度、high.longitude
= 180 度の場合、ビューポートにはすべての経度が含まれます。low.longitude
= 180 度、high.longitude
= -180 度の場合、 経度の範囲が空です。
low
とhigh
の両方を入力し、表示されるボックス 空白にはできません。ビューポートが空の場合はエラーになります。
-
出発地
目的地までの直線距離を計算する起点(
getDistanceMeters()
を使用してアクセス)。この値を省略すると、直線距離は返されません。緯度と経度の座標で指定する必要があります。origin パラメータを設定するには、
setOrigin()
を呼び出します。FindAutocompletePredictionsRequest
メソッドを使用します -
地域コード
住所の書式設定など、レスポンスの書式設定に使用される地域コード。ccTLD(「トップレベル ドメイン」)の 2 文字の値で指定します。ほとんどの ccTLD コードは ISO 3166-1 コードと同一ですが、 いくつか例外がありますたとえば、英国の ccTLD は 「uk」(.co.uk)、ISO 3166-1 コードは「gb」(技術的には、 「グレート ブリテンおよび北アイルランド連合王国」という当事者である必要があります)。
無効な地域コードを指定すると、API から
INVALID_ARGUMENT
が返されます。 エラーが発生します。このパラメータは、適用される法律に基づいて結果に影響する可能性があります。地域コード パラメータを設定するには、
setRegionCode()
を呼び出します。FindAutocompletePredictionsRequest
メソッドを使用します -
セッション トークン
セッション トークンは、Autocomplete(新規)の呼び出しを「セッション」として追跡するユーザー作成の文字列です。予測入力では、セッション トークンを使用して ユーザーの予測入力検索のクエリと選択フェーズを個別のセッションにグループ化し、 請求に使用されます。セッションは ユーザーが検索語句の入力を開始し、場所を選択すると完了する。セッションによっては、複数の検索語句が入力された後に、1 つの場所が選択される場合もあります。セッションが終了すると、トークンは無効になります。アプリはセッションごとに新しいトークンを生成する必要があります。すべてのプログラマティック取引では 予測入力セッション(フラグメントを埋め込んだ場合、または API が自動的に処理します)。
自動入力は
AutocompleteSessionToken
を使用して各セッションを識別します。アプリは新しいセッション トークンを 新しいセッションを開始するたびに、同じトークンをプレイス ID とともに渡します。 後続のfetchPlace()
の呼び出し ユーザーが選択した場所の Place Details を取得する。セッション トークン パラメータを設定するには、
setSessionToken()
を呼び出します。FindAutocompletePredictionsRequest
メソッドを使用します詳細については、セッション トークンをご覧ください。
オートコンプリート(新機能)の例
地域の制限と地域のバイアスを使用する
予測入力(新版)ではデフォルトで IP バイアスが使用されます。 検索範囲を設定します。IP バイアスを設定すると、API は バイアスをかけることができます必要に応じて、location または場所のバイアスは指定できない 検索する領域を指定します。
地域の制限では、検索するエリアを指定します。指定した範囲外の結果は返されません。次の例では、位置情報の制限を使用して、サンフランシスコを中心とする半径 5,000 メートルの円形の位置情報の制限にリクエストを制限します。
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Amoeba") .setLocationRestriction(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
場所のバイアスを使うと 場所のバイアスとして機能し 指定した場所(指定した場所以外を含む)を返すことができます エリアです。次の例では、位置情報バイアスを使用するように前のリクエストを変更しています。
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Amoeba") .setLocationBias(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
プライマリ タイプを使用する
primary types パラメータを使用して、 特定のタイプをリクエストする必要があります。詳しくは、表 A と Table B.このように 最大 5 つの値の配列。省略すると、すべての型が返されます。
次の例では、クエリ文字列に「サッカー」を指定し、primary types パラメータを使用して、"sporting_goods_store"
タイプの施設に結果を限定しています。
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); final List<Place.Field> primaryTypes = Arrays.asList("sporting_goods_store"); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Soccer") .setIncludedPrimaryTypes(primaryTypes) .setLocationBias(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
主なタイプ パラメータを省略すると、"athletic_field"
など、不要なタイプの施設が結果に含まれることがあります。
オリジンを使用
リクエストに origin パラメータを含めた場合、
緯度と経度の座標。API には直線距離、
レスポンスの送信元から送信先まで(
getDistanceMeters()
)。
次の例では、原点をサンフランシスコの中心に設定しています。
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Amoeba") .setOrigin(center) .setLocationRestriction(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
帰属表示
予測入力(新版)は地図がなくても使用できます。地図を表示する場合は、Google マップを使用してください。予測を表示するときに、 予測入力(新版)サービスで地図がない場合、 検索フィールドまたは検索結果の横に Google ロゴをインライン表示する。対象 詳しくは、Google ロゴと 帰属表示をご覧ください。