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

如何为Folium地图添加自定义图例?附现有代码及需求

给Folium地图加图例的两种方法

你可以用以下两种方式给你的地图添加图例,说明蓝色标记对应「其他医院」,红色标记对应「Dayton医院」:

方法1:自定义HTML静态图例

这个方法会在地图上添加一个固定位置的图例,样式更灵活:

import folium

# 初始化地图
m = folium.Map(location=[39.735,-84.15], zoom_start=10.5)

# 遍历添加原有标记
for idx, row in gdf1.iterrows():
    folium.Marker(
        [row['Latitude'], row['Longitude']],
        popup=row['Name'],
        icon=folium.Icon(color=row['Colors'])
    ).add_to(m)

# 编写图例的HTML代码
legend_html = '''
<div style="position: fixed; 
     bottom: 50px; left: 50px; width: 180px; height: 80px; 
     background: white; border: 2px solid grey; z-index: 9999; font-size: 14px;
     padding: 10px;">
     <p><b>图例</b></p>
     <p><i class="fa fa-map-marker fa-2x" style="color:blue"></i> 其他医院</p>
     <p><i class="fa fa-map-marker fa-2x" style="color:red"></i> Dayton医院</p>
</div>
'''

# 把图例添加到地图上
m.get_root().html.add_child(folium.Element(legend_html))

# 保存地图
m.save('hospital_map_with_legend.html')

说明:

  • 图例固定在地图左下角,你可以修改bottom、left值调整位置。
  • 用Font Awesome图标模拟标记样式,Folium默认自带这个图标库,不用额外引入。

方法2:用FeatureGroup做可切换图例

如果需要让用户能开关不同类别的标记,用这种方法更合适:

import folium

m = folium.Map(location=[39.735,-84.15], zoom_start=10.5)

# 创建两个特征组,分别对应两类医院
dayton_hospitals = folium.FeatureGroup(name='Dayton医院')
other_hospitals = folium.FeatureGroup(name='其他医院')

# 按颜色分类添加标记
for idx, row in gdf1.iterrows():
    marker = folium.Marker(
        [row['Latitude'], row['Longitude']],
        popup=row['Name'],
        icon=folium.Icon(color=row['Colors'])
    )
    if row['Colors'] == 'red':
        marker.add_to(dayton_hospitals)
    elif row['Colors'] == 'blue':
        marker.add_to(other_hospitals)

# 把特征组加入地图
dayton_hospitals.add_to(m)
other_hospitals.add_to(m)

# 添加图层控制器,自动生成图例
folium.LayerControl().add_to(m)

m.save('hospital_map_with_layer_control.html')

说明:

  • 地图右上角会出现图层控制按钮,点击可以切换显示某一类医院的标记。
  • 图例就是图层控制器里的选项,不用手动写HTML。

内容的提问来源于stack exchange,提问作者Ashok Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:00:46