Python入門トップページ


Folium を使って地図を描こう

Folium ライブラリを使うと,緯度と経度の情報を与えて,Jupyter Lab や Jupyter Notebook 上で OpenStreetMap を用いた地図を描くことができるようになります.

目次

  1. インストール
  2. 地図を描く
  3. マーカーを配置する
  4. HTML形式で保存する
  5. タイルを変更する

インストール

Folium は Anaconda Prompt などに pip コマンドを入力してインストールします.

(base) C:\Users\Student>pip install folium ⏎
Collecting folium
  Downloading folium-0.14.0-py2.py3-none-any.whl (102 kB)
     |████████████████████████████████| 102 kB 3.3 MB/s
Collecting branca>=0.6.0
  Downloading branca-0.6.0-py3-none-any.whl (24 kB)
Requirement already satisfied: jinja2>=2.9 in c:\users\student\anaconda3\lib\site-packages (from folium) (2.11.3)
Requirement already satisfied: requests in c:\users\student\anaconda3\lib\site-packages (from folium) (2.27.1)
Requirement already satisfied: numpy in c:\users\student\anaconda3\lib\site-packages (from folium) (1.21.5)
Requirement already satisfied: MarkupSafe>=0.23 in c:\users\student\anaconda3\lib\site-packages (from jinja2>=2.9->folium) (2.0.1)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\student\anaconda3\lib\site-packages (from requests->folium) (2021.10.8)
Requirement already satisfied: idna<4,>=2.5 in c:\users\student\anaconda3\lib\site-packages (from requests->folium) (3.3)
Requirement already satisfied: charset-normalizer~=2.0.0 in c:\users\student\anaconda3\lib\site-packages (from requests->folium) (2.0.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\student\anaconda3\lib\site-packages (from requests->folium) (1.26.9)
Installing collected packages: branca, folium
Successfully installed branca-0.6.0 folium-0.14.0

(base) C:\Users\Student>

インストールされたライブラリのバージョンを確認します.

(base) C:\Users\Student>pip list | find "folium" ⏎
folium                        0.14.0

(base) C:\Users\Student>

Jupyter Notebook や Jupyter Lab でも pip コマンドでインストールできます.

インストールpip install folium

目次に戻る

地図を描く

Jupyter Notebook や Jupyter Lab 上で Folium をインポートした後,中心にしたい緯度と経度を指定して地図を描いてみます.なお,zoom_start は 0 から 18 まで指定できます.また,表示した地図の拡大率や中心を自由に操作できることも確認してください.

import folium
m = folium.Map(location=[35.000, 135.000], zoom_start=7)
m
2023-folium-01

OpenStreetMap® is open data, licensed under the Open Data Commons Open Database License (ODbL) by the OpenStreetMap Foundation (OSMF).

目次に戻る

マーカーを配置する

次のようにすると地図上にマーカーを配置することができます.

m = folium.Map(location=[35.000, 135.000], zoom_start=7)
folium.Marker(location=[35.000, 135.000]).add_to(m)
m
2023-folium-02

OpenStreetMap® is open data, licensed under the Open Data Commons Open Database License (ODbL) by the OpenStreetMap Foundation (OSMF).

目次に戻る

HTML形式で保存する

作成した地図は HTML 形式で書き出すことができます.実際に書き出された HTML ファイルはこのようになります(初回の読み込みには時間を要するすることがあります).

HTML 形式で書き出すm.save("map.html")

目次に戻る

タイルを変更する

タイルを指定しなければ OpenStreetMap のタイルが使用されます.

m = folium.Map(location=[35.000, 135.000], zoom_start=15)
m
2023-folium-03

OpenStreetMap® is open data, licensed under the Open Data Commons Open Database License (ODbL) by the OpenStreetMap Foundation (OSMF).

次のようにして標準の OpenStreetMap タイルを指定することも可能です.もちろん上と同じ結果になるはずです.

m = folium.Map(location=[35.000, 135.000], zoom_start=15, tiles="OpenStreetMap")
m
2023-folium-03

OpenStreetMap® is open data, licensed under the Open Data Commons Open Database License (ODbL) by the OpenStreetMap Foundation (OSMF).

Stamen がいくつかのタイルを提供しています.指定するタイルを Stamen Terrain (地形図)に変更します.

m = folium.Map(location=[35.000, 135.000], zoom_start=15, tiles="Stamen Terrain")
m
2023-folium-04

Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL.

指定するタイルを Stamen Toner (白黒)に変更します.

m = folium.Map(location=[35.000, 135.000], zoom_start=15, tiles="Stamen Toner")
m
2023-folium-05

Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL.

ズームを変更して指定するとともに Stamen Watercolor (水彩画風)タイルを指定します.

m = folium.Map(location=[35.000, 135.000], zoom_start=4, tiles="Stamen Watercolor")
m
2023-folium-06

Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.

目次に戻る