You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Folium图层控制循环添加图层仅成功添加一个的问题

问题

手动添加2个图层时地图功能正常,但通过for循环批量添加图层后,切换图层选择时仅色条会变化,地图内容完全没有改变。

代码
from folium.plugins import GroupedLayerControl

mapa = folium.Map(location=[-33.458725289553634, -70.65252746454252], zoom_start=4)
fig_layers = []

for i, col in enumerate(df_reg.columns):
    colormap = ColorMapLayers(df_reg, col)

    # 图层
    layer = folium.GeoJson(
        data=df_sub_reg,  # 合并后的GeoDataFrame
        name=col,
        overlay=True,
        zoom_on_click=False,  # 点击矢量时是否缩放
        # 矢量样式设置
        style_function=lambda feature: {
            "color": "white",
            "weight": 0.5,
            "Opacity": 0.8,
            "fillOpacity": 0.8,
            "fillColor": colormap(
                df_reg[col][
                    feature["properties"]["CUT_REG"]
                ]  # 根据该字段值填充颜色
            ),
        },
        # 鼠标悬停高亮样式
        highlight_function=lambda x: {
            "fillColor": "#000000",
            "color": "#000000",
            "fillOpacity": 0.50,
            "weight": 0.1,
        },
        # 悬停提示框
        tooltip=folium.features.GeoJsonTooltip(
            fields=["REGION", col],
            aliases=["地区", col],
            style=(
                "background-color: white; color: #333333; font-family: arial; font-size: 8px; padding: 10px;"
            ),
        ),
    )

    # 添加到图层组
    fg = folium.FeatureGroup(col.lower())
    layer.add_to(fg)

    mapa.add_child(fg)
    mapa.add_child(colormap)
    mapa.add_child(BindColormap(fg, colormap))

    fig_layers.append(fg)

GroupedLayerControl(
    groups={"分组": fig_layers},
    collapsed=False,
).add_to(mapa)

mapa
效果截图

切换图层时地图无变化,仅色条更新

内容的提问来源于stack exchange,提问作者Sebastian Cantergiani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:40:09