![見出し画像](https://assets.st-note.com/production/uploads/images/100002212/rectangle_large_type_2_73fdde154a5896a81c36a2866d543117.png?width=800)
Photo by
soyo37
foriumとshpファイルを使って地図化
はじめに
前回 geopandasを使って shpファイルを地図化しましたが、成果物が静的なマップだったので、今回は foliumというライブラリを使って動的なマップを作成します。今回も Pythonを使っていきます。
![](https://assets.st-note.com/img/1678519529630-3Ko8IfrdK8.png?width=800)
準備するもの
今回は必要なものは3つです。全部無料です。
①Python利用環境(Anaconda)
こちらからダウンロードして下さい。
②必要ライブラリ(2点)
ⅰ)GeoPandas
GeoPandasを使って地図表示|RYO|note
ⅱ)Folium
condaコマンドかpipコマンドでインストールして下さい。例えばこんな感じのコマンドです。
pip install folium
③日本の境界ポリゴン
こちらからダウンロードして下さい。
サンプルコード
以下がサンプルコードです。Jupyter Notebookで実行してください。
import geopandas as gpd
import folium
# 日本地図を読み込み
japan = gpd.GeoDataFrame.from_file("sample/japan_ver84.shp")
# 地図を作成
m = folium.Map(location=[35.7, 139.7], tiles="https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png",attr='国土地理院', zoom_start=6)
# 東京都を抽出
ken = japan[japan["KEN"]=="東京都"]
# shpファイルをGeoJSON化
gjson = ken.to_json()
# GeoJSONをマップに追加
folium.features.GeoJson(gjson, name="東京都").add_to(m)
# 地図を表示
m
ざっくりコードを解説すると、FoliumはLeafletを使って地図を表示するため、バイナリファイルであるshpは読み込むことができません。したがってshpファイルを加工する必要があります。(今回はGeoJSON形式に変換)
・まずはshpファイルをGeoPandasで読み込み
・shpファイルは全国分のデータにつき、東京都だけを抽出
・抽出データをGeoJSON化
・GeoJSON化したファイルをマップに追加
の流れになります。
この記事が気に入ったらサポートをしてみませんか?