如何让folium.features.GeoJson绘制圆形而非图标?报错咨询
问题解决步骤
修复语法错误
你的代码存在括号与逗号的语法错误,marker='Circle'被错误地放在了GeoJson构造函数的括号外侧,且多了一个多余的逗号,导致参数传递异常。明确
marker参数的适用范围folium.features.GeoJson的marker参数仅对GeoJSON点要素生效,你当前传入的是多边形几何对象,多边形不需要标记类参数,这才是报错的核心原因——多边形要素不支持设置marker,只有点要素才需要指定标记类型。
修正后的代码
location = (-33, 200) m = folium.Map(location=location, zoom_start=8, tiles='openstreetmap', control_scale=True, prefer_canvas=True) # 移除多边形不需要的marker参数,修正语法结构 polygons_gjson = folium.features.GeoJson( clean_cycle_points_sf.loc[clean_cycle_points_sf.site_name == 'random', 'geometry'], style_function=lambda x: { 'weight': 1, 'color': palette[id], 'fillOpacity': 0.7 }, name='Paddocks delivering to: random' ) polygons_gjson.add_to(m) m
若需处理点要素(补充说明)
如果你的数据包含点要素需要添加标记,需单独创建GeoJson图层处理点数据:
# 示例:处理点要素并指定标记 points_gjson = folium.features.GeoJson( your_point_geodata, marker=folium.Circle(radius=5, color='red'), # 仅点要素适用marker参数 name='Sample Points' ) points_gjson.add_to(m)
内容的提问来源于stack exchange,提问作者MJ313
相关产品推荐
相关产品推荐

