Folium地图显示空白(白屏)问题求助
Folium地图白屏问题排查方案
针对你描述的「上周正常运行、当前地图全白、更换浏览器无效、数据处理无报错」的情况,按以下步骤逐一排查:
1. 验证地图初始化坐标的合法性
你通过df.Latitud.mean()和df.Longitud.mean()设置地图中心,若这两个值超出有效经纬度范围(纬度[-90,90]、经度[-180,180])或为NaN,会直接导致地图加载失败。执行以下代码确认:
print("平均纬度:", df.Latitud.mean()) print("平均经度:", df.Longitud.mean())
如果值异常,检查数据源的经纬度是否被错误处理(比如分割Ubicación finalizada时是否颠倒了经纬度顺序)。
2. 排查图标颜色索引越界
你的colors列表包含19个元素(索引0-18),但Zona de tarifa2的取值可能超出这个范围,触发索引错误导致渲染终止。执行以下代码检查取值范围:
print("Zona de tarifa2最小值:", df['Zona de tarifa2'].min()) print("Zona de tarifa2最大值:", df['Zona de tarifa2'].max())
若最大值>18,要么扩展colors列表,要么对取值做截断处理:
df['Zona de tarifa2'] = df['Zona de tarifa2'].apply(lambda x: min(x, 18))
3. 简化Popup内容测试
你拼接的Popup包含大量换行和多字段内容,若存在未处理的特殊字符或隐性NaN,会破坏HTML渲染逻辑。先替换为极简Popup测试:
for index, location_info in df.iterrows(): folium.Marker( [location_info["Latitud"], location_info["Longitud"]], icon=folium.Icon(color=colors[int(location_info['Zona de tarifa2'])]), popup=location_info["Cliente"] # 仅保留客户名称 ).add_to(map)
如果简化后地图正常显示,再逐步还原Popup内容,定位触发问题的字段。
4. 导出为HTML文件排查渲染问题
Jupyter等交互式环境的直接渲染可能存在缓存或环境问题,强制导出为HTML后打开:
map.save('test_map.html')
打开文件后按F12调出浏览器控制台,查看「Console」标签页的JS报错(比如资源加载失败、语法错误),这些是白屏的常见诱因。
5. 检查Folium版本兼容性
若近期更新过Folium,可能是版本兼容性问题导致渲染失败。查看当前版本:
import folium print(folium.__version__)
尝试回退到上周正常运行时的版本,比如稳定版0.14.0:
pip install folium==0.14.0
内容的提问来源于stack exchange,提问作者Franco Vera
相关产品推荐
相关产品推荐

