目次
逆ジオコーディングとは
場所から緯度経度を特定する方法をジオコーディングと言います。
その逆に緯度経度から、その場所の都市名を特定する方法を逆ジオコーディングといいます。
google mapのAPIを使うと可能なんでしょうが下記のように1000件あたり$5かかります。(毎月$200分は無料のようですが、、)
なので、今回は国土地理院のAPIを使って逆ジオコーディングを行っていきます。
国土地理院のAPIで逆ジオコーディングの説明
使い方は非常にシンプルです。下記のURLの後ろのlat,lonの所に緯度経度の値をいれてアクセスします。
ちなみに緯度35.658584 経度139.745431とは東京タワーの場所を示しています。
https://mreversegeocoder.gsi.go.jp/reverse-geocoder/LonLatToAddress?lat=35.658584&lon=139.745431
すると下記のような結果が出てきます。
結果
{'results': {'muniCd': '13103', 'lv01Nm': '芝公園四丁目'}}
それぞれどういう意味かというと、
'muniCd': '13103'
は市町村コードが13103という意味です。市町村コード13103とは東京都港区を示します。
市町村コード一覧は 市町村コード一覧 に記載されています。この一覧では6桁で記載されていますが、6桁目は検査数字なので無視してください。
ちなみに、上2桁は都道府県コードを示し、"13"は東京都を示しています。→ 他の都道府県は都道府県コード一覧で
'lv01Nm': '芝公園四丁目'
そして、後ろで○丁目などのもう少し詳細な住所がわかります。
このAPIでは番地等は流石にわからないようなので、ある程度の場所がわかります。
念のためgoogle mapでこの緯度経度を確認すると、〒105-0011 東京都港区芝公園4丁目2-8 東京タワーと正しい結果がでてますね。
Pythonコードにしてみる
urlなのでwebでも利用することが出来ますが、自動化等も考えてpythonでコーディングしてみます。
今回は簡単に行います。
結果
{'results': {'muniCd': '13103', 'lv01Nm': '芝公園四丁目'}}
参考にさせていただいたサイト
国土地理院情報普及課公式GitHub
イントラネットで地図サービスを使いたい5‐ジオコーダー編2‐
市町村コード一覧
都道府県コード一覧