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

如何在Folium中加载Shapefile(shp)?投影错误问题求助

问题解决方法

错误原因分析

这个CRSError本质是PROJ库版本不兼容或PROJ空间参考数据库损坏/版本不匹配导致的:旧版本PROJ的SQLite数据库中没有area_of_use_auth_name字段,但代码调用了这个字段,触发SQLite查询错误。另外,你的铁路数据是平面坐标系(从坐标数值可判断),直接传入Folium也会因投影不匹配引发问题。

分步解决步骤

1. 修正代码:先转换数据投影

Folium默认使用WGS84(EPSG:4326)坐标系,你的数据属于其他投影(如UTM),必须先转换投影再加载:

# 查看当前数据的投影信息
print(gdf.crs)

# 将GeoDataFrame转换为EPSG:4326
gdf_wgs84 = gdf.to_crs(epsg=4326)

# 初始化Folium地图(避免用map作为变量名,与Python内置函数冲突)
m = folium.Map(location=[-14.235004, -51.92528], zoom_start=4)

# 加载转换后的数据到地图
folium.GeoJson(data=gdf_wgs84).add_to(m)

# 保存地图到本地文件
m.save('railway_map.html')

2. 修复PROJ库版本兼容问题

如果转换投影后仍报错,需重新安装兼容版本的GeoPandas和PROJ:

  • 先卸载现有依赖:
    conda remove pyproj geopandas
    
  • 从conda-forge通道重新安装(该通道的包版本兼容性更优):
    conda install geopandas -c conda-forge
    

3. 清理PROJ缓存(可选)

若PROJ数据库缓存损坏,删除缓存目录后重新运行代码:

  • Windows:C:\Users\<你的用户名>\AppData\Local\PROJ
  • Linux/macOS:~/.cache/proj

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 06:06:06