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

使用folium绘制地图遇ValueError:位置参数格式错误求助

解决folium MarkerCluster的ValueError:Expected two (lat, lon) values for location

错误原因

问题出在MarkerCluster(locations=[df.Latitude, df.Longitude])这行代码:你传入的是两个独立的Pandas Series(整个纬度列和整个经度列),但folium的MarkerCluster组件要求locations参数是包含(lat, lon)坐标对的可迭代对象(比如列表的列表、元组的列表),而非两个单独的列数据。

修复方案

方法1:移除MarkerCluster的locations参数(推荐)

你后续已经通过循环逐个将CircleMarker添加到marker_cluster中,完全不需要提前给MarkerCluster传入locations参数。修改后的代码如下:

import folium
from folium.plugins import MarkerCluster

# 创建基础地图
Montgomery = [32.35031, -86.26321]
map = folium.Map(location=Montgomery,
                 zoom_start=12, 
                 tiles="CartoDB positron")

# 初始化MarkerCluster,无需传locations参数
marker_cluster = MarkerCluster().add_to(map)

# 循环添加带弹窗的标记
for _lat, _lon, _name in zip(df.Latitude, df.Longitude, df['Crime Name1']):
    folium.CircleMarker(location=[_lat, _lon], 
                        radius=9, 
                        fill_opacity=0.9,
                        popup=_name  # 可选:添加弹窗显示犯罪名称
                        ).add_to(marker_cluster)

f = 'map_station_cluster.html'
map.save(f)
map

方法2:正确构造locations参数

如果一定要给MarkerCluster传locations,需要将经纬度列组合成坐标对的列表,用df[['Latitude', 'Longitude']].values.tolist()生成符合要求的格式:

import folium
from folium.plugins import MarkerCluster

# 创建基础地图
Montgomery = [32.35031, -86.26321]
map = folium.Map(location=Montgomery,
                 zoom_start=12, 
                 tiles="CartoDB positron")

# 构造符合要求的locations:每行经纬度组合成坐标对
locations = df[['Latitude', 'Longitude']].values.tolist()
marker_cluster = MarkerCluster(locations=locations).add_to(map)

# 循环添加带弹窗的标记
for _lat, _lon, _name in zip(df.Latitude, df.Longitude, df['Crime Name1']):
    folium.CircleMarker(location=[_lat, _lon], 
                        radius=9, 
                        fill_opacity=0.9,
                        popup=_name
                        ).add_to(marker_cluster)

f = 'map_station_cluster.html'
map.save(f)
map

注:第一种方法更简洁,适配你需要添加自定义CircleMarker和弹窗的场景;第二种方法适合仅批量添加基础标记的需求。

内容的提问来源于stack exchange,提问作者Shah Rukh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 12:10:37