見出し画像

住所を緯度経度に変換する方法(Yahoo!ジオコーダAPI)

住所から緯度経度に変換(ジオコーディング)するやり方の一つとして無料APIを利用する方法を紹介。APIは基本的に商用利用外では無料で使え、1日5万アクセスまで可能なので大抵の場合は物足りそうです。

APIの利用登録

Yahoo!ジオコーダAPI - Yahoo!デベロッパーネットワークがAPIに関するサイトになります。Yahoo! JAPAN ID(持ってなかったら無料で取得可能)でログインし、APIの利用登録の手続きを進めてください(すぐ完了します)。完了したら、Client ID(英数字の長い文字列)を控えておいてください。

コーディング

Pythonのコードは以下の通りです。

import requests

payload = {
    "appid": "取得したClient ID",
    "output":"json",
    "query":"東京都千代田区丸の内1-1-1"
    }

url = "https://map.yahooapis.jp/geocode/V1/geoCoder"
r = requests.get(url, params=payload)
res = r.json()

print(res["Feature"][0]["Name"]) #名称
print(res["Feature"][0]["Geometry"]["Coordinates"]) #緯度経度

appid             : アプリケーションID
querystring    : 緯度経度変換したい住所
outputstring  : xml かjson を選択
page              : ページ数の指定

appidに取得したClient ID、queryに住所を入れれば、最終行で緯度経度が取得できます。

ちなみに余談ですが、queryが曖昧な場所名(例えば東京とか)にした場合は、複数のResponse(東京都新宿区, 東京都港区, …)が返ってくることがあります。その結果を取得したい場合は["Feature"][n]…の部分を調整ください(n:0~9)。なお11件目以降の情報はpageのパラメータを活用ください。例えば13件目であればpage=2 の["Feature"][2]… になります。


この記事が気に入ったらサポートをしてみませんか?