Loading [MathJax]/extensions/tex2jax.js

2024年6月21日金曜日

Pythonで地図を扱う(folium)

foliumを使う

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

 folium.__version__ 

 0.16.0
  1.  #!/usr/bin/env python  
  2. # -*- coding: utf-8 -*-  
  3.   
  4. import folium  
  5. import os  
  6.   
  7. # ①  
  8. mp = folium.Map()  
  9.   
  10. # ② htmlとして保存  
  11. html = "map.html"  
  12. # 使用するwebブラウザ  
  13. browser = "chrome "  
  14.   
  15. # マップをhtmlに保存  
  16. mp.save(html)  
  17.   
  18. # webブラウザで表示  
  19. os.system(browser + html)  
使い方自体はとても簡単で、たった1行でマップが生成出来ます。# ①



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


緯度経度で場所を指定

これだけだとどこを表示したいのか分からないので、多くは緯度経度をして使用します。
  1. #!/usr/bin/env python  
  2. # -*- coding: utf-8 -*-  
  3.   
  4. import folium  
  5. import os  
  6.   
  7. # 緯度経度の指定 (この例では東京駅)  
  8. latlng = [35.682012250347064139.76718125374543]  
  9.   
  10. # ①  
  11. mp = folium.Map(location=latlng, zoom_start=14)  
  12.   
  13. html = "map2.html"  
  14. mp.save(html)  
  15. os.system("chrome " + html)  
緯度経度は、Google Mapから場所を指定して右クリックしたりして取得してください。


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

0 件のコメント:

コメントを投稿

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

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