このサービスは、クライアント側の Google Maps JavaScript API の一部として利用可能です。または、Java Client、Python Client、Go Client および Node.js Client for Google Maps Services を使用してサーバー側で使用されます。注: サービスの使い方によらず、適用される使用制限は同じです。1 日あたりのリクエストは、クライアント側とサーバー側のクエリ回数の合計です。
ジオコーディングとは
ジオコーディングとは、住所(たとえば「東京都港区六本木 6-10-1」)を地理的座標(たとえば、緯度 35.6604282、経度 139.7269877)に変換するプロセスです。変換した座標は、マップ上に場所の目印を付ける場合や、位置指定を行う場合に使用できます。
リバース ジオコーディングとは、地理的位置を人間が判別可能な住所に変換するプロセスです。Google Maps Geocoding API のリバース ジオコーディング サービスでは、指定したプレイス ID の住所を探すこともできます。
Google Maps Geocoding API を使用すると、HTTP リクエスト経由で直接このようなサービスにアクセスできます。次の例では、Google Maps JavaScript API を介してジオコーディング サービスを使用し、基本的な機能を紹介しています。
この例を全画面で表示すると、リクエストの調整に役立つオプション(コンポーネントのフィルタリングやビューポートのバイアス)など、Geocoding API の追加機能のほか、それぞれの結果の詳細情報も見ることができます。
はじめに
このドキュメントでは Google Maps Geocoding API ウェブサービスについて説明します。このドキュメントは、Google Maps API のいずれかが提供するマップでジオコーディング データを使用するウェブサイトやモバイル端末のデベロッパーを対象としています。
注: このサービスは、主に静的な(既知の)住所のジオコーディングを行ってアプリケーションの内容をマップ上に配置することを目的に設計されています。ユーザー入力にリアルタイムで応答することなどを目的とはしていません。ユーザー インターフェース要素内などでのダイナミック ジオコーディングについては、Google Maps JavaScript API Client Geocoder や Google Play サービス Location API のドキュメントをご覧ください。
ジオコーディングは、多くの時間とリソースを消費するタスクです。可能な場合は、ここで説明する Google Maps Geocoding API やその他のジオコーディング サービスを使用して既知の住所をあらかじめジオコーディングし、独自に設計した一時キャッシュに結果を格納しておきます。
Google Maps Geocoding API の使用には API キーが必要です。Geocoding API を使用した開発を始める前に、認証要件と API の使用制限について確認してください。
Google Maps Geocoding API のリクエスト形式
Google Maps Geocoding API リクエストの形式は次のとおりです。
https://maps.googleapis.com/maps/api/geocode/outputFormat?parameters
outputFormat には次のいずれかの値を設定します。
json(推奨): 出力が JSON(JavaScript Object Notation)であることを示します。xml: 出力が XML であることを示します。
HTTP で Google Maps Geocoding API にアクセスするには、次を使用します。
http://maps.googleapis.com/maps/api/geocode/outputFormat?parameters
セキュリティは重要です。特に機密性の高いユーザーデータ(ユーザーの位置情報など)を含むアプリケーションでは、できる限りリクエストに HTTPS を使用することをお勧めします。HTTPS 暗号化を使用すると、アプリケーションをより強固に保護できるようになり、スヌーピングや改ざんに対する耐性が高まります。
注: URL は、すべてのウェブサービスで対応できるように適切にエンコーディングされた有効な文字である必要があります。また、8192 文字以内という制限があります。URL を構成する際は、この制限に注意してください。別のブラウザ、プロキシ、サーバーでも同様に別の URL 文字制限がある可能性があります。
パラメータには、必須パラメータと省略可能なパラメータがあります。URL の標準と同様に、パラメータはアンパサンド(&)文字を使用して区切ります。
このページの以降の部分では、ジオコーディングとリバース ジオコーディングについてそれぞれ説明します。この 2 種類のリクエストでは、利用可能なパラメータが異なります。
ジオコーディング(緯度と経度の検索)
ジオコーディング リクエストの必須パラメータ:
address: ジオコーディングを行う番地です。対象国の郵便業務で使用されている形式で指定します。店名や組織名、部屋番号、階数など、その他の住所の要素は指定しないでください。その他の情報については、FAQ をご覧ください。
または
components: ジオコードを取得するコンポーネント フィルタです。詳細については、コンポーネントのフィルタリングをご覧ください。addressを指定する場合、コンポーネント フィルタをオプションのパラメータとして指定することもできます。key: アプリケーションの API キーです。このキーを使ってアプリケーションを識別し、割り当て量を管理します。詳細については、キーの取得をご覧ください。注: Google Maps APIs Premium Plan ユーザーは、Geocoding リクエストで、API キー、または有効なクライアント ID とデジタル署名を使用できます。詳細については、Premium Plan ユーザーの認証パラメータをご確認ください。
ジオコーディング リクエストの省略可能なパラメータ:
bounds: ビューポート内の境界ボックスです。この中のジオコーディング結果にはバイアスがかかり、目立つようになります。このパラメータは、ジオコーダから返される結果に影響を与えますが、完全に制限するわけではありません(詳細については、後述のビューポートのバイアスをご覧ください)。language: 結果を返すときの言語を示します。- サポートされる言語のリストをご覧ください。サポートされる言語は頻繁に更新されるため、このリストがすべてのサポート言語を網羅しているとは限りません。
languageが指定されていない場合、ジオコーダは、Accept-Languageヘッダーで指定された優先言語か、リクエストの送信元ドメインの言語の使用を試みます。- ジオコーダは、できるだけユーザーとローカルの両言語で判読可能な番地を返します。そのために、ジオコーダはローカル言語で番地を返し、優先言語も考慮して、必要に応じてユーザーが理解できるスクリプトに書き直します。それ以外の住所はすべて、優先言語で返されます。住所コンポーネントはすべて、最初のコンポーネントで選択した言語と同じ言語で返されます。
- 優先言語で名前を表示できない場合、ジオコーダは最も近い言語を使用します。
- 優先言語は、API が返す結果や、結果が返される順序に多少影響します。「~通り」を表す略語や特定の言語だけで有効な同義語など、ジオコーダによる略語の解釈は言語によって異なります。たとえば、utca と tér は、ハンガリー語では「通り」を表す同義語です。
region: ccTLD(「トップレベル ドメイン」)の 2 文字の値として指定される地域コードです。このパラメータは、ジオコーダから返される結果に影響を与えますが、完全に制限するわけではありません(詳細については、後述の地域のバイアスをご覧ください)。components: コンポーネント フィルタです。パイプ(|)で区切ります。各コンポーネント フィルタはcomponent:valueのペアで構成され、ジオコーダからの結果を完全に制限します。詳細については、後述のコンポーネントのフィルタリングをご覧ください。
ジオコーディングのレスポンス
ジオコーディングのレスポンスは、リクエストの URL パスの output フラグで指定された形式で返されます。
この例では、Google Maps Geocoding API は 「1600 Amphitheatre Parkway, Mountain View, CA」について照会する json レスポンスをリクエストしています。
このリクエストは、JSON output フラグを使用した例です。
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY
このリクエストは、XML output フラグを使用した例です。
https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY
次のタブをクリックすると、JSON と XML のレスポンスの例が表示されます。
{
"results" : [
{
"address_components" : [
{
"long_name" : "1600",
"short_name" : "1600",
"types" : [ "street_number" ]
},
{
"long_name" : "Amphitheatre Pkwy",
"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 Parkway, Mountain View, CA 94043, USA",
"geometry" : {
"location" : {
"lat" : 37.4224764,
"lng" : -122.0842499
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 37.4238253802915,
"lng" : -122.0829009197085
},
"southwest" : {
"lat" : 37.4211274197085,
"lng" : -122.0855988802915
}
}
},
"place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
JSON レスポンスには、2 つのルート要素が含まれる点に注意してください。
statusにはリクエストについてのメタデータが含まれます。下記のステータス コードをご覧ください。resultsにはジオコード済みの住所とジオメトリ情報の配列が含まれます。
通常、住所検索で返されるのは、1 つのエントリのみの results 配列ですが、address クエリがあいまいな場合には、複数の結果が返される可能性があります。
これらの結果から値を抽出する場合は、通常、結果を解析する必要があります。JSON の解析は比較的簡単です。お勧めの設計パターンについては、JSON の解析をご覧ください。
<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 Pkwy</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>San Jose</long_name>
<short_name>San Jose</short_name>
<type>administrative_area_level_3</type>
<type>political</type>
</address_component>
<address_component>
<long_name>Santa Clara</long_name>
<short_name>Santa Clara</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.4217550</lat>
<lng>-122.0846330</lng>
</location>
<location_type>ROOFTOP</location_type>
<viewport>
<southwest>
<lat>37.4188514</lat>
<lng>-122.0874526</lng>
</southwest>
<northeast>
<lat>37.4251466</lat>
<lng>-122.0811574</lng>
</northeast>
</viewport>
</geometry>
<place_id>ChIJ2eUgeAK6j4ARbn5u_wAGqWA</place_id>
</result>
</GeocodeResponse>
XML レスポンスは 1 つの <GeocodeResponse> 要素と 2 つの最上位要素で構成されることに注意してください。
<status>にはリクエストについてのメタデータが含まれます。下記のステータス コードをご覧ください。<result>要素は、存在しない場合も複数個存在する場合もあります。それぞれの要素には、ジオコード済みの住所情報とジオメトリ情報の組み合わせが 1 つ含まれています。
XML レスポンスは、JSON レスポンスに比べてかなり長いことに注意してください。そのため、何らかの理由からサービスで xml を使用する必要がない限り、Google では、優先出力フラグとして json を使用することをお勧めしています。さらに、XML ツリーの処理では、適切なノードと要素を参照できるためには、ある程度気を配る必要があります。出力処理のお勧めの設計パターンについては、XPath による XML の処理をご覧ください。
このドキュメントではこれ以降 JSON 構文を使用します。多くの場合、このドキュメントでコンセプトやフィールド名を説明する際に出力形式は関係ありません。ただし、次の違いには注意してください。
- XML の結果はルート要素
<GeocodeResponse>でラップされます。 - JSON は複数の配列(
types)によって複数の要素を含むエントリを示しますが、XML は複数の単一要素(<type>)でこれらを示します。 - JSON では空の要素は空の配列で示しますが、XML では要素が存在しないことで示します。たとえば、結果が生成されないレスポンスは、JSON では空の
results配列を返しますが、XML では<result>要素を返しません。
ステータス コード
ジオコーディング レスポンス オブジェクトの status フィールドには、リクエストのステータスが含まれます。ジオコーディングが行えなかった原因を追跡できるようにデバッグ情報が含まれることもあります。status フィールドの有効な値は次のとおりです。
OK: エラーが発生しなかったことを示します。住所の解析が成功し、少なくとも 1 件のジオコードが返されました。ZERO_RESULTS: ジオコーディングは成功したものの結果が返されなかったことを示します。これは、ジオコーダに存在しないaddressが渡された場合に発生することがあります。OVER_QUERY_LIMIT: クエリ数が割り当て量を超えていることを示します。REQUEST_DENIED: リクエストが拒否されたことを示します。INVALID_REQUEST: 通常、照会条件(address、components、latlngのいずれか)がないことを示します。UNKNOWN_ERROR: サーバー エラーでリクエストが処理できなかったことを示します。再度リクエストすると、成功する可能性があります。
エラー メッセージ
ジオコーダから OK 以外のステータス コードが返された場合、ジオコーディング レスポンス オブジェクト内に error_message フィールドが付加されている場合があります。このフィールドには、返されたステータス コードの原因に関する詳細情報が含まれています。
注: このフィールドは必ずしも存在するわけではなく、その内容も随時変更される可能性があります。
結果
ジオコーダが結果を返す場合、結果は(JSON)results 配列内に格納されます。ジオコーダから返す結果がない(たとえば、住所が存在しない)場合でも、空の results 配列が返されます(XML レスポンスは、ゼロ個以上の <result> 要素で構成されます)。
通常、結果には次のフィールドが含まれています。
types[]配列は、返された結果のタイプを表します。この配列には、結果として返された地物のタイプを表す 0 個以上のタグのセットが含まれています。たとえば「シカゴ」をジオコーディングすると、「シカゴ」が都市であること示す「locality」に加え、行政上のエンティティであることを示す「political」が返されます。formatted_addressは、このプレイスの住所が人の読める形式で含まれる文字列です。ほとんどの場合、この住所は「郵便の宛先」と同一ですが、国によっては異なる場合があります。(イギリスなど一部の国では、ライセンス上の制限があるため実際の郵便の宛先は配信できません)。通常、この住所は 1 つ以上の住所コンポーネントで構成されます。たとえば、「111 8th Avenue, New York, NY」という住所には、「111」(番地)、「8th Avenue」(通り)、「New York」(市)、「NY」(米国の州)という独立した住所コンポーネントが含まれています。このような追加情報を含む住所コンポーネントについては、以下で説明します。address_components[]は上記のように、個別の住所コンポーネントを含む配列です。通常、各address_componentには次の情報が含まれます。types[]は、住所コンポーネントのタイプを示す配列です。long_name: ジオコーダから返される住所コンポーネントの完全な説明や名前です(テキスト表記)。short_nameは、住所コンポーネントの略称です(存在する場合)。たとえば、アラスカ州の住所コンポーネントの場合、long_nameには「Alaska」が設定され、short_nameには 2 文字の郵便用略称表記を使用した「AK」が設定されます。
address_components[]にはformatted_addressに記載されている数よりも多い住所コンポーネントが含まれることがある点に注意してください。postcode_localities[]は、郵便番号に含まれるすべての地域を示す配列です。このフィールドは、結果の郵便番号に複数の地域が含まれる場合のみ存在します。geometryには、次の情報が含まれます。locationには、ジオコーディングされた緯度と経度の値が含まれます。通常のアドレス検索では、一般に、このフィールドが一番重要になります。location_typeには特定の地域に関する補足データが含まれます。現在サポートされている値は、以下のとおりです。ROOFTOP: 返された結果が番地までの精度で位置情報が登録されている正確なジオコードであることを示します。RANGE_INTERPOLATED: 返された結果が(交差点などの)正確な 2 地点間で補間された近似値(通常は道路上)を反映していることを示します。補間された結果が返されるのは、番地に対してルーフトップ ジオコーディングが使用できない場合が一般的です。GEOMETRIC_CENTER: 返された結果がポリライン(道路など)やポリゴン(地域)などの幾何学的な中心であることを示します。APPROXIMATE: 返された結果が近似値であることを示します。
viewport: 返された結果を表示する推奨ビューポートです。これには、ビューポートの境界ボックスのsouthwest(南西)とnortheast(北東)の角を示す緯度と経度の値が 2 つ含まれています。通常は、ユーザーに結果を表示する際にこのビューポートを使用します。bounds(オプション): 返された結果をすべて含むことができる境界ボックスです。これらの境界は、推奨されるビューポートと一致するとは限りません(たとえば、サンフランシスコのファラロン諸島は、厳密には市の一部ですが、ビューポートには含まれません)。
-
partial_matchは、元のリクエストに完全一致する住所は見つからなかったものの、部分一致する住所は見つかったことを示します。元のリクエストで住所の表記が間違っていたり、不完全である可能性があります。多くの場合、リクエストで渡された地域に番地が存在しないために部分一致が発生します。また、同じ地域内に複数の場所があるリクエストを行った場合も部分一致が返されます。たとえば、「21 Henr St, Bristol, UK」には、「Henry Street」と「Henrietta Street」の両方への部分一致が返されます。リクエストに表記が間違った住所コンポーネントが含まれている場合、ジオコーディング サービスが別の住所を提示することもある点に注意してください。この場合も、部分一致として結果が返されます。
place_idは、Google の他の API で使用できる一意の識別子です。たとえば、place_idと Google Places API リクエストで使うと、電話番号や営業時間、ユーザーの口コミなどのローカル ビジネスの詳細情報を取得できます。詳しくは、プレイス ID の概要をご覧ください。
Google Maps Geocoding API リクエストに対する個々のレスポンス フォーマットの厳密性は保証されていません。そのため、各要素が絶対位置にあるという想定はしないでください(特に、Geocoding API レスポンスの address_components の数はリクエストする住所によって異なり、将来的に変わる可能性もあります)。そのため、レスポンスの解析を行って式で対象の値を選択するようにします。詳細については、ウェブサービスのレスポンスの解析をご覧ください。
住所のタイプと住所コンポーネントのタイプ
結果の 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 次的な行政区画を示します。このタイプは小規模な行政区域を示します。すべての国でこの行政区画レベルが存在するわけではありません。colloquial_areaはエンティティに対して一般に使用されている俗称を示します。localityは市や地方自治体を示します。wardは、日本の住所で複数の地区コンポーネントを簡単に区別するために使用する日本独自のタイプです。sublocalityは locality の下の 1 次的な下位地区を示します。一部の地域では、sublocality_level_1からsublocality_level_5までの追加タイプの 1 つを受け取ることがあります。各下位地区レベルは行政区画で、数が大きいほど区域は小さくなります。neighborhoodは名前のある地域を示します。premiseは名前のある場所を示します。通常は建物や共通の名前を持つ建物群です。subpremiseは名前のある場所の下にあるレベルの 1 次的な存在を示します。通常は共通の名前を持つ建物群の中にある 1 つの建物です。postal_codeは、国内で郵便物の宛先に使用される郵便番号を示します。natural_featureは著名な地物を示します。airportは空港を示します。parkは名前のある公園を示します。point_of_interestは、名称のあるスポットを示します。通常、「名称のあるスポット」とは、その他のカテゴリには簡単に分類できない著名な地名で、たとえば「エンパイア ステート・ビル」や「自由の女神」などです。
タイプリストが空の場合は、特定の住所コンポーネントに対して既知のタイプが存在しないことを意味します。たとえば、フランスのリュディが、これに相当します。
上記の他に、住所コンポーネントには以下のタイプが含まれることがあります。
注: このリストはすべてを網羅するものではなく、今後変更される可能性もあります。
floorは建物における階数を示します。establishmentは、通常、まだカテゴリに分類されていない場所を示します。point_of_interestは、名称のあるスポットを示します。parkingは、駐車場や立体駐車場を示します。post_boxは特定の郵便ポストを示します。postal_town一部の国で郵送先住所に使用される地域のグループを示します。たとえば、localityやsublocalityです。roomは建物における部屋を示します。treet_numberは正確な番地を示します。bus_station、train_station、transit_stationは、バス停、鉄道の駅、公共交通機関の停車場の場所を示します。
ビューポートのバイアス
リクエストを行う際に、ジオコーディング サービスに(境界ボックスとして表現される)特定のビューポート内の結果を優先するように指示することもできます。そのためには、リクエスト URL で bounds パラメータを設定します。バイアスをかけると境界内の結果だけが優先されますが、その境界の外により関連性の高いデータがある場合は、それらが結果に含まれることもあります。
bounds パラメータでは、パイプ(|)を区切り文字として、境界ボックスの南西と北東の角の緯度と経度の座標を定義します。
たとえば「Winnetka」をジオコードすると、たいていはシカゴの郊外が結果として返されます。
リクエスト:
https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&key=YOUR_API_KEY
レスポンス:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Winnetka",
"short_name" : "Winnetka",
"types" : [ "locality", "political" ]
},
{
"long_name" : "New Trier",
"short_name" : "New Trier",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Cook County",
"short_name" : "Cook County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Illinois",
"short_name" : "IL",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Winnetka, IL, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 42.1282269,
"lng" : -87.7108162
},
"southwest" : {
"lat" : 42.0886089,
"lng" : -87.7708629
}
},
"location" : {
"lat" : 42.10808340000001,
"lng" : -87.735895
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 42.1282269,
"lng" : -87.7108162
},
"southwest" : {
"lat" : 42.0886089,
"lng" : -87.7708629
}
}
},
"place_id" : "ChIJW8Va5TnED4gRY91Ng47qy3Q",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
ここで、bounds 引数を追加して、ロサンゼルスのサン フェルナンド バレーを含むように境界ボックスを定義すると、そこの「Winnetka」という地域がこのジオコーディングの結果として返されるようになります。
リクエスト:
https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&key=YOUR_API_KEY
レスポンス:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Winnetka",
"short_name" : "Winnetka",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Los Angeles",
"short_name" : "LA",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Los Angeles County",
"short_name" : "Los Angeles 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" ]
}
],
"formatted_address" : "Winnetka, Los Angeles, CA, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 34.2355209,
"lng" : -118.5534191
},
"southwest" : {
"lat" : 34.1854649,
"lng" : -118.588536
}
},
"location" : {
"lat" : 34.2048586,
"lng" : -118.5739621
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 34.2355209,
"lng" : -118.5534191
},
"southwest" : {
"lat" : 34.1854649,
"lng" : -118.588536
}
}
},
"place_id" : "ChIJ0fd4S_KbwoAR2hRDrsr3HmQ",
"types" : [ "neighborhood", "political" ]
}
],
"status" : "OK"
}
地域のバイアス
ジオコーディングのレスポンスで Google Maps Geocoding API が返す住所の結果は、リクエストを送信した地域(通常は国)によって変わります。たとえば、同じ「San Francisco」を検索しても、米国から送信した場合とスペインから送信した場合で返される結果が異なる場合があります。
region パラメータを使うと、Google Maps Geocoding API が特定の地域を優先して結果を返すようバイアスをかけることができます。このパラメータには、ccTLD(国コード トップ レベル ドメイン)で引数を渡して地域のバイアスを指定します。ccTLD コードのほとんどは ISO 3166-1 コードと同一ですが、いくつか注意が必要な例外もあります。たとえば、英国の ccTLD は「uk」(.co.uk)ですが、その ISO 3166-1 コードは「gb」(厳密には「United Kingdom of Great Britain and Northern Ireland」のエンティティ)です。
ジオコーディングの結果は、Google マップのメイン アプリケーションを起動している公式のドメインごとに異なる可能性があります。バイアスをかけると特定のドメインの結果だけが優先されますが、そのドメイン外により関連性の高いデータがある場合は、それらが結果に含まれることもあります。
たとえば、Google Maps Geocoding API のデフォルト ドメインは米国に設定されているため、「Toledo」をジオコーディングすると次の結果が得られます。リクエスト:
https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&key=YOUR_API_KEY
レスポンス:
{
"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.4547053
},
"southwest" : {
"lat" : 41.580266,
"lng" : -83.69423700000002
}
},
"location" : {
"lat" : 41.6639383,
"lng" : -83.55521200000001
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 41.732844,
"lng" : -83.4547053
},
"southwest" : {
"lat" : 41.580266,
"lng" : -83.69423700000002
}
}
},
"place_id" : "ChIJeU4e_C2HO4gRRcM6RZ_IPHw",
"types" : [ "locality", "political" ]
},
{
"address_components" : [
{
"long_name" : "Toledo",
"short_name" : "Toledo",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Lincoln County",
"short_name" : "Lincoln County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Oregon",
"short_name" : "OR",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Toledo, OR, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 44.6383219,
"lng" : -123.9129439
},
"southwest" : {
"lat" : 44.598776,
"lng" : -123.954585
}
},
"location" : {
"lat" : 44.621507,
"lng" : -123.9384478
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 44.6383219,
"lng" : -123.9129439
},
"southwest" : {
"lat" : 44.598776,
"lng" : -123.954585
}
}
},
"place_id" : "ChIJmcjO1AjUwVQRDsRYrfWvzyo",
"types" : [ "locality", "political" ]
},
{
"address_components" : [
{
"long_name" : "Toledo",
"short_name" : "Toledo",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Toledo",
"short_name" : "Toledo",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Tama County",
"short_name" : "Tama County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Iowa",
"short_name" : "IA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Toledo, IA, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 42.00388600000001,
"lng" : -92.56695289999999
},
"southwest" : {
"lat" : 41.9784431,
"lng" : -92.60007299999999
}
},
"location" : {
"lat" : 41.9972134,
"lng" : -92.5835266
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 42.00388600000001,
"lng" : -92.56695289999999
},
"southwest" : {
"lat" : 41.9784431,
"lng" : -92.60007299999999
}
}
},
"place_id" : "ChIJvwoVNEOE74cR3oQfIk7m6fU",
"types" : [ "locality", "political" ]
},
{
"address_components" : [
{
"long_name" : "Toledo",
"short_name" : "Toledo",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Lewis County",
"short_name" : "Lewis County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Washington",
"short_name" : "WA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "98591",
"short_name" : "98591",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Toledo, WA 98591, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 46.44799889999999,
"lng" : -122.8419249
},
"southwest" : {
"lat" : 46.43233009999999,
"lng" : -122.85575
}
},
"location" : {
"lat" : 46.4398305,
"lng" : -122.846783
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 46.44799889999999,
"lng" : -122.8419249
},
"southwest" : {
"lat" : 46.43233009999999,
"lng" : -122.85575
}
}
},
"place_id" : "ChIJPw9m6cb4k1QRyA5L3wI_dRM",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
region=es(スペイン)を指定した「Toledo」のジオコーディング リクエストは、スペインの都市を返します。リクエスト:
https://maps.googleapis.com/maps/api/geocode/json?address=Toledo®ion=es&key=YOUR_API_KEY
レスポンス:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Toledo",
"short_name" : "Toledo",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Toledo",
"short_name" : "Toledo",
"types" : [ "administrative_area_level_4", "political" ]
},
{
"long_name" : "Vega de Toledo",
"short_name" : "Vega de Toledo",
"types" : [ "administrative_area_level_3", "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, Toledo, Spain",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 39.88605099999999,
"lng" : -3.9192423
},
"southwest" : {
"lat" : 39.8383676,
"lng" : -4.0629256
}
},
"location" : {
"lat" : 39.8628316,
"lng" : -4.027323099999999
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 39.88605099999999,
"lng" : -3.9192423
},
"southwest" : {
"lat" : 39.8383676,
"lng" : -4.0629256
}
}
},
"place_id" : "ChIJ8f21C60Lag0R_q11auhbf8Y",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
コンポーネントのフィルタリング
ジオコーディングのレスポンスにおいて、Google Maps Geocoding API が返す結果を特定のエリアに制限することができます。この制限は、components フィルタで指定します。このフィルタは、パイプ(|)で区切った component:value のペアのリストです。結果として返されるのは、すべてのフィルタに適合したものだけです。フィルタの値は、スペル訂正や部分一致など、他のジオコーディングのリクエストと同じメソッドをサポートしています。ジオコーディングの結果がコンポーネント フィルタと部分一致する場合、レスポンスに partial_match フィールドが含まれます。
フィルタリング可能な components には、次のものがあります。
route: ルートの正式名か省略名に一致します。
locality:localityタイプにもsublocalityタイプにも一致します。administrative_area: すべてのadministrative_areaレベルに一致します。postal_code:postal_codeとpostal_code_prefixに一致します。country: 国名または 2 文字の ISO 3166-1 国コードに一致します。注: Google は ISO 標準に従って国を定義しているため、対応する ISO の国コードを使用するとフィルタリングが最適に動作します。
注: 各住所コンポーネントは、address パラメータかコンポーネント フィルタのどちらかのみに指定できます。両方には指定できません。両方に指定すると、ZERO_RESULTS となります。
components=country:ES を指定して「Santa Cruz」のジオコーディングを行うと、スペイン領カナリア諸島のサンタ・クルス・デ・テネリフェ島が返されます。リクエスト:
https://maps.googleapis.com/maps/api/geocode/json?address=santa+cruz&components=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" : "Santa Cruz de Tenerife",
"types" : [ "administrative_area_level_4", "political" ]
},
{
"long_name" : "Anaga",
"short_name" : "Anaga",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Santa Cruz de Tenerife",
"short_name" : "TF",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Canarias",
"short_name" : "CN",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Spain",
"short_name" : "ES",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Santa Cruz de Tenerife, 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"
}
コンポーネント フィルタを含む照会を行うと、フィルタに一致するジオコーディング結果のみを返します。一致する結果がない場合、ジオコーダはフィルタ自身に一致する結果を返します。リクエスト:
https://maps.googleapis.com/maps/api/geocode/json?address=Torun&components=administrative_area:TX|country:US&key=YOUR_API_KEY
レスポンス:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Texas",
"short_name" : "TX",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Texas, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 36.5007041,
"lng" : -93.5080389
},
"southwest" : {
"lat" : 25.8371638,
"lng" : -106.6456461
}
},
"location" : {
"lat" : 31.9685988,
"lng" : -99.9018131
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 36.5015087,
"lng" : -93.5080389
},
"southwest" : {
"lat" : 25.8371638,
"lng" : -106.6456461
}
}
},
"partial_match" : true,
"place_id" : "ChIJSTKCCzZwQIYRPN4IGI8c6xY",
"types" : [ "administrative_area_level_1", "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 パラメータなしで照会できますが、値のないコンポーネントは指定できません。リクエスト:
https://maps.googleapis.com/maps/api/geocode/json?components=route:Annegatan|administrative_area:Helsinki|country:Finland&key=YOUR_API_KEY
レスポンス:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Annegatan",
"short_name" : "Annegatan",
"types" : [ "route" ]
},
{
"long_name" : "Helsingfors",
"short_name" : "Helsingfors",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Finland",
"short_name" : "FI",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Annegatan, Helsingfors, Finland",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 60.168997,
"lng" : 24.9427959
},
"southwest" : {
"lat" : 60.1626627,
"lng" : 24.934
}
},
"location" : {
"lat" : 60.1657808,
"lng" : 24.938451
},
"location_type" : "GEOMETRIC_CENTER",
"viewport" : {
"northeast" : {
"lat" : 60.168997,
"lng" : 24.9427959
},
"southwest" : {
"lat" : 60.1626627,
"lng" : 24.934
}
}
},
"place_id" : "ChIJARW7C8sLkkYRgl4je4-RPUM",
"types" : [ "route" ]
},
{
"address_components" : [
{
"long_name" : "Annevägen",
"short_name" : "Annevägen",
"types" : [ "route" ]
},
{
"long_name" : "Vanda",
"short_name" : "Vanda",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Finland",
"short_name" : "FI",
"types" : [ "country", "political" ]
},
{
"long_name" : "01420",
"short_name" : "01420",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Annevägen, 01420 Vanda, Finland",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 60.3282738,
"lng" : 25.1162163
},
"southwest" : {
"lat" : 60.32564009999999,
"lng" : 25.1076474
}
},
"location" : {
"lat" : 60.3271069,
"lng" : 25.1118046
},
"location_type" : "GEOMETRIC_CENTER",
"viewport" : {
"northeast" : {
"lat" : 60.3283059302915,
"lng" : 25.1162163
},
"southwest" : {
"lat" : 60.32560796970849,
"lng" : 25.1076474
}
}
},
"partial_match" : true,
"place_id" : "ChIJ3UJCNt4GkkYR8-_a8Dh25kA",
"types" : [ "route" ]
},
{
"address_components" : [
{
"long_name" : "Anneplatsen",
"short_name" : "Anneplatsen",
"types" : [ "route" ]
},
{
"long_name" : "Helsingfors",
"short_name" : "Helsingfors",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Finland",
"short_name" : "FI",
"types" : [ "country", "political" ]
},
{
"long_name" : "00100",
"short_name" : "00100",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Anneplatsen, 00100 Helsingfors, Finland",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 60.1695664,
"lng" : 24.9357125
},
"southwest" : {
"lat" : 60.168997,
"lng" : 24.934
}
},
"location" : {
"lat" : 60.1692741,
"lng" : 24.9348016
},
"location_type" : "GEOMETRIC_CENTER",
"viewport" : {
"northeast" : {
"lat" : 60.17063068029151,
"lng" : 24.9362052302915
},
"southwest" : {
"lat" : 60.1679327197085,
"lng" : 24.9335072697085
}
}
},
"partial_match" : true,
"place_id" : "ChIJeahMqswLkkYR2vQfG1nHI3M",
"types" : [ "route" ]
}
],
"status" : "OK"
}
リバース ジオコーディング(住所検索)
一般的にジオコーディングとは、人間が読み取れる住所をマップ上の地点に変換することを意味します。リバース ジオコーディングはその反対で、地図上の地点を人間が読み取れる住所に変換するプロセスを指します。
リバース ジオコーディング リクエストの必須パラメータ:
latlng: 緯度と経度の値。その場所に最も近い人間が読み取れる住所を取得します。
または
place_id: プレイス ID。その場所の人間が読み取れる住所を取得します。プレイス ID は、Google の他の API で使用できるユニークな識別子です。たとえば、Google Maps Roads API から返されるplaceIdを使用してスナップ ポイントの住所を取得できます。プレイス ID の詳細については、プレイス ID の概要をご覧ください。プレイス ID は、リクエストに API キーまたは Google Maps APIs Premium Plan クライアント ID が含まれている場合にのみ指定できます。key: アプリケーションの API キーです。このキーを使ってアプリケーションを識別し、割り当て量を管理します。詳細については、キーの取得をご覧ください。注: Google Maps APIs Premium Plan ユーザーは、リバース Geocoding リクエストで、API キー、または有効なクライアント ID とデジタル署名を使用できます。詳細については、Premium Plan ユーザーの認証パラメータをご確認ください。
リバース ジオコーディング リクエストの省略可能なパラメータ:
次に、リバース ジオコーディング リクエストに含めることができる省略可能なパラメータを示します。
language: 結果を返すときの言語を示します。- サポートされる言語のリストをご覧ください。サポートされる言語は頻繁に更新されるため、このリストがすべてのサポート言語を網羅しているとは限りません。
languageが指定されていない場合、ジオコーダは、Accept-Languageヘッダーで指定された優先言語か、リクエストの送信元ドメインの言語の使用を試みます。- ジオコーダは、できるだけユーザーとローカルの両言語で判読可能な番地を返します。そのために、ジオコーダはローカル言語で番地を返し、優先言語も考慮して、必要に応じてユーザーが理解できるスクリプトに書き直します。それ以外の住所はすべて、優先言語で返されます。住所コンポーネントはすべて、最初のコンポーネントで選択した言語と同じ言語で返されます。
- 優先言語で名前を表示できない場合、ジオコーダは最も近い言語を使用します。
result_type: 住所タイプです。1 つ以上の値をパイプ(|)で区切ります。country(国)、street_address(番地)、postal_code(郵便番号)などを指定できます。利用可能なすべての値は、このページの住所タイプをご覧ください。値を指定すると、指定したタイプの結果のみが返されます。複数のタイプを指定すると、いずれかのタイプに一致するすべての住所が返されます。注: このパラメータは、API キーまたはクライアント ID を含むリクエストのみで利用できます。location_type: 位置タイプです。1 つ以上の値をパイプ(|)で区切ります。値を指定すると、指定したタイプの結果のみが返されます。複数のタイプを指定すると、いずれかのタイプに一致するすべての住所が返されます。注: このパラメータは、API キーまたはクライアント ID を含むリクエストのみで利用できます。サポートされる値は次のとおりです。ROOFTOP: 番地までの精度で位置情報が登録されている住所のみを返します。RANGE_INTERPOLATED: (交差点などの)正確な 2 地点間で補間された近似値(通常は道路上)を反映している結果のみを返します。補間された範囲とは、一般的に番地に対してルーフトップ ジオコーディングが使用できないことを示します。GEOMETRIC_CENTER: ポリライン(道路など)やポリゴン(地域)などの幾何学的な中心である結果のみを返します。APPROXIMATE: 近似値のみを返します。
result_type と location_type の両方の制限を指定した場合、result_type と location_type の両方の制限に当てはまる結果のみが返されます。
緯度と経度のリバース ジオコーディング
次の照会には、「Brooklyn」にある場所の緯度と経度の値が含まれています。
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
注: 緯度と経度の値を latlng パラメータに渡す際に、間にスペースを入れないようにしてください。
上記の照会を行うと、次の結果が返されます。
{
"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 results[] ...
リバース ジオコーダが複数の結果を返している点に注意してください。formatted_address の結果には、郵便の宛て先となる住所だけでなく、その場所の地理的な名称も含まれます。たとえば、シカゴ市のある地点のジオコードを行うと、ジオコードされる地点は国(米国)、州(イリノイ)、都市(シカゴ)、番地などで示されます。ジオコーダは、これらをすべて「住所」として扱います。また、リバース ジオコーダは、これらをすべて有効な結果として返します。
リバース ジオコーダによる検索では、行政上のエンティティ(国、州、都市および周辺地域)、番地、郵便番号を照合します。
上記の照会を行った際に返される formatted_address の値の完全なリストを次に示します。
"formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA", "formatted_address" : "Grand St/Bedford Av, Brooklyn, NY 11211, USA", "formatted_address" : "Grand St/Bedford Av, Brooklyn, NY 11249, USA", "formatted_address" : "Bedford Av/Grand St, Brooklyn, NY 11211, USA", "formatted_address" : "Brooklyn, NY 11211, USA", "formatted_address" : "Williamsburg, Brooklyn, NY, USA", "formatted_address" : "Brooklyn, NY, USA", "formatted_address" : "New York, NY, USA", "formatted_address" : "New York, USA", "formatted_address" : "United States",
一般的に、結果は住所を具体性の高い順番で返されます。一般的には最も正確な住所が最も重要な結果で、それはこのケースにも当てはまります。返される住所のタイプは、最も具体的な番地から、周辺地域、都市、郡、州などの大規模な行政区画まで多岐にわたります。特定の住所タイプと照合したい場合は、次のタイプによる結果の制限のセクションをご覧ください。
注: リバース ジオコーディングは推定値です。ジオコーダは許容範囲内で、できる限り近い住所の場所を検索しようとします。一致する結果が見つからない場合、ジオコーダは 0 件の結果を返します。
プレイス ID のリバース ジオコーディング
次の紹介には、「Brooklyn」にあるプレイスのプレイス ID を照会しています。
https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJd8BlQ2BZwokRAFUEcm_qrcA&key=YOUR_API_KEY
上記の照会を行うと、次の結果が返されます。
{
"results" : [
{
"address_components" : [
{
"long_name" : "277",
"short_name" : "277",
"types" : [ "street_number" ]
},
{
"long_name" : "Bedford Ave",
"short_name" : "Bedford Ave",
"types" : [ "route" ]
},
{
"long_name" : "Williamsburg",
"short_name" : "Williamsburg",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Brooklyn",
"short_name" : "Brooklyn",
"types" : [ "sublocality_level_1", "sublocality", "political" ]
},
{
"long_name" : "Kings County",
"short_name" : "Kings County",
"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 Ave, 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
}
}
},
"partial_match" : true,
"place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
タイプによるリバース ジオコーディングの制限
次に示すのは、位置タイプが 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 キーまたはクライアント ID が含まれていない可能性があります。INVALID_REQUEST: 通常次のどちらかを示します。- 照会条件(
address、components、latlngのいずれか)がありません。 - 無効な
result_typeまたはlocation_typeが指定されています。
- 照会条件(
UNKNOWN_ERROR: サーバー エラーでリクエストが処理できなかったことを示します。再度リクエストすると、成功する可能性があります。
sensor パラメータ
Google Maps API では、以前はユーザーの位置情報の検出にアプリケーションでセンサーを使用するかどうかを示すため sensor パラメータを含める必要がありましたが、このパラメータは必要なくなりました。
