12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Streamlitで地図を表示する

Last updated at Posted at 2021-03-18

##Streamlitについて
簡易的なWebアプリが迅速に作成・デプロイできるツールです。
動的なグラフなどを短いコードで作成でき、しかもPythonだけで完結します。最近は徐々に認知度が高くなっており、利用者も増加傾向にあるようです。

公式へのリンクは下記に貼っておきます。

##地図上にピンとエリアを表示する
地図ツールのfoliumとstreamlitを組み合わせたPythonのサンプルコードです。
地図の上にスライダーをつけて拠点からの半径を調整できるようにしました。
VSCodeなどでファイルを作成してください。

import folium
from streamlit_folium import folium_static
import streamlit as st
import pandas as pd

# サンプル用の緯度経度データを作成する
sales_office = pd.DataFrame(
    data=[[32.0,131.1],
          [33.1,131.2],
          [34.2,131.3]],
    index=["本社","A営業所","B営業所"],
    columns=["x","y"]
)

# データを地図に渡す関数を作成する
def AreaMarker(df,m):
    for index, r in df.iterrows(): 

        # ピンをおく
        folium.Marker(
            location=[r.x, r.y],
            popup=index,
        ).add_to(m)

        # 円を重ねる
        folium.Circle(
            radius=rad*1000,
            location=[r.x, r.y],
            popup=index,
            color="yellow",
            fill=True,
            fill_opacity=0.07
        ).add_to(m)

# ------------------------画面作成------------------------

st.title("サンプル地図") # タイトル
rad = st.slider('拠点を中心とした円の半径(km)',
                value=40,min_value=5, max_value=50) # スライダーをつける
st.subheader("各拠点からの距離{:,}km".format(rad)) # 半径の距離を表示
m = folium.Map(location=[33.1,131.0], zoom_start=7) # 地図の初期設定
AreaMarker(sales_office,m) # データを地図渡す
folium_static(m) # 地図情報を表示

ターミナルでファイルを実行します。

streamlit run [ファイル名]

##実行結果
image.png

※この地図は拡大と縮小ができます。

上記で50行以下のコードです。またStreamlitでは、以下のことも簡単に実装できます。
・サイドバーや各種ボタンをつける
・ファイルをアップロードする
・テーブルデータを表示する
・Plotlyやdashなどの可視化ライブラリを組み合わせて表示する

これ以外にも応用例がたくさんあり、機械学習のモデル検証などにも活用されています。

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?