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

プラットフォームを選択: 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 ウィンドウを拡大します。