ジオコーディングのリクエストとレスポンス

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

リクエスト

Geocoding API のリクエストの形式は次のとおりです。

https://maps.googleapis.com/maps/api/geocode/outputFormat?parameters

ここで、outputFormat は次のいずれかの値になります。

  • json(推奨)は、JavaScript Object Notation(JSON)で出力されることを示します。
  • xml は XML での出力を示します。

API キーを使用するリクエストには HTTPS が必要です。

パラメータには、必須パラメータと省略可能なパラメータがあります。URL の標準と同様に、パラメータはアンパサンド(&)文字を使用して区切ります。

ジオコーディングとリバース ジオコーディングについては、リクエストのタイプごとに異なるパラメータを使用できるため、このページの残りの部分では個別に説明します。

ジオコーディング(緯度と経度の参照)のパラメータ

ジオコーディング リクエストの必須パラメータ:

  • address - ジオコーディングする番地または plus code。対象国の郵便業務で使用されている形式で住所を指定します。ビジネス名や単位、部屋番号、階数など、追加の住所要素は指定しないでください。番地要素は、スペースで区切る必要があります(ここでは %20 に対して URL エスケープとして表示)。
    address=24%20Sussex%20Drive%20Ottawa%20ON
    ここに示した形式とコード(プラス記号は %2B に URL エスケープされ、スペースは %20 に URL エスケープされます):
    • グローバル コードは、4 文字のエリアコードと 6 文字以上のローカルコードです(849VCWC8+R9 は 849VCWC8%2BR9)。
    • 複合コード は、明示的な場所を含む 6 文字以上のローカルコードです(CWC8+R9 Mountain View, CA, USA は CWC8%2BR9%20Mountain%20View%20CA%20USA)。

    --OR--
    components - 要素をパイプ(|)で区切るコンポーネント フィルタ。address が指定されている場合、コンポーネント フィルタはオプション パラメータとしても使用できます。 コンポーネント フィルタの各要素は component:value ペアで構成され、ジオコーダから返される結果を完全に制限します。詳しくは、後述のコンポーネントのフィルタリングをご覧ください。
  • key - アプリの API キー。この鍵は、割り当て管理のためにアプリケーションを識別します。キーを取得する方法を学習する。

詳細なガイダンスについては、よくある質問をご覧ください。

ジオコーディング リクエストの省略可能なパラメータ:

  • bounds - ジオコーディングの結果に大きくバイアスをかけるビューポートの境界ボックス。このパラメータは、ジオコーダから返される結果に影響を与えますが、完全に制限するわけではありません。(詳しくは、後述のビューポートのバイアスをご覧ください)。
  • language - 結果を返す言語。
    • サポートされている言語の一覧をご覧ください。サポート対象の言語は頻繁に更新されるため、このリストで網羅されていない場合があります。
    • language が指定されていない場合、ジオコーダは、Accept-Language ヘッダーで指定された優先言語、またはリクエストの送信元となるドメインのネイティブ言語の使用を試みます。
    • ジオコーダは、ユーザーとローカルの両方で読み取り可能な番地を提供するよう最善を尽くしています。この目的を達成するために、住所はローカル言語で返されます。住所は必要に応じて文字に変換され、優先言語が維持されます。その他のアドレスはすべて、優先言語で返されます。住所コンポーネントはすべて同じ言語で返されます。これは、最初のコンポーネントから選択されます。
    • 優先言語で名前を利用できない場合、ジオコーダは最も近い言語を使用します。
    • 優先言語は、API が返す結果セットと、返される順序に大きな影響を与えます。ジオコーダでは、通りの種類の略語や、ある言語では有効であっても別の言語で意味を持たない類義語など、言語に応じて略語の解釈が異なります。たとえば、utcatér は、それぞれハンガリーでストリートとスクエアの類義語です。
  • region - ccTLD(「トップレベル ドメイン」)の 2 文字の値として指定される地域コードこのパラメータは、ジオコーダから返される結果に影響を与えますが、完全に制限するわけではありません。(詳細については、下記の地域のバイアスをご覧ください)。
  • components - パイプ(|)で区切られた要素を含むコンポーネント フィルタ。リクエストに address が含まれていない場合、コンポーネント フィルタは必須です。コンポーネント フィルタの各要素は component:value ペアで構成され、ジオコーダから返される結果を完全に制限します。詳しくは、後述のコンポーネントのフィルタリングをご覧ください。

レスポンス

ジオコーディング レスポンスは、output リクエストの URL パスで指定された形式で返されます。

この例では、Geocoding API は、場所 ID「ChIJeRpOeF67j4AR9ydy_PIzPuM"」に対するクエリに対する json レスポンスをリクエストします。これは、1600 Amphitheatre Parkway, Mountain View, CA の建物の place_ID です。

このリクエストでは、JSON output フラグを使用しています。

https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJeRpOeF67j4AR9ydy_PIzPuM&key=YOUR_API_KEY

このリクエストでは、XML output フラグを使用します。

https://maps.googleapis.com/maps/api/geocode/xml?place_id=ChIJeRpOeF67j4AR9ydy_PIzPuM&key=YOUR_API_KEY

以下のタブを選択すると、JSON レスポンスと XML レスポンスのサンプルが表示されます。

JSON

{
    "results": [
        {
            "address_components": [
                {
                    "long_name": "1600",
                    "short_name": "1600",
                    "types": [
                        "street_number"
                    ]
                },
                {
                    "long_name": "Amphitheatre Parkway",
                    "short_name": "Amphitheatre Pkwy",
                    "types": [
                        "route"
                    ]
                },
                {
                    "long_name": "Mountain View",
                    "short_name": "Mountain View",
                    "types": [
                        "locality",
                        "political"
                    ]
                },
                {
                    "long_name": "Santa Clara County",
                    "short_name": "Santa Clara County",
                    "types": [
                        "administrative_area_level_2",
                        "political"
                    ]
                },
                {
                    "long_name": "California",
                    "short_name": "CA",
                    "types": [
                        "administrative_area_level_1",
                        "political"
                    ]
                },
                {
                    "long_name": "United States",
                    "short_name": "US",
                    "types": [
                        "country",
                        "political"
                    ]
                },
                {
                    "long_name": "94043",
                    "short_name": "94043",
                    "types": [
                        "postal_code"
                    ]
                }
            ],
            "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
            "geometry": {
                "location": {
                    "lat": 37.4224428,
                    "lng": -122.0842467
                },
                "location_type": "ROOFTOP",
                "viewport": {
                    "northeast": {
                        "lat": 37.4239627802915,
                        "lng": -122.0829089197085
                    },
                    "southwest": {
                        "lat": 37.4212648197085,
                        "lng": -122.0856068802915
                    }
                }
            },
            "place_id": "ChIJeRpOeF67j4AR9ydy_PIzPuM",
            "plus_code": {
                "compound_code": "CWC8+X8 Mountain View, CA",
                "global_code": "849VCWC8+X8"
            },
            "types": [
                "street_address"
            ]
        }
    ],
    "status": "OK"
}

JSON レスポンスには、2 つのルート要素が含まれる点に注意してください。

  • "status" には、リクエストのメタデータが含まれます。以下のステータス コードをご覧ください。
  • "results" には、ジオコーディングされた住所情報とジオメトリ情報の配列が含まれます。

通常、住所検索で返されるエントリは "results" 配列内に 1 つだけですが、住所クエリがあいまいな場合、ジオコーダは複数の結果を返すことがあります。

XML

<GeocodeResponse>
    <status>OK</status>
    <result>
        <type>street_address</type>
        <formatted_address>1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA</formatted_address>
        <address_component>
            <long_name>1600</long_name>
            <short_name>1600</short_name>
            <type>street_number</type>
        </address_component>
        <address_component>
            <long_name>Amphitheatre Parkway</long_name>
            <short_name>Amphitheatre Pkwy</short_name>
            <type>route</type>
        </address_component>
        <address_component>
            <long_name>Mountain View</long_name>
            <short_name>Mountain View</short_name>
            <type>locality</type>
            <type>political</type>
        </address_component>
        <address_component>
            <long_name>Santa Clara County</long_name>
            <short_name>Santa Clara County</short_name>
            <type>administrative_area_level_2</type>
            <type>political</type>
        </address_component>
        <address_component>
            <long_name>California</long_name>
            <short_name>CA</short_name>
            <type>administrative_area_level_1</type>
            <type>political</type>
        </address_component>
        <address_component>
            <long_name>United States</long_name>
            <short_name>US</short_name>
            <type>country</type>
            <type>political</type>
        </address_component>
        <address_component>
            <long_name>94043</long_name>
            <short_name>94043</short_name>
            <type>postal_code</type>
        </address_component>
        <geometry>
            <location>
                <lat>37.4224428</lat>
                <lng>-122.0842467</lng>
            </location>
            <location_type>ROOFTOP</location_type>
            <viewport>
                <southwest>
                    <lat>37.4212648</lat>
                    <lng>-122.0856069</lng>
                </southwest>
                <northeast>
                    <lat>37.4239628</lat>
                    <lng>-122.0829089</lng>
                </northeast>
            </viewport>
        </geometry>
        <place_id>ChIJeRpOeF67j4AR9ydy_PIzPuM</place_id>
        <plus_code>
            <global_code>849VCWC8+X8</global_code>
            <compound_code>CWC8+X8 Mountain View, CA</compound_code>
        </plus_code>
    </result>
</GeocodeResponse>

XML レスポンスは、1 つの <GeocodeResponse> 要素と 2 つのトップレベル要素で構成されます。

  • <status> には、リクエストのメタデータが含まれます。以下のステータス コードをご覧ください。
  • 0 個以上の <result> 要素。各要素には、ジオコーディングされた住所情報とジオメトリ情報のセットが 1 つ含まれています。

XML レスポンスが JSON レスポンスよりかなり長くなっています。そのため、なんらかの理由でサービスで xml が必要な場合を除き、json を優先出力フラグとして使用することをおすすめします。また、XML ツリーを処理するには、適切なノードと要素を参照するように注意する必要があります。出力処理の推奨設計パターンについては、XPath を使用した XML の解析をご覧ください。

  • XML の結果は、ルートの <GeocodeResponse> 要素でラップされます。
  • JSON は複数の要素を含むエントリを複数の配列(types)で表します。XML では複数の要素を 1 つの要素(<type>)で表します。
  • JSON では、空の要素は空の配列で示されますが、XML にはそのような要素はありません。結果が生成されないレスポンスは、JSON では空の results 配列を返しますが、XML では <result> 要素を返しません。

ステータス コード

ジオコーディング レスポンス オブジェクト内の "status" フィールドには、リクエストのステータスが格納されます。このフィールドには、ジオコーディングが機能しない理由の追跡に役立つデバッグ情報が含まれる場合もあります。"status" フィールドには、次の値が含まれることがあります。

  • "OK" は、エラーが発生せず、住所が正常に解析され、少なくとも 1 件のジオコードが返されたことを示します。
  • "ZERO_RESULTS" は、検索は成功したものの結果が返されなかったことを示します。これは、実在しない address がジオコーダに渡された場合に発生することがあります。
  • OVER_DAILY_LIMIT は次のいずれかを示します。
    • API キーがないか、無効です。
    • ご利用のアカウントで課金が有効になっていません。
    • ご自身で設定した使用量上限を超えている。
    • 指定したお支払い方法が無効になっている(クレジット カードの期限切れなど)

    修正方法については、マップに関するよくある質問をご覧ください。

  • "OVER_QUERY_LIMIT" はリクエストが割り当て量を超えていることを示します。
  • "REQUEST_DENIED" はリクエストが拒否されたことを示します。
  • "INVALID_REQUEST" は一般的に、クエリ(addresscomponentslatlng)が不足していることを示します。
  • "UNKNOWN_ERROR" はサーバーエラーでリクエストが処理できなかったことを示します。再度リクエストすると、成功する可能性があります。

エラー メッセージ

ジオコーダが OK 以外のステータス コードを返す場合、ジオコーディング レスポンス オブジェクト内に error_message フィールドが追加されることがあります。このフィールドには、特定のステータス コードの背後にある理由に関する詳細情報が含まれています。

結果

ジオコーダは、返された結果を(JSON)results 配列内に格納します。ジオコーダは結果を返さない場合でも(住所が存在しない場合など)、空の results 配列を返します。(XML レスポンスは 0 個以上の <result> 要素で構成されます)。

一般的な結果には次のフィールドが含まれます。

  • types[] 配列は、返された結果の「タイプ」を示します。この配列には、結果として返された対象物のタイプを表す 0 個以上のタグのセットが含まれています。たとえば、「Chicago」のジオコードは「locality」を都市として返します。シカゴは行政区画であることを示します。
  • formatted_address は、人が読める形式のこの場所の住所を含む文字列です。

    ほとんどの場合、この住所は「郵便の宛先」と同一ですイギリスなど一部の国では、ライセンス上の制限があるため実際の郵便の宛先は配信できません。

    フォーマット済み住所は、論理的には 1 つ以上の住所コンポーネントで構成されます。たとえば、「111 8th Avenue, New York, NY」という住所は、「111」(番地)、「8th Avenue」(道路名)、「New York」(都市名)、「NY」(アメリカの州名)で構成されています。

    フォーマット済み住所は、プログラムで解析しないでください。その代わりに、フォーマット済み住所のフィールドに加えて、API レスポンスに含まれる個々の住所コンポーネントを使用してください。

  • address_components[] は、この住所に適用される個々のコンポーネントを含む配列です。

    通常、各住所コンポーネントには次のフィールドがあります。

    • types[] は住所コンポーネントのタイプを示す配列です。サポートされているタイプのリストをご覧ください。
    • long_name は、ジオコーダが返した住所コンポーネントの説明または名前です。
    • short_name は、住所コンポーネントの略称です(略称がある場合)。たとえば、アラスカ州の住所コンポーネントの場合は、long_name には「Alaska」が設定され、short_name には 2 文字の郵便略称を使用して「AK」が設定されます。

    address_components[] 配列については、次の点に注意してください。

    • 住所コンポーネントの配列には、formatted_address よりも多くのコンポーネントが含まれている場合があります。
    • この配列には、formatted_address に含まれているもの以外の住所を持つ行政区画が、すべて含まれているとは限りません。特定の住所を含むすべての行政区画を取得するには、リバース ジオコーディングを使用して住所の緯度と経度をパラメータとしてリクエストに渡します。
    • レスポンスの形式は、リクエスト間で同じになるとは限りません。特に、address_components の数はリクエストされた住所によって異なり、同じ住所でも将来的に変わる可能性があります。コンポーネントは、配列内の位置が変わる場合があります。 コンポーネントのタイプは変わる場合があります。特定のコンポーネントが以降のレスポンスに含まれない場合があります。

    コンポーネントの配列を処理するには、レスポンスを解析し、式を介して適切な値を選択する必要があります。レスポンスの解析に関するガイドをご覧ください。

  • postcode_localities[] は、郵便番号に含まれるすべての地域区分を示す配列です。これは、結果が複数の地域を含む郵便番号の場合にのみ存在します。
  • geometry には、次の情報が含まれます。
    • location には、ジオコーディングされた緯度 / 経度の値が格納されます。通常の住所検索では、このフィールドが特に重要です。
    • location_type には、指定した場所に関する追加データが格納されます。現在サポートされている値は、次のとおりです。

      • "ROOFTOP" は、返される結果が正確なジオコードであり、位置情報の精度が住所の精度まで得られたことを示します。
      • "RANGE_INTERPOLATED" は、返された結果が(交差点などの)正確な 2 地点間で補間された近似値(通常は道路上)を反映していることを示します。補間された結果が返されるのは、番地に対してルーフトップ ジオコーディングが使用できない場合が一般的です。
      • "GEOMETRIC_CENTER" は、返された結果が、ポリライン(道路など)やポリゴン(地域)などの幾何学的な中心であることを示します。
      • "APPROXIMATE" は、返された結果が近似値であることを示します。
    • viewport には、返された結果を表示するための推奨ビューポートが含まれます。ビューポート境界ボックスの southwestnortheast の角を定義する 2 つの緯度と経度の値として指定します。通常、ビューポートは、結果をユーザーに表示するときに結果をフレーム化するために使用されます。
    • bounds(返される場合がある)には、返された結果を完全に含むことができる境界ボックスが格納されます。なお、この境界は推奨のビューポートとは一致しない場合があります(たとえば、サンフランシスコには、ファラロン諸島が含まれています。この島は厳密には市の一部ですが、ビューポートでは返されないはずです)。
  • plus_codeOpen Location CodePlus Codes を参照)は、緯度と経度の座標から導出されたエンコード済みの位置情報参照で、1/8000 度から 1/8000 度(約 14 m x 14 m)の領域を表します。Plus Code は、番地がない場所(建物に番号が付いていない場所や、通りに名前がない場所)で、番地の代わりに使用できます。

    Plus Code は、グローバル コードと複合コードの形式になっています。

    • global_code は、4 文字の市外局番と 6 文字以上のローカルコード(849VCWC8+R9)です。
    • compound_code は、明示的な場所(CWC8+R9, Mountain View, CA, USA)を含む 6 文字以上のローカルコードです。このコンテンツをプログラムで解析しないでください。
    通常、グローバル コードと複合コードの両方が返されます。ただし、検索結果が遠隔地(海や砂漠など)にある場合は、返されるのはグローバル コードのみです。
  • partial_match は、ジオコーダによって、元のリクエストに完全一致する住所は見つからなかったものの、部分一致する住所は見つかったことを示します。元のリクエストで住所の表記が間違っていたり、不完全である可能性があります。

    多くの場合、リクエストで渡された地域に番地が存在しないために部分一致が発生します。また、同じ地域内に複数の場所があるリクエストを行った場合も部分一致が返されます。たとえば、「Hillpar St, Bristol, UK」の場合は、Henry Street と Henrietta Street の両方の部分一致が返されます。リクエストに表記が間違った住所コンポーネントが含まれている場合、ジオコーディング サービスが別の住所を提示することもある点に注意してください。この場合も、部分一致として結果が返されます。

  • place_id は、他の Google API で使用できる一意の識別子です。たとえば、Places API リクエストで place_id を使用すると、電話番号、営業時間、ユーザー レビューなど、ローカル ビジネスの詳細情報を取得できます。詳しくは、場所 ID の概要をご覧ください。

住所タイプと住所コンポーネントのタイプ

結果の types[] 配列は、住所タイプを示します。住所タイプの例としては、番地、国、行政機関などがあります。また、address_components[] には、住所の各部の型を示す types[] 配列もあります。(番地や国など)。(全タイプのリストを以下に紹介します)。アドレスには、複数のタイプがある場合があります。タイプはタグに分類されます。 たとえば、多くの都市には political タイプと locality タイプのタグが付けられています。

ジオコーダでは、次のタイプは住所タイプと住所コンポーネント タイプ配列の両方でサポートされており、返されます。

  • 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 は名前のあるスポットを示します。通常、これらの「スポット」は、その地域で有名な場所のことを指し、「エンパイア ステートビル」や「エッフェル塔」など、他のカテゴリにはあまり当てはまらないものです。

タイプリストが空の場合は、特定の住所コンポーネントに対して既知のタイプが存在しないことを意味します。たとえば、フランスのリュディがこれに相当します。

上記の他に、住所コンポーネントには、ここに示すタイプが含まれる場合があります。このリストはすべてを記載しているわけではなく、変更される可能性があります。

  • floor は建物の階数を示します。
  • establishment は通常、まだ分類されていない場所を示します。
  • landmark は、ナビゲーションを支援するために参照として使用される付近の場所を示します。
  • point_of_interest は名前のあるスポットを示します。
  • parking は、駐車場や立体駐車場を示します。
  • post_box は特定の郵便ポストを示します。
  • postal_town は、localitysublocality など、一部の国で郵送先住所に使用される地域グループを示します。
  • room は建物の部屋を示します。
  • street_number は正確な番地を示します。
  • bus_stationtrain_stationtransit_station は、バス、電車、または公共交通機関の停留所の場所を示します。

ビューポートのバイアス設定

ジオコーディング リクエストでは、(境界ボックスとして表現される)特定のビューポート内の結果を優先するように、ジオコーディング サービスに対して指示することもできます。そのためには、リクエスト URL 内で bounds パラメータを設定します。

bounds パラメータは、この境界ボックスの南西と北東の隅の緯度と経度の座標を、パイプ(|)文字を使用して座標を分離して定義します。

たとえば、「Washington」をジオコーディングすると、通常は米国の州が返されます。

リクエスト:

https://maps.googleapis.com/maps/api/geocode/json?address=Washington&key=YOUR_API_KEY

対応:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Washington",
               "short_name" : "WA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Washington, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 49.0024442,
                  "lng" : -116.91558
               },
               "southwest" : {
                  "lat" : 45.543541,
                  "lng" : -124.8489739
               }
            },
            "location" : {
               "lat" : 47.7510741,
               "lng" : -120.7401385
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 49.0024442,
                  "lng" : -116.91558
               },
               "southwest" : {
                  "lat" : 45.543541,
                  "lng" : -124.8489739
               }
            }
         },
         "place_id" : "ChIJ-bDD5__lhVQRuvNfbGh4QpQ",
         "types" : [ "administrative_area_level_1", "political" ]
      }
   ],
   "status" : "OK"
}

ただし、米国の北東部を囲む境界ボックスを定義する bounds 引数を追加すると、ワシントン D.C. の市町村が返されます。

リクエスト:

https://maps.googleapis.com/maps/api/geocode/json?address=Washington&bounds=36.47,-84.72%7C43.39,-65.90&key=YOUR_API_KEY

対応:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Washington",
               "short_name" : "Washington",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "District of Columbia",
               "short_name" : "District of Columbia",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "District of Columbia",
               "short_name" : "DC",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Washington, DC, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 38.9958641,
                  "lng" : -76.90939299999999
               },
               "southwest" : {
                  "lat" : 38.7916449,
                  "lng" : -77.119759
               }
            },
            "location" : {
               "lat" : 38.9071923,
               "lng" : -77.03687069999999
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 38.9958641,
                  "lng" : -76.90939299999999
               },
               "southwest" : {
                  "lat" : 38.7916449,
                  "lng" : -77.119759
               }
            }
         },
         "place_id" : "ChIJW-T2Wt7Gt4kRKl2I1CJFUsI",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

地域バイアス

ジオコーディング リクエストでは、region パラメータを使って、ジオコーディング サービスの結果で特定の地域が優先されるように設定することができます。このパラメータは、地域のバイアスを指定する ccTLD(国コードのトップレベル ドメイン)の引数を取ります。ccTLD コードは多くの場合 ISO 3166-1 コードと同一ですが、いくつか注意が必要な例外もあります。たとえば、英国の ccTLD は .co.uk で、ISO 3166-1 コードは gb です(技術的には「イギリスと北アイルランドの主体」を意味します)。

ジオコーディングの結果は、Google マップのメイン アプリケーションが正式にリリースされたすべてのドメインでバイアスをかけることができます。なお、バイアスで優先されるのは特定のドメイン内の結果のみです。このドメインの外により関連性の高い結果がある場合はそれらも含まれます。

たとえば、「Toledo」をジオコーディングすると、Geocoding API のデフォルト ドメインが米国に設定されているため、この結果が返されます。リクエスト:

https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&key=AIzaSyCaor12zcAJ3XgISkD8zsoaQ64PAlDgBrs

対応:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Lucas County",
               "short_name" : "Lucas County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Ohio",
               "short_name" : "OH",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Toledo, OH, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 41.732844,
                  "lng" : -83.454229
               },
               "southwest" : {
                  "lat" : 41.580266,
                  "lng" : -83.69423700000002
               }
            },
            "location" : {
               "lat" : 41.6639383,
               "lng" : -83.55521200000001
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 41.732844,
                  "lng" : -83.454229
               },
               "southwest" : {
                  "lat" : 41.580266,
                  "lng" : -83.69423700000002
               }
            }
         },
         "place_id" : "ChIJeU4e_C2HO4gRRcM6RZ_IPHw",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

「Toledo」に対するジオコーディング リクエストは、region=es(スペイン)を指定してスペインの都市を返します。

リクエスト:

https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&region=es&key=YOUR_API_KEY

対応:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Toledo",
               "short_name" : "TO",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Castile-La Mancha",
               "short_name" : "CM",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Spain",
               "short_name" : "ES",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Toledo, Spain",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 39.88605099999999,
                  "lng" : -3.9192423
               },
               "southwest" : {
                  "lat" : 39.8383676,
                  "lng" : -4.0796176
               }
            },
            "location" : {
               "lat" : 39.8628316,
               "lng" : -4.027323099999999
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 39.88605099999999,
                  "lng" : -3.9192423
               },
               "southwest" : {
                  "lat" : 39.8383676,
                  "lng" : -4.0796176
               }
            }
         },
         "place_id" : "ChIJ8f21C60Lag0R_q11auhbf8Y",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

コンポーネントのフィルタリング

ジオコーディングのレスポンスで、Geocoding API は特定の地域に限定された住所結果を返すことができます。制限は components フィルタで指定できます。フィルタは、パイプ(|)で区切られた component:value ペアのリストで構成されます。フィルタ値では、スペルの修正や部分一致など、他のジオコーディングのリクエストと同じメソッドがサポートされます。ジオコーダによってコンポーネント フィルタの部分一致が検出された場合、レスポンスには partial_match フィールドが含まれます。

フィルタできる components は次のとおりです。

  • postal_codepostal_code および postal_code_prefix と一致します。
  • country は、国名、または 2 文字の ISO 3166-1 国コードを照合します。この API は ISO 標準に従って国を定義しているため、対応する ISO 国コードを使用するとフィルタリングが最適に動作します。

次の components は、結果に影響を与える可能性がありますが、適用されることはありません。

  • route は、道路の正式名または略称を照合します。
  • locality は、locality および sublocality タイプと照合します。
  • administrative_area は、すべての administrative_area レベルと一致します。

コンポーネントのフィルタリングに関する注意事項:

  • リクエストでこれらのコンポーネント フィルタを繰り返し行わないでください。そうしないと、API は Invalid_request を返します(countrypostal_coderoute)。
  • リクエストに繰り返しコンポーネント フィルタが含まれている場合、API はこれらのフィルタを OR ではなく AND として評価します。
  • 結果は Google マップと一致しますが、予期しない ZERO_RESULTS レスポンスが返されることがあります。Place Autocomplete の使用は、いくつかのユースケースでより適切な結果が得られることがあります。詳細については、こちらのよくある質問をご覧ください。
  • 住所コンポーネントごとに、address パラメータまたは components フィルタで両方を指定します。両方は指定しません。両方に同じ値を指定すると、ZERO_RESULTS になる可能性があります。

components=country:GB」で「ハイ ストリート、ヘイスティング」のジオコードを行うと、米国のヘイスティング オン ハドソンではなく、イングランドのヘイスティングで結果が返されます。

リクエスト:

https://maps.googleapis.com/maps/api/geocode/json?address=high+st+hasting&components=country:GB&key=YOUR_API_KEY

対応:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "High Street",
               "short_name" : "High St",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Hastings",
               "short_name" : "Hastings",
               "types" : [ "postal_town" ]
            },
            {
               "long_name" : "East Sussex",
               "short_name" : "East Sussex",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "England",
               "short_name" : "England",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United Kingdom",
               "short_name" : "GB",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "TN34 3EY",
               "short_name" : "TN34 3EY",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "High St, Hastings TN34 3EY, UK",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 50.8601041,
                  "lng" : 0.5957329
               },
               "southwest" : {
                  "lat" : 50.8559061,
                  "lng" : 0.5906163
               }
            },
            "location" : {
               "lat" : 50.85830319999999,
               "lng" : 0.5924594
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 50.8601041,
                  "lng" : 0.5957329
               },
               "southwest" : {
                  "lat" : 50.8559061,
                  "lng" : 0.5906163
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJ-Ws929sa30cRKgsMNVkPyws",
         "types" : [ "route" ]
      }
   ],
   "status" : "OK"
}

components=country:ES が指定された「Santa Cruz」の地域に関するジオコード リクエストでは、スペインのカナリア諸島のサンタ クルス デ テネリフェが返されます。

リクエスト:

https://maps.googleapis.com/maps/api/geocode/json?components=locality:santa+cruz|country:ES&key=YOUR_API_KEY

対応:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Santa Cruz de Tenerife",
               "short_name" : "Santa Cruz de Tenerife",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Santa Cruz de Tenerife",
               "short_name" : "TF",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Canary Islands",
               "short_name" : "CN",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Spain",
               "short_name" : "ES",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Santa Cruz de Tenerife, Spain",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 28.487616,
                  "lng" : -16.2356646
               },
               "southwest" : {
                  "lat" : 28.4280248,
                  "lng" : -16.3370045
               }
            },
            "location" : {
               "lat" : 28.4636296,
               "lng" : -16.2518467
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 28.487616,
                  "lng" : -16.2356646
               },
               "southwest" : {
                  "lat" : 28.4280248,
                  "lng" : -16.3370045
               }
            }
         },
         "place_id" : "ChIJcUElzOzMQQwRLuV30nMUEUM",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

コンポーネントのフィルタリングでは、相互に除外するフィルタを指定した場合のみ、ZERO_RESULTS レスポンスが返されます。

リクエスト:

https://maps.googleapis.com/maps/api/geocode/json?components=administrative_area:TX|country:FR&key=YOUR_API_KEY

対応:

{
   "results" : [],
   "status" : "ZERO_RESULTS"
}

components フィルタを使用すると、address パラメータを指定せずに有効なクエリを作成できます。(完全な住所をジオコーディングする場合、リクエストに建物の名前と番号が含まれている場合、address パラメータは必須です)。

リクエスト:

https://maps.googleapis.com/maps/api/geocode/json?components=route:Annankatu|administrative_area:Helsinki|country:Finland&key=YOUR_API_KEY

対応:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Annankatu",
               "short_name" : "Annankatu",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Helsinki",
               "short_name" : "HKI",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Finland",
               "short_name" : "FI",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "00101",
               "short_name" : "00101",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Annankatu, 00101 Helsinki, Finland",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 60.168997,
                  "lng" : 24.9433353
               },
               "southwest" : {
                  "lat" : 60.16226160000001,
                  "lng" : 24.9332897
               }
            },
            "location" : {
               "lat" : 60.1657808,
               "lng" : 24.938451
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 60.168997,
                  "lng" : 24.9433353
               },
               "southwest" : {
                  "lat" : 60.16226160000001,
                  "lng" : 24.9332897
               }
            }
         },
         "place_id" : "ChIJARW7C8sLkkYRgl4je4-RPUM",
         "types" : [ "route" ]
      }
   ],
   "status" : "OK"
}