Pythonにてオープンデータをダウンロードし、地図上に表示する。

Pythonにてオープンデータをダウンロードし、地図上に表示する。

オープンデータを読み込んで、地図上に表示する。

今回は福井県鯖江市が公表しているオープンデータを使ってみます。 「消火栓の位置データ」と「店舗データ」を使い、地図上に表示してみましょう。 「http://data.city.sabae.lg.jp」


右上の「オープンデータ」をクリックします。


目当ての「消火栓の位置データ」と「店舗データ」を見つけ「csv」をクリックしてダウンロードします。

ファイルの中身はこんな感じです。

データや項目を調べてみましょう

消火栓について

import pandas as pd

df = pd.read_csv(“200.csv”,encoding=”shift-jis”)
print(len(df))
print(df.columns.values)


店舗について

import pandas as pd

df = pd.read_csv(“898.csv”)
print(len(df))
print(df.columns.values)

外部ライブラリ、foliumをインストール

folium(フォリウム)は地図を表示したり、地図上にマーカーをつけたりできる外部ライブラリです。

Windowsにインストールするときは、コマンドプロンプトを使います。

「pip install folium」

macOSにインストールするときは、ターミナルを使います。

「pip3 install folium」

地図を表示する

import folium
m = folium.Map(location=[35.6895 ,139.6917],zoom_start=12)
m.save(“tokyo.html”)

解説

import folium地図を表示したり、地図上にマーカーを付けたりできる外部ライブラリ、foliumをimportします。
m = folium.Map(location=[35.6895 ,139.6917],zoom_start=12) 指定した地点の地図は、m = folium,Map(location[緯度、経度], zoom_start=ズーム倍率)で指定します。
m.save(“tokyo.html”)m.save(“ファイル名.html”)でHTMLを一旦作ります。

デスクトップにtokyo.htmlが作られました。

これをブラウザで開くと・・・東京都の地図が出ました。

地図上にマーカーをつけてみよう

import folium
m = folium.Map(location=[35.6895 ,139.6917],zoom_start=12)
folium.Marker([35.6895 ,139.6917]).add_to(m)
m.save(“tokyo_mark.html”)

解説

import folium地図を表示したり、地図上にマーカーを付けたりできる外部ライブラリ、foliumをimportします。
m = folium.Map(location=[35.6895 ,139.6917],zoom_start=12) 指定した地点の地図は、m = folium,Map(location[緯度、経度], zoom_start=ズーム倍率)で指定します。
folium.Marker([35.6895 ,139.6917]).add_to(m)マーカーを追加するには、folium.Marker([緯度,経度]).add_to(m)
m.save(“tokyo_mark.html”)m.save(“ファイル名.html”)でHTMLを作ります。

マーカーが付きましたね。

この要領で鯖江市の消火栓の位置をマーカーでつけてみましょう。

import pandas as pd
import folium

df = pd.read_csv(“200.csv”,encoding=”shift-jis”)
hydrant = df[[“緯度”,”経度”]].values
m = folium.Map(location=[35.942957 ,136.198863],zoom_start=15)

for data in hydrant:
folium.Marker([data[0] ,data[1]]).add_to(m)

m.save(“sabae.html”)

解説

import pandas as pd表データを読み込み、様々な作業を行えるpandasライブラリをimportします。省略してpdとします。
import folium地図を表示したり、地図上にマーカーを付けたりできる外部ライブラリ、foliumをimportします。
df = pd.read_csv(“200.csv”,encoding=”shift-jis”)ファイルを読み込み、変数dfに代入します。
hydrant = df[[“緯度”,”経度”]].values消火栓のある地点(緯度、経度)をリスト化します。変数hydrantに代入します。
m = folium.Map(location=[35.942957 ,136.198863],zoom_start=15) 指定した地点の地図は、m = folium,Map(location[緯度、経度], zoom_start=ズーム倍率)で指定します。
for data in hydrant:配列形式で呼び出します。
folium.Marker([data[0] ,data[1]]).add_to(m)マーカーを追加するには、folium.Marker([緯度,経度]).add_to(m)と指定します。リスト化したのでdata[0],data[1]とします。
m.save(“sabae.html”)m.save(“ファイル名.html”)でHTMLを作ります。

たくさんのマーカーが付きましたね。

地図上に店舗名を表示してみよう(tooltipを使って)

今度はもう一つのダウンロードした店舗データ「898.csv」ファイルを使用しましょう。
import pandas as pd
import folium

df = pd.read_csv(“898.csv”)
shop = df[[“緯度”,”経度”,”店舗名(日本語)”]].values

m = folium.Map(location=[35.942957 ,136.198863],zoom_start=15)
for data in shop:
folium.Marker([data[0] ,data[1]], tooltip=data[2]).add_to(m)
m.save(“stop.html”)

解説

import pandas as pd表データを読み込み、様々な作業を行えるpandasライブラリをimportします。省略してpdとします。
import folium地図を表示したり、地図上にマーカーを付けたりできる外部ライブラリ、foliumをimportします。
df = pd.read_csv(“898.csv”)ファイルを読み込み、変数dfに代入します。
shop = df[[“緯度”,”経度”,”店舗名(日本語)”]].values店舗のある地点(緯度、経度)と店舗名をリスト化します。変数shopに代入します。
m = folium.Map(location=[35.942957 ,136.198863],zoom_start=15) 指定した地点の地図は、m = folium,Map(location[緯度、経度], zoom_start=ズーム倍率)で指定します。
for data in shop:配列形式で呼び出します。
folium.Marker([data[0] ,data[1]], tooltip=data[2]).add_to(m)マーカーを追加し、ツールチップ付きにするには、folium.Marker([緯度,経度], tooltip=”文字列”).add_to(m)と指定します。リスト化したのでdata[0],data[1],data[2]とします。
m.save(“shop.html”)m.save(“ファイル名.html”)でHTMLを作ります。

マーカーにマウスカーソルを合わせると、その店舗名がツールチップで表示されました。わかりやすいですね。

*尚、ここではバージョン「Python 3.10.1」を使用しています。

この本から引用、参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。