オートコンプリート(新)

プラットフォームを選択: Android iOS JavaScript ウェブサービス
欧州経済領域(EEA)のデベロッパー

はじめに

Autocomplete (New) は、HTTP リクエストに応じて場所の候補とクエリ予測を返すウェブサービスです。リクエストでは、テキスト検索文字列に加え、検索対象地域を限定する地理的境界を指定します。

Autocomplete(新機能)は、入力の完全な単語や部分文字列を照合して、場所の名前や住所、Plus Codes を解決できます。これにより、アプリケーションはユーザーの入力に合わせて随時クエリを送信し、場所とクエリの候補をリアルタイムで表示することができます。

Autocomplete(新版)からのレスポンスには、次の 2 種類の予測が含まれることがあります。

  • 場所の予測: 指定された入力テキスト文字列と検索エリアに基づいて、お店やサービス、住所、スポットなどの場所を返します。場所の予測はデフォルトで返されます。
  • クエリの予測: 入力テキスト文字列と検索エリアに一致するクエリ文字列。クエリ予測はデフォルトで返されません。includeQueryPredictions リクエスト パラメータを使用して、レスポンスにクエリ予測を追加します。

たとえば、ユーザー入力の一部である「Sicilian piz」を含む文字列を入力として Autocomplete(新規)を呼び出し、検索エリアをカリフォルニア州サンフランシスコに限定します。レスポンスには、検索文字列と検索エリアに一致する場所の予測のリスト(「Sicilian Pizza Kitchen」という名前のレストランなど)と、その場所の詳細が含まれます。

返される場所の予測は、ユーザーが目的の場所を選択する際に役立つように設計されています。Place Details (New) リクエストを作成して、返された場所の予測に関する詳細情報を取得できます。

レスポンスには、検索文字列と検索エリアに一致するクエリ予測のリスト(「シチリア風ピザとパスタ」など)を含めることもできます。レスポンスの各クエリ予測には、推奨されるテキスト検索文字列を含む text フィールドが含まれています。この文字列を テキスト検索(新版)の入力として使用して、より詳細な検索を実行します。

API Explorer を使用すると、ライブ リクエストを行って、API と API オプションを理解できます。

Autocomplete(新規)リクエスト

Autocomplete (New) リクエストは、次の形式の URL への HTTP POST リクエストです。

 https://places.googleapis.com/v1/places:autocomplete 

すべてのパラメータを JSON リクエスト本文またはヘッダーで POST リクエストの一部として渡します。次に例を示します。

 curl -X POST -d '{   "input": "pizza",   "locationBias": {     "circle": {       "center": {         "latitude": 37.7937,         "longitude": -122.3965       },       "radius": 500.0     }   } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete 

サポートされるパラメータ

パラメータ

説明

input*

検索するテキスト文字列(完全な単語、部分文字列、場所の名前、住所、Plus Codes)。

FieldMask(HTTP ヘッダー)

レスポンスで返すフィールドを指定するカンマ区切りのリスト。

includedPrimaryTypes

結果を、指定された最大 5 つのプライマリ タイプのうちの 1 つに一致する場所に制限します。

includePureServiceAreaBusinesses

true の場合、実店舗を持たないビジネス(非店舗型ビジネス)が含まれます。デフォルトは false です。

includeQueryPredictions

true の場合、レスポンスに場所とクエリの両方の予測が含まれます。デフォルトは false です。

includedRegionCodes

結果を制限する 2 文字の国コードの配列(最大 15 個)。

inputOffset

入力文字列内のカーソル位置の 0 から始まる Unicode 文字オフセット。予測に影響します。デフォルトは入力長です。

languageCode

結果の優先言語(IETF BCP-47 コード)。デフォルトは Accept-Language ヘッダーまたは「en」です。

locationBias

検索結果のバイアスをかける領域(円または長方形)を指定します。この領域外の結果も許可されます。locationRestriction と一緒に使用することはできません。

locationRestriction

検索結果を制限する領域(円または長方形)を指定します。この範囲外の結果は除外されます。locationBias と併用することはできません。

origin

予測された目的地までの直線距離(distanceMeters)の計算に使用される出発地点(緯度、経度)。

regionCode

レスポンスの形式設定と候補のバイアスに使用される地域コード(例: 'uk', 'fr')。

sessionToken

請求処理のために Autocomplete 呼び出しをセッションにグループ化するユーザー生成文字列。

* は必須項目を示します。

回答について

Autocomplete(新版)は、レスポンスとして JSON オブジェクトを返します。レスポンスの説明:

  • suggestions 配列には、認識された関連性に基づいて順序付けされた、予測された場所とクエリがすべて含まれます。各場所は placePrediction フィールドで表され、各クエリは queryPrediction フィールドで表されます。
  • placePrediction フィールドには、プレイス ID やテキストの説明など、単一の場所予測に関する詳細情報が含まれます。
  • queryPrediction フィールドには、単一のクエリ予測に関する詳細情報が含まれます。

完全な JSON オブジェクトは次の形式です。

{   "suggestions": [     {       "placePrediction": {         "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",         "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",         "text": {           "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",           "matches": [             {               "endOffset": 6             }]         },       ...     },     {       "queryPrediction": {         "text": {           "text": "Amoeba Music",           "matches": [             {               "endOffset": 6             }]         },         ...     }   ...] }

必須パラメータ

  • 入力

    検索するテキスト文字列。完全な単語や部分文字列、場所の名前、住所、Plus Codes を指定します。Autocomplete (New) サービスは、この文字列と一致する候補を、関連性の高い順に並べて結果として返します。

オプション パラメータ

  • FieldMask

    レスポンス フィールド マスクを作成して、レスポンスで返すフィールドのリストを指定します。HTTP ヘッダー X-Goog-FieldMask を使用して、レスポンス フィールド マスクをメソッドに渡します。

    返される候補フィールドのカンマ区切りリストを指定します。たとえば、提案の suggestions.placePrediction.text.textsuggestions.queryPrediction.text.text を取得します。

      X-Goog-FieldMask: suggestions.placePrediction.text.text,suggestions.queryPrediction.text.text

    すべてのフィールドを取得するには、* を使用します。

      X-Goog-FieldMask: *
  • includedPrimaryTypes

    場所には、表 A または 表 B に記載されているタイプの 1 つのプライマリ タイプのみを設定できます。たとえば、プライマリ タイプは "mexican_restaurant" または "steak_house" になります。

    デフォルトでは、API は、場所に関連付けられているプライマリ タイプの値に関係なく、input パラメータに基づいてすべての場所を返します。includedPrimaryTypes パラメータを渡すことで、結果を特定のプライマリ タイプまたはプライマリ タイプに制限できます。

    このパラメータを使用して、表 A または表 B から最大 5 つのタイプ値を指定します。レスポンスに含めるには、場所が指定されたプライマリ タイプ値のいずれかと一致する必要があります。

    このパラメータには、代わりに (regions) または (cities) のいずれかを含めることもできます。(regions) 型コレクションは、地域や区分(近隣地域や郵便番号など)のフィルタです。(cities) タイプのコレクションは、Google が都市と認識した場所をフィルタします。

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

    • 指定したタイプの数が 5 個より多い。
    • (cities) または (regions) に加えて、任意の型が指定されている。
    • 認識できないタイプが指定されている。
  • includePureServiceAreaBusinesses

    true に設定されている場合、レスポンスには、顧客を直接訪問または配送するが、実店舗の所在地がないビジネスが含まれます。false に設定すると、API は実店舗を持つビジネスのみを返します。

  • includeQueryPredictions

    true の場合、レスポンスには場所とクエリの両方の予測が含まれます。デフォルト値は false です。これは、レスポンスに場所の予測のみが含まれることを意味します。

  • includedRegionCodes

    指定された地域リストの結果のみを含めます。地域は、最大 15 個の ccTLD(「トップレベル ドメイン」)の 2 文字の値の配列として指定します。省略した場合、レスポンスに制限は適用されません。たとえば、リージョンをドイツとフランスに制限するには:

        "includedRegionCodes": ["de", "fr"]

    locationRestrictionincludedRegionCodes の両方を指定すると、結果は 2 つの設定の共通部分に配置されます。

  • inputOffset

    input 内のカーソル位置を示す 0 から始まる Unicode 文字オフセット。カーソルの位置は、返される予測に影響する可能性があります。空の場合、デフォルトで input の長さになります。

  • languageCode

    結果を返す言語。input で使用されている言語が languageCode で指定されている値と異なる場合、または返された場所のローカル言語から languageCode への翻訳がない場合、結果は複数の言語で表示されることがあります。

    • 優先言語を指定するには、IETF BCP-47 言語コードを使用する必要があります。
    • languageCode が指定されていない場合、API は Accept-Language ヘッダーで指定された値を使用します。どちらも指定されていない場合、デフォルトは en です。無効な言語コードを指定すると、API は INVALID_ARGUMENT エラーを返します。
    • 優先言語は、API が返す結果のセットと、それらが返される順序にわずかな影響を与えます。これは、API がスペルミスを修正する機能にも影響します。
    • この API は、ユーザーと地域住民の両方が読める番地を提供すると同時に、ユーザーの入力内容を反映しようとします。プレイス予測の形式は、各リクエストのユーザー入力によって異なります。
      • input パラメータで一致する用語が最初に選択されます。その際、languageCode パラメータで示された言語設定に沿った名前が使用されます(利用可能な場合)。それ以外の場合は、ユーザー入力に最も一致する名前が使用されます。
      • 住所は、input パラメータの用語と一致する用語が選択された後に、可能な場合はユーザーが読めるスクリプトで、現地語でフォーマットされます。
      • その他のアドレスは、input パラメータの用語と一致する用語が選択された後、優先言語で返されます。優先言語で名前が使用できない場合、API は最も近い一致を使用します。
  • locationBias または locationRestriction

    検索エリアを定義するには、locationBias または locationRestriction を指定します。両方を指定することはできません。locationRestriction は、結果がその範囲内にある必要があるリージョンを指定するもの、locationBias は、結果がその近くにある必要があるが、範囲外でもよいリージョンを指定するものと考えることができます。

    • locationBias

      検索する領域を指定します。この位置はバイアスとして機能します。つまり、指定されたエリア外の結果を含め、指定された位置周辺の結果が返される可能性があります。

    • locationRestriction

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

    locationBias または locationRestriction リージョンを長方形のビューポートまたはとして指定します。

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

      次に例を示します。

      "locationBias": {   "circle": {     "center": {       "latitude": 37.7937,       "longitude": -122.3965     },     "radius": 500.0   } }
    • 長方形は、対角線上の 2 つの low と高点で表される緯度経度のビューポートです。ビューポートは閉じた領域と見なされます。つまり、境界が含まれます。緯度の境界は -90 ~ 90 度(両端を含む)、経度の境界は -180 ~ 180 度(両端を含む)の範囲で指定する必要があります。

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

      lowhigh の両方に値を入力する必要があります。また、表されるボックスを空にすることはできません。ビューポートが空の場合、エラーが発生します。

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

      "locationBias": {   "rectangle": {     "low": {       "latitude": 40.477398,       "longitude": -74.259087     },     "high": {       "latitude": 40.91618,       "longitude": -73.70018     }   } }
  • origin

    目的地までの直線距離を計算する起点(distanceMeters として返されます)。この値を省略すると、直線距離は返されません。緯度と経度の座標として指定する必要があります。

    "origin": {     "latitude": 40.477398,     "longitude": -74.259087 }
  • regionCode

    レスポンスのフォーマットに使用される地域コード。ccTLD(「トップレベル ドメイン」)の 2 文字の値として指定します。ほとんどの ccTLD コードは ISO 3166-1 コードと同一ですが、いくつか注意が必要な例外もあります。たとえば、英国の ccTLD は「uk」(.co.uk)ですが、ISO 3166-1 コードは「gb」(厳密には「グレートブリテンおよび北アイルランド連合王国」のエンティティ用)です。

    候補は地域コードに基づいてバイアスがかかることもあります。Google では、ユーザーの地域設定に応じて regionCode を設定することをおすすめします。

    無効なリージョン コードを指定すると、API は INVALID_ARGUMENT エラーを返します。このパラメータは、適用される法律に基づいて結果に影響を与える可能性があります。

  • sessionToken

    セッション トークンは、Autocomplete(新版)の呼び出しを「セッション」として追跡するユーザー生成の文字列です。Autocomplete(新規)は、セッション トークンを使用して、予測入力検索でのユーザーのクエリと選択フェーズを、請求処理のために個別のセッションにグループ化します。詳細については、セッション トークンをご覧ください。

結果をバイアスするパラメータを選択する

オートコンプリート(新規)パラメータは、検索結果に異なる影響を与える可能性があります。次の表に、目的の結果に基づくパラメータの使用に関する推奨事項を示します。
パラメータ 使用状況の推奨事項
regionCode ユーザーの地域設定に応じて設定します。
includedRegionCodes 結果を指定したリージョンのリストに制限するように設定します。
locationBias 結果がリージョン内またはその周辺で優先される場合に使用します。該当する場合は、ユーザーが閲覧している地図のビューポートとしてリージョンを定義します。
locationRestriction リージョン外の結果を返してはならない場合は、only を使用します。
origin 各予測までの直線距離を計算する場合に使用します。

Autocomplete(新機能)の例

locationRestriction を使用して検索を特定のエリアに制限する

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

 curl -X POST -d '{   "input": "Art museum",   "locationRestriction": {     "circle": {       "center": {         "latitude": 37.7749,         "longitude": -122.4194       },       "radius": 5000.0     }   } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete 

指定されたエリア内のすべての結果は、suggestions 配列に含まれます。

  {     "suggestions": [       {         "placePrediction": {           "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q",           "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q",           "text": {             "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA",             "matches": [               {                 "startOffset": 6,                 "endOffset": 16               }             ]           },           "structuredFormat": {             "mainText": {               "text": "Asian Art Museum",               "matches": [                 {                   "startOffset": 6,                   "endOffset": 16                 }               ]             },             "secondaryText": {               "text": "Larkin Street, San Francisco, CA, USA"             }           },           "types": [             "establishment",             "museum",             "point_of_interest"           ]         }       },       {         "placePrediction": {           "place": "places/ChIJI7NivpmAhYARSuRPlbbn_2w",           "placeId": "ChIJI7NivpmAhYARSuRPlbbn_2w",           "text": {             "text": "de Young Museum, Hagiwara Tea Garden Drive, San Francisco, CA, USA",             "matches": [               {                 "endOffset": 15               }             ]           },           "structuredFormat": {             "mainText": {               "text": "de Young Museum",               "matches": [                 {                   "endOffset": 15                 }               ]             },             "secondaryText": {               "text": "Hagiwara Tea Garden Drive, San Francisco, CA, USA"             }           },           "types": [             "establishment",             "point_of_interest",             "tourist_attraction",             "museum"           ]         }       },       /.../     ]   }

locationRestriction を使用して、検索を長方形のビューポートに制限することもできます。次の例では、リクエストをサンフランシスコのダウンタウンに制限しています。

   curl -X POST -d '{     "input": "Art museum",     "locationRestriction": {       "rectangle": {         "low": {           "latitude": 37.7751,           "longitude": -122.4219         },         "high": {           "latitude": 37.7955,           "longitude": -122.3937         }       }     }   }' \   -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \   https://places.googleapis.com/v1/places:autocomplete 

結果は suggestions 配列に含まれています。

  {     "suggestions": [       {         "placePrediction": {           "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q",           "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q",           "text": {             "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA",             "matches": [               {                 "startOffset": 6,                 "endOffset": 16               }             ]           },           "structuredFormat": {             "mainText": {               "text": "Asian Art Museum",               "matches": [                 {                   "startOffset": 6,                   "endOffset": 16                 }               ]             },             "secondaryText": {               "text": "Larkin Street, San Francisco, CA, USA"             }           },           "types": [             "point_of_interest",             "museum",             "establishment"           ]         }       },       {         "placePrediction": {           "place": "places/ChIJyQNK-4SAhYARO2DZaJleWRc",           "placeId": "ChIJyQNK-4SAhYARO2DZaJleWRc",           "text": {             "text": "International Art Museum of America, Market Street, San Francisco, CA, USA",             "matches": [               {                 "startOffset": 14,                 "endOffset": 24               }             ]           },           "structuredFormat": {             "mainText": {               "text": "International Art Museum of America",               "matches": [                 {                   "startOffset": 14,                   "endOffset": 24                 }               ]             },             "secondaryText": {               "text": "Market Street, San Francisco, CA, USA"             }           },           "types": [             "museum",             "point_of_interest",             "tourist_attraction",             "art_gallery",             "establishment"           ]         }       }     ]   }

locationBias を使用して検索結果にバイアスを設定する

locationBias を使用すると、位置情報がバイアスとして機能します。つまり、指定したエリア外の結果を含め、指定した位置情報の周辺の結果が返される可能性があります。次の例では、リクエストをサンフランシスコのダウンタウンにバイアスします。

 curl -X POST -d '{   "input": "Amoeba",   "locationBias": {     "circle": {       "center": {         "latitude": 37.7749,         "longitude": -122.4194       },       "radius": 5000.0     }   } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete 

結果には、5, 000 メートルの半径外の結果など、より多くの項目が含まれるようになりました。

{   "suggestions": [     {       "placePrediction": {         "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",         "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",         "text": {           "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",           "matches": [             {               "endOffset": 6             }           ]         },         "structuredFormat": {           "mainText": {             "text": "Amoeba Music",             "matches": [               {                 "endOffset": 6               }             ]           },           "secondaryText": {             "text": "Haight Street, San Francisco, CA, USA"           }         },         "types": [           "electronics_store",           "point_of_interest",           "store",           "establishment",           "home_goods_store"         ]       }     },     {       "placePrediction": {         "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",         "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",         "text": {           "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",           "matches": [             {               "endOffset": 6             }           ]         },         "structuredFormat": {           "mainText": {             "text": "Amoeba Music",             "matches": [               {                 "endOffset": 6               }             ]           },           "secondaryText": {             "text": "Telegraph Avenue, Berkeley, CA, USA"           }         },         "types": [           "electronics_store",           "point_of_interest",           "establishment",           "home_goods_store",           "store"         ]       }     },     ...   ] }

locationBias を使用して、検索を長方形のビューポートに制限することもできます。次の例では、リクエストをサンフランシスコのダウンタウンに制限しています。

   curl -X POST -d '{     "input": "Amoeba",     "locationBias": {       "rectangle": {         "low": {           "latitude": 37.7751,           "longitude": -122.4219         },         "high": {           "latitude": 37.7955,           "longitude": -122.3937         }       }     }   }' \   -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \   https://places.googleapis.com/v1/places:autocomplete 

長方形のビューポート内の検索結果はレスポンスに表示されますが、バイアスにより、一部の結果は定義された境界の外側にあります。結果は suggestions 配列にも含まれています。

  {     "suggestions": [       {         "placePrediction": {           "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",           "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",           "text": {             "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",             "matches": [               {                 "endOffset": 6               }             ]           },           "structuredFormat": {             "mainText": {               "text": "Amoeba Music",               "matches": [                 {                   "endOffset": 6                 }               ]             },             "secondaryText": {               "text": "Haight Street, San Francisco, CA, USA"             }           },           "types": [             "point_of_interest",             "store",             "establishment"           ]         }       },       {         "placePrediction": {           "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",           "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",           "text": {             "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",             "matches": [               {                 "endOffset": 6               }             ]           },           "structuredFormat": {             "mainText": {               "text": "Amoeba Music",               "matches": [                 {                   "endOffset": 6                 }               ]             },             "secondaryText": {               "text": "Telegraph Avenue, Berkeley, CA, USA"             }           },           "types": [             "point_of_interest",             "store",             "establishment"           ]         }       },       {         "placePrediction": {           "place": "places/ChIJRdmfADq_woARYaVhnfQSUTI",           "placeId": "ChIJRdmfADq_woARYaVhnfQSUTI",           "text": {             "text": "Amoeba Music, Hollywood Boulevard, Los Angeles, CA, USA",             "matches": [               {                 "endOffset": 6               }             ]           },           "structuredFormat": {             "mainText": {               "text": "Amoeba Music",               "matches": [                 {                   "endOffset": 6                 }               ]             },             "secondaryText": {               "text": "Hollywood Boulevard, Los Angeles, CA, USA"             }           },           "types": [             "point_of_interest",             "store",             "establishment"           ]         }       },     /.../     ]   }

includedPrimaryTypes を使用する

includedPrimaryTypes パラメータを使用して、表 A表 B(regions) のみ、または (cities) のみから最大 5 つのタイプ値を指定します。レスポンスに含めるには、場所が指定されたプライマリ タイプ値のいずれかと一致する必要があります。

次の例では、input 文字列として「Soccer」を指定し、includedPrimaryTypes パラメータを使用して結果を "sporting_goods_store" タイプの施設に制限しています。

 curl -X POST -d '{   "input": "Soccer",   "includedPrimaryTypes": ["sporting_goods_store"],   "locationBias": {     "circle": {       "center": {         "latitude": 37.7749,         "longitude": -122.4194       },       "radius": 500.0     }   } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete 

includedPrimaryTypes パラメータを省略すると、"athletic_field" など、望ましくないタイプの施設が結果に含まれる可能性があります。

クエリ予測をリクエストする

クエリ予測はデフォルトで返されません。includeQueryPredictions リクエスト パラメータを使用して、レスポンスにクエリ予測を追加します。次に例を示します。

 curl -X POST -d '{   "input": "Amoeba",   "includeQueryPredictions": true,   "locationBias": {     "circle": {       "center": {         "latitude": 37.7749,         "longitude": -122.4194       },       "radius": 5000.0     }   } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete 

suggestions 配列には、レスポンスについてで説明したように、場所の予測とクエリの予測の両方が含まれるようになりました。各クエリ予測には、推奨されるテキスト検索文字列を含む text フィールドが含まれています。テキスト検索(新版)リクエストを行うと、返されたクエリ予測の詳細情報を取得できます。

オリジンを使用する

この例では、origin を緯度と経度の座標としてリクエストに含めます。origin を含めると、Autocomplete(新版)は、origin から目的地までの直線距離を含む distanceMeters フィールドをレスポンスに含めます。この例では、原点をサンフランシスコの中心に設定します。

 curl -X POST -d '{   "input": "Amoeba",   "origin": {     "latitude": 37.7749,     "longitude": -122.4194   },   "locationRestriction": {     "circle": {       "center": {         "latitude": 37.7749,         "longitude": -122.4194       },       "radius": 5000.0     }   } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete 

レスポンスに distanceMeters が含まれるようになりました。

{   "suggestions": [     {       "placePrediction": {         "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",         "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",         "text": {           "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",           "matches": [             {               "endOffset": 6             }           ]         },         "structuredFormat": {           "mainText": {             "text": "Amoeba Music",             "matches": [               {                 "endOffset": 6               }             ]           },           "secondaryText": {             "text": "Haight Street, San Francisco, CA, USA"           }         },         "types": [           "home_goods_store",           "establishment",           "point_of_interest",           "store",           "electronics_store"         ],         "distanceMeters": 3012       }     }   ] }

レスポンスに距離がない

リクエストに origin が含まれている場合でも、レスポンス本文に distanceMeters が含まれていないことがあります。これは、次のような場合に発生する可能性があります。

  • distanceMetersroute の予測には含まれません。
  • distanceMeters の値が 0 の場合、つまり、指定された origin の位置から 1 メートル未満の予測の場合、distanceMeters は含まれません。

解析されたオブジェクトから distanceMeters フィールドを読み取ろうとするクライアント ライブラリは、値 0 のフィールドを返します。ユーザーを誤解させないように、ユーザーに距離がゼロと表示しないでください

試してみよう:

API Explorer を使用すると、サンプル リクエストを作成して、API と API オプションを理解できます。

  1. ページの右側にある API アイコン api を選択します。

  2. 必要に応じてリクエスト パラメータを編集します。

  3. [Execute] ボタンを選択します。ダイアログで、リクエストに使用するアカウントを選択します。

  4. API Explorer パネルで、全画面アイコン fullscreen を選択して API Explorer ウィンドウを拡大します。