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

如何在地图标记弹窗中添加表格数据?求Jupyter实现代码

实现代码(基于folium库)

首先确保安装依赖库:

pip install folium pandas

假设你已经通过pandas读取了Excel表格,得到DataFrame对象df,且表格包含**经度(longitude)、纬度(latitude)**列以及需要展示的A1、A2、A3列。以下是完整实现代码:

import folium
import pandas as pd

# 如果你还没读取Excel,执行这行(替换为你的文件路径)
# df = pd.read_excel("你的文件路径.xlsx")

# 创建基础地图(以中国为例,中心坐标设为北京)
m = folium.Map(location=[39.9042, 116.4074], zoom_start=5)

# 遍历表格每一行,添加标记
for idx, row in df.iterrows():
    # 构造弹窗内容,用HTML格式化展示A1、A2、A3数据
    popup_content = f"""
    <div>
        <p><strong>A1:</strong> {row['A1']}</p>
        <p><strong>A2:</strong> {row['A2']}</p>
        <p><strong>A3:</strong> {row['A3']}</p>
    </div>
    """
    # 创建弹窗,设置宽度
    popup = folium.Popup(popup_content, max_width=300)
    
    # 添加地图标记
    folium.Marker(
        location=[row['latitude'], row['longitude']],
        popup=popup,
        tooltip=row['A1']  # 鼠标悬停时显示的提示文本,可自定义
    ).add_to(m)

# 在Jupyter Notebook中显示地图
m

补充说明

  • 如果你的表格没有经纬度列,需要先通过地理编码获取城市的经纬度,可使用geopy库:
    pip install geopy
    
    示例代码(根据城市名获取经纬度):
    from geopy.geocoders import Nominatim
    
    geolocator = Nominatim(user_agent="my_app")
    def get_coords(city_name):
        location = geolocator.geocode(city_name)
        if location:
            return (location.latitude, location.longitude)
        else:
            return (None, None)
    
    # 假设你的城市名列是'城市'
    df[['latitude', 'longitude']] = df['城市'].apply(lambda x: pd.Series(get_coords(x)))
    
  • 运行代码后,Jupyter Notebook会直接渲染交互地图,点击标记即可弹出包含A1、A2、A3数据的窗口。

内容的提问来源于stack exchange,提问作者White Angel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:28:15