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

Folium无法调用CircleMaker功能的技术求助

解决Folium无法调用CircleMaker的问题

问题根源

你遇到的AttributeError是因为Folium库中不存在CircleMaker这个类,属于API名称拼写错误,正确的类名是CircleMarker(用于绘制以像素为单位半径的标记点);如果需要绘制以实际米数为半径的圆形,则使用Circle。

修正后的代码

结合你的WiFi点位绘制需求,使用CircleMarker更合适,同时修正popup的格式(不能直接传列表,需要转为字符串或folium.Popup对象):

import folium
import pandas as pd

# 假设df是你的目标数据框
mymap = folium.Map(location=[df.CurrentLatitude.mean(), df.CurrentLongitude.mean()], zoom_start=12)
for coord in df[['CurrentLatitude','CurrentLongitude','SSID','Type','MAC']].values:
    if coord[3] == 'WIFI':
        # 格式化弹窗内容,用HTML换行提升可读性
        popup_content = f"SSID: {coord[2]}<br>BSSID: {coord[4]}"
        folium.CircleMarker(
            location=[coord[0], coord[1]],
            radius=3,  # 适当调大半径,让标记更易识别
            color='red',
            fill=True,
            fill_color='red',
            popup=folium.Popup(popup_content, max_width=300)
        ).add_to(mymap)
mymap.save('test_one.html')

关键改动说明

  1. API名称修正:将folium.CircleMaker替换为folium.CircleMarker,这是Folium官方支持的标记点类
  2. Popup格式修正:把原代码中的列表参数改为HTML格式化字符串,并用folium.Popup包装,优化弹窗显示效果
  3. 标记可见性优化:添加fill=True和fill_color参数,适当调大radius,让WiFi点位标记更清晰

补充说明

  • 若要绘制随地图缩放保持实际距离的圆形(比如WiFi覆盖范围),可使用folium.Circle,它的radius参数单位为米
  • 确认Folium版本:执行pip show folium查看当前版本,最新版API已统一使用CircleMarker,无需旧版本的路径调用

内容的提问来源于stack exchange,提问作者David Cannan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:36:52