LoginSignup
7
3

More than 5 years have passed since last update.

foliumで一宮の場所を見る

Posted at

TL;DR;

引っ越しをしたので自分の場所の一宮がよくわからない。初詣に行こうと思う。
せっかくだから全国の場所も確認したかった。それだけです。

環境

Anaconda 64bit Python3

一覧の取得

Wikipediaの諸国一宮一覧を参照しました。

csvへ加工

Google スプレッドシートを利用して適当に加工しました。

国名,社名,所在地
肥後国,阿蘇神社,熊本県阿蘇市
但馬国,粟鹿神社,兵庫県朝来市
安房国,安房神社,千葉県館山市
...

Geocoding

今回はGoogleMaps APIを利用します。

API Keyを先に取得しておきます。下記サイトを参考に取得しました。
https://nendeb.com/276

pythonからGeocoding可能なモジュールがあったので利用しました。

conda install -c conda-forge googlemaps 

コードは下記の通りです。

import csv
import googlemaps

# GoogleMaps API Key
api_key = '***' # 取得したAPI KEYを入力してください。
gmaps = googlemaps.Client(key=api_key)

# read csv
geo_loc = list([['site','lat','lon']])
with open('一宮一覧.csv', 'r', encoding='utf-8') as fp:
    reader = csv.reader(fp)
    header = next(reader)
    for row in reader:
        results = gmaps.geocode(row[1])
        for result in results:
            addr = result['formatted_address']
            location = result['geometry']['location']
            lat = location['lat']
            lng = location['lng']
            geo_loc.append([row[1], lat, lng])

# write csv
with open('geocoding_list.csv', 'w', encoding='utf-8', newline='') as fp:
    writer = csv.writer(fp)
    for line in geo_loc:
        writer.writerow(line)

Mapping

Geocodingの結果を地図に落とし込みます。

conda install -c conda-forge folium 
import folium

m = folium.Map(location=[36.003583, 138.000791],
               zoom_start=7,
               attr='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors')

with open('geocoding_list.csv', 'r', encoding='utf-8') as fp:
    reader = csv.reader(fp)
    header = next(reader)
    for row in reader:
        code = [float(row[1]), float(row[2])]
        folium.Marker(code, popup='<i>{}</i>'.format(row[0])).add_to(m)

m.save('ichinomiya.html')

結果

下記の通りとなりました。
https://porksteak3.github.io/IchinomiyaMap/ichinomiya.html

001.png

おわりに

  • 今回みたいに100以下ならサクッと表示されると思うんだけど1000以上になってくるとさすがに表示が重い
  • Geocoding後の結果を精査してないので誤りがある可能性が高いです
7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3