通常、「ジオコーディング」という用語は、人が読める住所を地図上の場所に変換することを意味します。一方、地図上の場所を人間が読める住所に変換するプロセスをリバース ジオコーディングと呼びます。
リバース ジオコーディング リクエスト
必須パラメータ
latlng
- 人が読める形式の最も近い住所を取得する場所を指定する緯度と経度の座標。key
- アプリケーションの API キー。このキーでアプリケーションを識別し、割り当てを管理します。キーの取得方法を確認してください。
省略可能なパラメータ
リバース ジオコーディング リクエストに含めることができるオプションのパラメータは次のとおりです。
language
- 結果を返す言語。- サポートされている言語の一覧をご覧ください。サポートされている言語は Google によって頻繁に更新されているため、このリストがすべての言語を網羅しているとは限りません。
language
が指定されていない場合、ジオコーダは、Accept-Language
ヘッダーで指定された優先言語、またはリクエストの送信元ドメインの母国語を使用します。- ジオコーダは、ユーザーと地域住民の両方が判読できる番地を提供しようと努めます。この目標を達成するため、ローカル言語で番地を返します。優先言語に従い、必要に応じてユーザーが判読できるスクリプトに文字変換されます。その他の住所はすべて優先言語で返されます。住所コンポーネントはすべて、最初のコンポーネントから選択された同じ言語で返されます。
- 使用する言語で名前を特定できない場合、ジオコーダは最も近い言語を使用します。
region
- ccTLD(「トップレベル ドメイン」)の 2 文字の値として指定された地域コード。パラメータは、適用される法律に基づいて結果に影響を与えることもあります。result_type
- パイプ(|
)で区切られた 1 つ以上のアドレスタイプのフィルタ。パラメータに複数のアドレスタイプが含まれている場合、API はいずれかのタイプに一致するすべてのアドレスを返します。処理に関する注意事項:result_type
パラメータは、検索を指定された住所タイプに限定restrictしません。result_type
は、検索後フィルタとして機能します。API は指定されたlatlng
に対するすべての結果を取得し、指定された住所タイプに一致しない結果を破棄します。次の値がサポートされています。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_1
かsublocality_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
パラメータは、指定されたロケーション タイプに検索をrestrictしません。location_type
は、検索後フィルタとして機能します。API は指定されたlatlng
に対するすべての結果を取得し、指定されたロケーション タイプと一致しない結果を破棄します。 サポートされる値は次のとおりです。"ROOFTOP"
は、Google が番地まで正確に位置情報を把握している住所のみを返します。"RANGE_INTERPOLATED"
は、交差点などの正確な 2 地点間で補間された近似値(通常は道路上)を反映した住所のみを返します。補間範囲は通常、番地に対してルーフトップ ジオコーディングが利用できないことを示します。"GEOMETRIC_CENTER"
は、ポリライン(道路など)やポリゴン(地域)など、位置の幾何学的な中心のみを返します。"APPROXIMATE"
は、おおよその住所のみを返します。
result_type
フィルタと location_type
フィルタの両方が存在する場合、API は result_type
値と location_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 は、最も詳細な番地から、区域、都市、郡、州などのあまり具体的でない行政区画まで、さまざまなタイプの住所を返します。この場合も、より正確な住所が一般的に最も顕著な結果が得られます。特定の種類の住所と一致させる場合は、タイプ別の結果の制限に関する以下のセクションをご覧ください。そのため、結果間の相対的な位置が変化することがあります。
タイプでフィルタされたリバース ジオコーディング
次の例では、返された住所をフィルタして、ロケーション タイプが 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"
は通常、次のいずれかを示します。- クエリ(
address
、components
、またはlatlng
)がありません。 - 無効な
result_type
またはlocation_type
が指定されました。
- クエリ(
"UNKNOWN_ERROR"
はサーバーエラーでリクエストが処理できなかったことを示します。再度リクエストすると、成功する可能性があります。
リバース ジオコーディングとコード
ジオコーディングのレスポンス内の plus_code
フィールドには、クエリされた緯度と経度を最もよく表す Plus Code が含まれています。また、ほとんどの場合、JSON の結果の配列には plus_code
型を含む完全なジオコーディングの結果と Plus Code を含む住所が含まれます。デコードされた Plus Code からリクエスト ポイントまでの距離は 10 m 未満であることが保証されています。