写真のexifから緯度・経度を取得して地図上にマークする
写真のexifから緯度・経度を取得する の続きで、写真のexifから取得した緯度・経度を地図上にマークします。モジュールfoliumを使用します。
その際、緯度・経度はそれぞれ小数点で与えるため、度分秒から換算します。
北緯(35度5分32.29秒)→35+5÷60+32.29÷3600
東経(139度4分47.44秒)→139+4÷60+47.44÷3600
環境
- windows10 home
- Anaconda 3/ jupyter notebook 5.6.0
- Python 3.7.0
- folium 0.10.0
準備
foliumをインストールします。Anaconda Promptにてpipインストールします。
pip install folium
スマホで撮影したこちらの写真を使います。撮影場所は静岡県熱海市の港です。
コード
from PIL import Image import folium img = Image.open('atami_cat.jpg') exif = img._getexif() # EXIF情報を得る # idが34853(GPS情報)の場合valueより必要な情報を得る for id,value in exif.items(): if id==34853: N1 = value[2][0][0] N2 = value[2][1][0] N3 = value[2][2][0]/100 E1 = value[4][0][0] E2 = value[4][1][0] E3 = value[4][2][0]/100 latitude = N1+N2/60+N3/3600 #緯度の小数点表示 longitude = E1+E2/60+E3/3600 #経度の小数点表示 photo_map = folium.Map( location=[latitude,longitude], #地図中央の緯度、経度 zoom_start=20) #地図の縮尺 # マーカーを追加 folium.Marker(location=[latitude,longitude], popup='撮影場所').add_to(photo_map) # 地図を保存 photo_map.save('photo_map.html')
実行結果
撮影場所がマークされた地図がhtml形式で保存されます。
以下のサイトを参考にさせていただきました
folium 事始め
け日記>>Python: foliumでJupyter Notebookに地図を描画する