【初心者向け】10行以内のスクリプト(8.foliumで地図のプロット【2】)
pythonで色々なライブラリを使えば、「少ないコードでもちょっとした事が出来て、少なければ5行程でもちょっとしたスクリプトが作れ、便利だな。」と思ったので、pythonやその他、コマンドを羅列しただけのものも出てくるかも知れませんが、10行程のスクリプトを不定期で投稿してみようと思います。
第8回として、以前、「foliumで銀座周辺の地図をマーカー付きで3ヶ所プロットするスクリプトを投稿したのですが、事前に場所と緯度・経度をcsvで用意してプロットする様にしてみました。
拠点が多い場合は、この方法が可読性・メンテナンス性が良さそうです。
このスクリプトでは、以下3ヶ所をプロットしました。
- 有楽町駅: 位置情報【35.6749187,139.7606366】
- 銀座コリドー街: 位置情報【35.6703699,139.7573871】
- Ginza-SIX: 位置情報【35.6695908,139.7618857】
【環境】
linux: MXLinux19.1
python: 3.7.3
pip3: 20.0.2
pandas: 1.0.3
jupyter-lab: 2.1.1
folium: 0.10.1
1.位置情報を以下の様な構成で、csvファイルを作成
地名,緯度・経度
ginza,latitude,longtude
Yurakucho_station,35.6749187,139.7606366
GinzaCorridorSteet,35.6703699,139.7573871
GinzaSix,35.66695908,139.7618857
・因みに緯度は、「latitude」、経度は「longtude」で、検索するとこの順番で表示されると思います。
例として、コリドー街の場合「緯度: 35.6749187・経度: 139.7573871」となっていました。
このcsvを、pandasで読み込みました。
foliumの最低限の構文は、以下の様なものです。
map = folium.Map(location=[基準地点の緯度,経度], zoom_start = 初期の倍率)
map
コードはjupyterで実行、地図はjupyterにプロットされます。
csvから地図をプロットするコードの例
#!/usr/bin/env python
# coding: utf-8
# 銀座周辺をプロットするコードの例
# infile = './map_location'
#
#1.ライブラリのインポート
import folium
import pandas as pd
#csvファイル読み込み
df = pd.read_csv('./map_location.csv')
#df
plot_location=df
plot_location
# ファイルから読んだ複数地点のプロットとマーカーの処理
map = folium.Map(location=[35.6749187,139.7606366], zoom_start = 14)
for i, r in plot_location.iterrows():
folium.Marker(location=[r['latitude'], r['longtude']], popup=r["ginza"]).add_to(map)
# 3.地図のプロット
map
#df.to_csv('./map_location.csv')
現状、一番シンプルなマーカーマーカーですが、もう少し研究すると様々な情報も発信が出来る可能性がありそうです。
因みにこの画像は、画面キャプチャーですが、実際はプロットされた場所から移動したり拡大する事も可能です。
以上、8.foliumで地図のプロット【2】でした。