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

Folium创建的带标记地图无法在浏览器显示如何修复

问题根因

代码仅在内存中创建了Folium地图实例,没有执行导出、唤起浏览器的逻辑,运行后对象会被直接回收,不会有任何可视化输出。
原代码最后一行fo.Map().add_child(volcano)既没有把地图对象存为变量,也没有指定输出方式,等于创建完对象就直接丢弃了。

修复方案

按以下两点调整代码即可:

  • 把初始化的地图对象赋值给独立变量,建议初始化时就设置好地图中心点、初始缩放等级,避免打开后找不到点位
  • 调用save()方法把地图导出为本地HTML文件,再通过Python标准库webbrowser自动唤起默认浏览器打开该文件

修复后的完整代码:

import numpy as np
import pandas as pd
import folium as fo
import webbrowser
import os

# 替换为你的csv文件实际路径
data = pd.read_csv("...")

lat = list(data["Latitude"])
lon = list(data["Longitude"])
name = list(data["Name"])

# 初始化地图,中心点取所有点位经纬度平均值,初始缩放等级设为6可按需调整
m = fo.Map(
    location=[sum(lat)/len(lat), sum(lon)/len(lon)],
    zoom_start=6
)

volcano = fo.FeatureGroup(name="Volcano")
for a, b, c in zip(lat, lon, name):
    volcano.add_child(fo.Marker(
        location=[a, b], 
        popup=c, 
        icon=fo.Icon(color='blue')
    ))

m.add_child(volcano)
# 可选:添加图层控制开关
m.add_child(fo.LayerControl())

# 保存地图到本地HTML文件
save_file = "volcano_marker_map.html"
m.save(save_file)

# 自动调用默认浏览器打开生成的地图
webbrowser.open("file://" + os.path.realpath(save_file))

补充说明

如果是在Jupyter Notebook类的交互式环境运行,不需要调用webbrowser模块,代码最后直接输入地图变量名m,即可在单元格输出位置直接渲染展示地图,不用额外打开HTML文件。

内容的提问来源于stack exchange,提问作者Naman Dalsania

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:42:31