Python使用Contextily添加底图提示EPSG code is unknown怎么解决
问题原因
该报错属于macOS系统常见的PROJ库路径冲突问题:系统自带的PROJ版本和conda环境内安装的PROJ版本不一致,rasterio读取到了版本不匹配的proj.db文件,无法正确识别EPSG坐标系编码。
解决方案
- 方案1:重装匹配版本的依赖包
先清理现有冲突包:
再从conda-forge源安装匹配版本的依赖:conda uninstall -y proj libgdal rasterio contextily conda clean -a -yconda install -c conda-forge proj libgdal rasterio contextily - 方案2:手动指定PROJ库路径
在你代码的最开头添加环境变量声明,强制程序读取conda环境内的proj.db文件:import os os.environ['PROJ_LIB'] = '/opt/anaconda3/share/proj'
额外注意事项
你当前代码存在坐标系设置错误:Excel中的x_dd、y_dd字段为十进制度格式的WGS84经纬度坐标,对应EPSG编码为4326,你直接指定为EPSG:3857会导致坐标偏移、底图匹配失败,可按如下方式修正:
# 初始化时使用正确的源坐标系 gdf = GeoDataFrame(route, geometry=geometry, crs='EPSG:4326') # 若需要以web墨卡托坐标系(EPSG:3857)绘图,可主动转换坐标系 gdf = gdf.to_crs('EPSG:3857')
内容的提问来源于stack exchange,提问作者pumpkinchugger
相关产品推荐
相关产品推荐

