Python Folium Relearning(6) from May 2025(LayerControl)

 前回:https://shikuuk.blogspot.com/2025/05/foliumfoliumhpuser-guide-url.html

まずはFoliumのHomePage(https://python-visualization.github.io/folium/latest/user_guide/ui_elements/layer_control.html)の例題です。「Remove From Control」というThemaで以下のCodeがIntroduceされています。

m = folium.Map()

fg = folium.FeatureGroup(name="Icon collection", control=False).add_to(m)
folium.Marker(location=(0, 0)).add_to(fg)

folium.LayerControl().add_to(m)

m

>Output<

 LayerControlをClickしてもIconCollectionというLayerはApearしません。このCodeがIntendするissueを考えて、' control=False'にFocusして、This Partを'control=True'にしてみました。
>Code<
import folium

m = folium.Map()

#fg = folium.FeatureGroup(name="Icon collection", control=False).add_to(m)
fg = folium.FeatureGroup(name="Icon collection", control=True).add_to(m)

folium.Marker(location=(0, 0)).add_to(fg)

folium.LayerControl().add_to(m)

m
>Output<
LayerControlに'IconCollection'がApearしました。

 次に、Show Manuallyについて確認します。FeatureGroupに'show=False'をSetすることでCode実行後の最初に表示されるMapに当該FeartureGroupはDrawされないようにするSettingになります。例えば、赤道上に東経がプラス側を30度ずつRedMarkerにより設定、東経がマイナス側を30度ずつBlueMarkerを設定し、Code実行後はプラス側は表示され、マイナス側は非表示として、LayerControlで2つのFeartureGroupの表示/非表示をManualにSettingするCodeです。
>Code<
import folium

# 地図の中心を赤道上のどこかに設定
m = folium.Map(location=[0, 0], zoom_start=2)

# 東経プラス側のFeatureGroupを作成
fg_plus = folium.FeatureGroup(name='東経プラス側 (赤色)',
    show=True) #'show=True'がDefaultになります。
# 東経マイナス側のFeatureGroupを作成
fg_minus = folium.FeatureGroup(name='東経マイナス側 (青色)',
    show=False) #'show=False'で最初表示されるMapに東経マイナス側のMarkerは表示されません

# 東経プラス側のマーカーを追加
for lon in range(0, 181, 30):  # 0度から180度まで30度刻み
    folium.Marker(
        location=[0, lon],  # 緯度は0度(赤道上)
        icon=folium.Icon(color='red')
    ).add_to(fg_plus)
fg_plus.add_to(m)

# 東経マイナス側のマーカーを追加
for lon in range(-30, -181, -30):  # -30度から-180度まで-30度刻み
    folium.Marker(
        location=[0, lon],  # 緯度は0度(赤道上)
        icon=folium.Icon(color='blue')
    ).add_to(fg_minus)
fg_minus.add_to(m)

# LayerControlを追加
folium.LayerControl(collapsed=False).add_to(m)

# 地図を表示
m

>Output< ▼こちらはDynamicMapです▼

Make this Notebook Trusted to load map: File -> Trust Notebook

LayerControlはこれくらいにして次はPopupになります。

コメント