緯度経度などのデータファイルから,マーカーとイメージポップアップ付きの OpenStreetMap 地図プログラムを生成
緯度経度の入ったデータファイル (CSVファイル形式)と folium を使って、OpenStreetMap 地図プログラムを生成します
先人に感謝
前準備
Python のインストールと必要なPythonライブラリのインストール(Windows上)
- Python のインストール
注:既にPython(バージョン3.12を推奨)がインストール済みの場合は,この手順は不要である.
winget(Windowsパッケージマネージャー)を使用してインストールを行う
- 必要なPythonライブラリのインストール
【関連する外部ページ】
【サイト内の関連ページ】
手順
次のような,緯度経度を含むデータファイルと、画像ファイルを使う(ここでは、緯度経度を含むデータファイルと、画像ファイルをダウンロードして使うことにする)

Python プログラムの実行
- Windows では python (Python ランチャーは py)
- Ubuntu では python3
【サイト内の関連ページ】 Python のまとめ: 別ページ »
- 次の Python プログラムを実行
import os print(os.getcwd())
- 緯度経度を含むデータファイルの準備
- Web ブラウザを開き,次の URL からデータファイルをダウンロード
- 先ほど調べた「カレントディレクトリ」に、このファイルを置く
* 自前で「緯度経度を含むデータファイルの準備」を行うときは、その文字コードを UTF-8 に変換しておくこと
- 画像ファイルの準備
- Web ブラウザを開き,次の URL を開く
- このディレクトリに .zip ファイルがある..zip ファイルをダウンロードして展開(解凍)
これは、複数の画像ファイルが入った .zip ファイルである
- 先ほど調べた「カレントディレクトリ」の下に「photo」というサブディレクトリを作る.
そのディレクトリに画像ファイルを置く
- 確認のため、地図表示だけを行ってみる
import pandas as pd import folium datafile = "hoge.csv" lat, lon = 34.4586, 133.2295 zoom_start = 18 webfile_name = "c.html" m = folium.Map(location=[lat, lon], zoom_start=zoom_start) m.save(webfile_name)
- 先ほど調べた「カレントディレクトリ」に HTML ファイルc.htmlができている
- できたファイル c.html を Web ブラウザで開いてみる.地図が表示されれば OK.
- 次は、データファイルの緯度経度などを使っての表示
import pandas as pd import folium datafile = "hoge.csv" lat, lon = 34.4586, 133.2295 zoom_start = 18 webfile_name = "c2.html" m = folium.Map(location=[lat, lon], zoom_start=zoom_start) X = pd.read_csv(datafile) for index, r in X.iterrows(): p = '<a href="https://maps.google.com/maps?q=&layer=c&cbll=%f, %f&cbp=11,0,0,0,0">%s <br/><img width="60" src="%s"></a>' % (r.lat, r.lon, r.building, r.imfile) folium.Marker([r.lat, r.lon], popup=p).add_to(m) m.save(webfile_name)
- 先ほど調べた「カレントディレクトリ」に c2.html ファイルができるので Web ブラウザで開いてみる.マーカー付きの地図が表示されれば OK.
マーカーをクリックすると、情報が表示される
以上の操作でできたファイルは、こちらで確認できる: c2.html をクリック