Pythonで住所から緯度経度を取得する方法
PythonでYahoo!ジオコーダAPIを使い、住所から緯度と経度を取得する方法です。
このAPIはxmlを返すので、これを辞書型に変換するのにxmltodictを使います。
xmltodict
xmltodictはライブラリです。
Macの場合、次のようにしてインストールします。
$ pip install xmltodict
コード
住所を緯度経度に変換する関数です。店の住所を想定しているので「shop_address」としています。
{自分のappid}には自分のアプリケーションIDをセットします。
def fetch_lonlat(shop_address):
appid = {自分のappid}
base_url = "https://map.yahooapis.jp/geocode/V1/geoCoder?appid={appid}&query={shop_address}"
req_url = base_url.replace("{appid}", appid)
req_url = req_url.replace("{shop_address}", shop_address)
r = requests.get(req_url)
xml = r.content
this_dict = xmltodict.parse(xml)
lonlat = this_dict["YDF"]["Feature"]["Geometry"]["Coordinates"]
lon, lat = lonlat.split(",")
return {"lon" : lon, "lat" : lat}
appid = {自分のappid}
base_url = "https://map.yahooapis.jp/geocode/V1/geoCoder?appid={appid}&query={shop_address}"
req_url = base_url.replace("{appid}", appid)
req_url = req_url.replace("{shop_address}", shop_address)
r = requests.get(req_url)
xml = r.content
this_dict = xmltodict.parse(xml)
lonlat = this_dict["YDF"]["Feature"]["Geometry"]["Coordinates"]
lon, lat = lonlat.split(",")
return {"lon" : lon, "lat" : lat}
使用例
shop_address = "東京都千代田区永田町1-7-1"
lonlat = fetch_lonlat(shop_address)
print(lonlat)
lonlat = fetch_lonlat(shop_address)
print(lonlat)
結果は次のようになります。
{'lon': '139.74486552', 'lat': '35.67589293'}
[ 2021年3月28日 | カテゴリー: Python, デジタル | タグ: 住所 ]
« 「モンスターハンターライズ」を購入 | ギターで長女を殴り現行犯逮捕 »
コメントを残す