リバース ジオコーディング(住所検索)のリクエストとレスポンス

通常、「ジオコーディング」という言葉は、人が判読できる住所を地図上の地点に変換することを意味します。一方、地図上の地点を人が判読できる住所に変換する処理を「リバース ジオコーディング」と呼びます。

リバース ジオコーディングのリクエスト

必須パラメータ

  • latlng - 最も近い人間が読み取れる住所を取得する場所を指定する緯度と経度の座標。
  • key - アプリケーションの API キー。このキーを使ってアプリケーションを識別し、割り当て量を管理します。キーを取得する方法を学ぶ。

オプション パラメータ

これらは、逆引数に含めることができる省略可能なパラメータです。 ジオコーディング リクエスト:

  • language - 結果を返す言語。
    • サポートされている言語の一覧をご覧ください。サポートされる言語は頻繁に更新されるため、このリストがすべてのサポート言語を網羅しているとは限りません。
    • language が指定されていない場合、ジオコーダは、Accept-Language ヘッダーで指定された優先言語か、リクエストの送信元ドメインの言語の使用を試みます。
    • ジオコーダは、できるだけユーザーとローカルの両言語で判読可能な番地を返します。そのために、ジオコーダはローカル言語で番地を返し、優先言語も考慮して、必要に応じてユーザーが理解できるスクリプトに書き直します。それ以外の住所はすべて、優先言語で返されます。住所コンポーネントはすべて、最初のコンポーネントで選択した言語と同じ言語で返されます。
    • 優先言語で名前を表示できない場合、ジオコーダは最も近い言語を使用します。
  • region - ccTLD(「トップレベル ドメイン」)の 2 文字の値として指定される地域コードです。このパラメータは 適用法に基づく検索結果。
  • result_type - 1 つ以上のアドレスタイプのフィルタ。 パイプ(|)で区切ります。パラメータに複数の いずれかのタイプに一致するすべての住所が返されます。 処理に関する注意: result_type パラメータは、指定された住所タイプに検索を制限しません。むしろ、 result_type は検索後のフィルタとして機能し、API はすべてのデータをフェッチします。 指定した latlng の結果を取得し、それらの結果を破棄します 次の値は指定された住所タイプに一致しない supported: <ph type="x-smartling-placeholder">
      </ph>
    • street_address は正確な住所を示します。
    • route は名前のある道路(US 101 など)を示します。
    • intersection は、主要交差点(通常は 2 つの大通りの交差点)を示します。
    • political は行政区画を示します。通常、このタイプは行政区画のポリゴンを示します。
    • country は国レベルの行政区画を示し、一般的にはジオコーダから返される最上位のタイプです。
    • administrative_area_level_1 は国レベルの下の 1 次的な行政区画を示します。米国の場合、州がこの行政区画レベルに相当しますが、すべての国でこの行政区画レベルが存在するわけではありません。多くの場合、administrative_area_level_1 の省略名は下位区分 ISO 3166-2 とその他の一般的なリストに一致します。ただし、Google のジオコーディングの結果はさまざまな信号と位置情報データに基づいているため、これらの名前が厳密に一致するとは限りません。
    • administrative_area_level_2 は国レベルの下の 2 次的な行政区画を示します。米国の場合、郡がこの行政区画レベルに相当しますが、すべての国でこの行政区画レベルが存在するわけではありません。
    • administrative_area_level_3 は国レベルの下の 3 次的な行政区画を示します。このタイプは小規模な行政区域を示します。 すべての国でこの行政区画レベルが存在するわけではありません。
    • administrative_area_level_4 は国レベルより下位の 4 次の行政区画を示します。このタイプは小規模な行政区域を示します。 すべての国でこの行政区画レベルが存在するわけではありません。
    • administrative_area_level_5 は国レベルの 5 次以下の行政区画を示します。このタイプは小規模な行政区域を示します。 すべての国でこの行政区画レベルが存在するわけではありません。
    • administrative_area_level_6 は国レベルの 6 次以下の行政区画を示します。このタイプは小規模な行政区域を示します。すべての国でこの行政区画レベルが存在するわけではありません。
    • administrative_area_level_7 は国レベルの 7 次以下の行政区画を示します。このタイプは小規模な行政区域を示します。すべての国でこの行政区画レベルが存在するわけではありません。
    • colloquial_area は一般的に使用されている通称を示します。
    • locality は行政区画である都市または町を示します。
    • sublocality は locality の下の 1 次的な行政区画を示します。一部の場所では、sublocality_level_1sublocality_level_5 のいずれかの追加タイプを受け取ります。各下位地区レベルは行政区画で、数が大きいほど区域は小さくなります。
    • neighborhood は名前のある区域を示します。
    • premise は名前のある場所を示します。通常は共通の名前を持つ建物や建物の集合体です。
    • subpremise は名前のある場所の下の 1 次的な存在を示します。通常は共通の名前を持つ建物の集合体内の 1 棟の建物です。
    • plus_code はエンコードされた場所の参照情報を示します。緯度と経度に基づきます。Plus Codes は、番地がない場所(建物に番号が付いていない場所や、通りに名前がない場所)で、番地の代わりに使用できます。詳しくは https://plus.codes をご覧ください。
    • postal_code は対象の国内で郵便物の宛先として使用される郵便番号を示します。
    • natural_feature は特徴的な地勢を示します。
    • airport は空港を示します。
    • park は名前付きの公園を示します。
    • point_of_interest は名前のあるスポットを示します。通常、これらの「スポット」は、その地域で有名な場所のことを指し、「エンパイア ステートビル」や「エッフェル塔」など、他のカテゴリにはあまり当てはまらないものです。
  • location_type - 1 つ以上の位置情報タイプのフィルタ(パイプ(|)で区切る)。パラメータに複数の位置情報タイプが含まれている場合、API はいずれかのタイプに一致するすべての住所を返します。処理に関する注意事項: location_type パラメータは 指定した場所タイプに検索を制限します。むしろ、 location_type は検索後のフィルタとして機能し、API はすべてのデータをフェッチします。 指定した latlng の結果を取得し、それらの結果を破棄します 指定した地域タイプと一致しない 値を取得できます 次の値を使用できます。
    • "ROOFTOP" は、番地までの精度で位置情報が登録されている住所のみを返します。
    • "RANGE_INTERPOLATED" は、2 つの正確な地点(交差点など)間で補間された近似値(通常は道路上)を反映している住所のみを返します。通常、補間範囲は は、番地に対して屋上ジオコードを利用できないことを示します。
    • "GEOMETRIC_CENTER" はジオメトリのみを返します。 地点の中心。たとえば、ポリライン(道路など)や ポリゴン(地域)を指定します。
    • "APPROXIMATE" は、近似として分類される住所のみを返します。
  • extra_computations - このパラメータを使用して、レスポンスで次の追加機能を指定します。 同じ API リクエストで複数の機能を有効にするには、各機能のリクエストに extra_computations パラメータを含めます。次に例を示します。
    extra_computations=ADDRESS_DESCRIPTORS&extra_computations=BUILDING_AND_ENTRANCES

result_type フィルタと location_type フィルタの両方が存在する場合、API result_typelocation_type 値。どのフィルタ値も使用できない場合、API は ZERO_RESULTS を返します。

リバース ジオコーディングの例

次の照会には、「Brooklyn」にある場所の緯度と経度の値が含まれています。

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY

上記の照会を行うと、次の結果が返されます。

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "277",
               "short_name" : "277",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Bedford Avenue",
               "short_name" : "Bedford Ave",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Williamsburg",
               "short_name" : "Williamsburg",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Brooklyn",
               "short_name" : "Brooklyn",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Kings",
               "short_name" : "Kings",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "New York",
               "short_name" : "NY",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "11211",
               "short_name" : "11211",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
         "geometry" : {
            "location" : {
               "lat" : 40.714232,
               "lng" : -73.9612889
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 40.7155809802915,
                  "lng" : -73.9599399197085
               },
               "southwest" : {
                  "lat" : 40.7128830197085,
                  "lng" : -73.96263788029151
               }
            }
         },
         "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
         "types" : [ "street_address" ]
      },

  ... Additional <code>results[]</code> ...

リバース ジオコーダが複数の結果を返している点に注意してください。「 "formatted_address" の検索結果には郵送先住所だけでなく、 地理的に意味のある名前を付けたものです。たとえば、シカゴ市のある地点のジオコードを行うと、ジオコードされる地点は国(米国)、州(イリノイ)、都市(シカゴ)、番地などで示されます。すべて「住所」ですジオコーダに渡します。リバース ジオコーダは、 指定することもできます。

リバース ジオコーダでは、行政区域(国、都道府県、州、都道府県など) 市区町村、番地、郵便番号が含まれています。

が返す formatted_address 値の完全なリスト 前のクエリを以下に示します。

{
   "plus_code" : {
      "compound_code" : "P27Q+MCM New York, NY, USA",
      "global_code" : "87G8P27Q+MCM"
   },
   "results" : [
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "premise" ]
      },
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "establishment", "point_of_interest" ]
      },
      {
         "formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "route" ]
      },
      {
         "formatted_address" : "P27Q+MC New York, NY, USA",
         ...
         "types" : [ "plus_code" ]
      },
      {
         "formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY 11211, USA",
         ...
         "types" : [ "postal_code" ]
      },
      {
         "formatted_address" : "Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Kings County, Brooklyn, NY, USA",
         ...
         "types" : [ "administrative_area_level_2", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY, USA",
         ...
         "types" : [ "political", "sublocality", "sublocality_level_1" ]
      },
      {
         "formatted_address" : "New York, NY, USA",
         ...
         "types" : [ "locality", "political" ]
      },
      {
         "formatted_address" : "New York, USA",
         ...
         "types" : [ "administrative_area_level_1", "political" ]
      },
      {
         "formatted_address" : "United States",
         ...
         "types" : [ "country", "political" ]
      }
   ],
   "status" : "OK"
}

この API は、最も具体的な番地から、周辺地域、都市、郡、州などの大規模な行政区画まで、さまざまなタイプの住所を返します。一般的に、より正確な住所は よく目にするでしょう。特定のタイプの検索語句とマッチする 詳細については、後述の タイプ別に結果を確認できます。このため、結果の場所は Terraform と比較して、 それぞれ異なります。

タイプ別にフィルタされたリバース ジオコーディング

次の例では、返された住所をフィルタリングして、 ロケーション タイプは ROOFTOP、住所のタイプは street_address

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY

注: これらのフィルタは、 リバース ジオコーディング

リバース ジオコーディングのレスポンス

リバース ジオコーディングのレスポンスの形式は、ジオコーディングのレスポンス形式と同じです。 レスポンスが返されます。ジオコーディングのレスポンスをご覧ください。 以下は、リバース ジオコーディングのレスポンスに含まれる可能性があるステータス コードです。

リバース ジオコーディングのステータス コード

ジオコーディング レスポンス オブジェクトの "status" フィールドには、リクエストのステータスが含まれます。リバース ジオコーディングが行えなかった原因を追跡できるようにデバッグ情報が含まれることもあります。"status" フィールドには次の値が含まれることがあります。

  • "OK" は、エラーが発生せず、1 回以上発生したことを示します。 返されました。
  • "ZERO_RESULTS" はリバース ジオコーディングが実行されたことを示します。 成功したものの、結果が返されませんでした。これは、ジオコーダに遠隔地の latlng が渡された場合に発生することがあります。
  • "OVER_QUERY_LIMIT" は、 あります。
  • "REQUEST_DENIED" は、リクエストが拒否されたことを示します。リクエストに result_type パラメータまたは location_type パラメータが含まれているにもかかわらず、API キーが含まれていない可能性があります。
  • "INVALID_REQUEST" は通常、次のいずれかを示します。
    • クエリ(addresscomponentslatlng)がありません。
    • 無効な result_type または location_type が変更されました できます。
  • "UNKNOWN_ERROR" はサーバーエラーでリクエストが処理できなかったことを示します。再度リクエストすると、成功する可能性があります。

リバース ジオコーディングの Plus Codes

Geocoding レスポンスの plus_code フィールドには、クエリされた緯度と経度に最も近いプラスコードが含まれます。また、ほとんどの場合、JSON 結果配列には、plus_code 型の完全なジオコーディング結果とプラスコードを含む住所が含まれます。デコードされた Plus Code からリクエスト ポイントまでの距離は、 高さ 10 m 未満であることが保証されています。