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

GeoDataFrame可正常plot但在Folium的GeoJson中不显示问题求助

问题核心原因

90%以上的概率是坐标顺序颠倒导致的:

  • GeoPandas生成多边形时,你传入的点顺序是[纬度, 经度],生成的凸包坐标对也是(纬度值, 经度值)格式
  • 但Folium遵循的GeoJSON标准强制要求坐标顺序为[经度, 纬度],顺序颠倒后多边形会被绘制到完全错误的地理位置(比如本应在芬兰的多边形会跑到印度洋中部),自然在你设置的芬兰区域地图上看不到内容。
    剩下的小概率原因为样式配置缺失导致多边形透明不可见。

修复方案

1. 优先修正多边形生成时的坐标顺序(最彻底)

将生成多边形环节的列顺序调换,保证传入的点经度在前、纬度在后:

# 原代码:latlong = df[['Latitude','Longitude']].loc[df['cluster'] == i]
# 修改为:
latlong = df[['Longitude','Latitude']].loc[df['cluster'] == i]

后续流程无需改动,生成的多边形坐标就符合Folium的要求。

2. 补充样式配置避免透明不可见

修改Folium的样式函数,明确设置边框、填充透明度等参数,避免默认样式导致看不到多边形:

geo_j = folium.GeoJson(data=geo_j,
           style_function=lambda x: {
               'fillColor': 'orange',
               'color': 'black', # 边框颜色
               'weight': 2, # 边框粗细
               'fillOpacity': 0.6 # 填充透明度
           })

验证方法

如果不确定是不是坐标顺序问题,可以打印任意一个GeoJSON的内容,查看坐标数值:

  • 符合要求的坐标应该是[27.x, 61.x]格式(经度在前,数值在27左右)
  • 如果坐标是[61.x, 27.x]则可确定是顺序颠倒问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:54:04