0
0

More than 3 years have passed since last update.

【初心者向け】10行以内のスクリプト(8.foliumで地図のプロット【2】

Last updated at Posted at 2020-05-08

【初心者向け】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から地図をプロットするコードの例

jupyter

#!/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')

ginza_map.png

現状、一番シンプルなマーカーマーカーですが、もう少し研究すると様々な情報も発信が出来る可能性がありそうです。
因みにこの画像は、画面キャプチャーですが、実際はプロットされた場所から移動したり拡大する事も可能です。

以上、8.foliumで地図のプロット【2】でした。

0
0
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
0
0