2024年6月21日金曜日

Pythonで地図を扱う(folium)

foliumを使う

Pythonで地図を扱う方法は色々ありますが、今回はwebで扱いやすくデータを容易にプロット出来るfoliumを使ってみたいと思います。
 pip install folium 

 folium.__version__ 

 0.16.0
 #!/usr/bin/env python
# -*- coding: utf-8 -*-

import folium
import os

# ①
mp = folium.Map()

# ② htmlとして保存
html = "map.html"
# 使用するwebブラウザ
browser = "chrome "

# マップをhtmlに保存
mp.save(html)

# webブラウザで表示
os.system(browser + html)
使い方自体はとても簡単で、たった1行でマップが生成出来ます。# ①



生成は簡単ですが、htmlを保存してwebブラウザに表示するためのコードが# ②以下のコードです。
foliumオブジェクトのsave関数で保存し、os.systemコマンドでwebブラウザにすぐに表示出来るようにしています。
osライブラリを使うためにimport osをしています。


緯度経度で場所を指定

これだけだとどこを表示したいのか分からないので、多くは緯度経度をして使用します。
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import folium
import os

# 緯度経度の指定 (この例では東京駅)
latlng = [35.682012250347064, 139.76718125374543]

# ①
mp = folium.Map(location=latlng, zoom_start=14)

html = "map2.html"
mp.save(html)
os.system("chrome " + html)
緯度経度は、Google Mapから場所を指定して右クリックしたりして取得してください。


locationは地図の中心にする場所の緯度経度をリストで指定し、zoom_startは倍率を指定します。
これはGoogle Map APIなど他のマップサービスでもよくある指定方法なので、分かりやすいですね。

0 件のコメント:

コメントを投稿

Pythonで地図空間データを扱う⑤

ベースの地図が出来た所で、他のデータを被せてみます。 国土地理院の  500mメッシュ別将来推計人口データ  を使用します。 同じく神奈川県のデータ  500m_mesh_suikei_2018_shape_14.zip をダウンロードします。 ベースの地図データと同じ場所に展開...