無料のAPI、geocodingを使ってPythonで住所から緯度経度を取得するまでのメモ
- 出版社/メーカー: Pitown
- 発売日: 2015/05/18
- メディア: アプリ
- この商品を含むブログを見る
geocodingという無料のジオコーディングapiサービスがある
Geocoding API - 住所から緯度経度を検索
と、いうことでPythonで扱うときのコードを検証してみた。今回は住所から緯度経度を取得するまでのメモである。
#Webから値を引っ張ってくるので例によってrequestsを利用する >>>import requests >>>full_adress = "東京都新宿区西新宿2丁目8−1" #東京都庁の住所である >>>url = 'http://www.geocoding.jp/api/' >>>payload = {'q': full_adress} >>>result = requests.get(url, params=payload) >>>result.text #以下のようなXMLが返ってくる。 '<?xml version="1.0" encoding="UTF-8" ?>\n<result>\n<version>1.2</version>\n<address>東京都新宿区西新宿2丁目8−1</address>\n<coordinate>\n<lat>35.689185</lat>\n<lng>139.691648</lng>\n<lat_dms>35,41,21.065</lat_dms>\n<lng_dms>139,41,29.933</lng_dms>\n</coordinate>\n<open_location_code>8Q7XMMQR+MM</open_location_code>\n<url>http://www.geocoding.jp/?q=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%96%B0%E5%AE%BF%E5%8C%BA%E8%A5%BF%E6%96%B0%E5%AE%BF%EF%BC%92%E4%B8%81%E7%9B%AE%EF%BC%98%E2%88%92%EF%BC%91</url>\n<needs_to_verify>no</needs_to_verify>\n<google_maps>東京都新宿区西新宿2丁目8−1</google_maps>\n</result>\n' #上記のXMLを辞書に直すことで各値を参照できるようにする。 >>>import xmltodict #ない場合はpip install xmltodictすると入手できます >>>resultdict = xmltodict.parse(result.text) >>>resultdict OrderedDict([('result', OrderedDict([('version', '1.2'), ('address', '東京都新宿区西新宿2丁目8−1'), ('coordinate', OrderedDict([('lat', '35.689185'), ('lng', '139.691648'), ('lat_dms', '35,41,21.065'), ('lng_dms', '139,41,29.933')])), ('open_location_code', '8Q7XMMQR+MM'), ('url', 'http://www.geocoding.jp/?q=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%96%B0%E5%AE%BF%E5%8C%BA%E8%A5%BF%E6%96%B0%E5%AE%BF%EF%BC%92%E4%B8%81%E7%9B%AE%EF%BC%98%E2%88%92%EF%BC%91'), ('needs_to_verify', 'no'), ('google_maps', '東京都新宿区西新宿2丁目8−1')]))]) >>>print(resultdict["result"]["coordinate"]["lat"]) >>>print(resultdict["result"]["coordinate"]["lng"]) 35.689185 #緯度が求まった 139.691648 #経度が求まった
お気軽に押していただければ励みになります^^