住所を緯度経度に変換する方法(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]… になります。