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

Cartoview图层上传时PROJ库错误及PostgreSQL配置咨询

错误原因分析
  • PROJ数据库版本不兼容:第一个错误提示的area_of_use_auth_name列不存在,是PROJ 8.0及以上版本新增的字段。如果你的PROJ程序版本是8.x+,但使用的是旧版本的proj.db(PROJ默认的SQLite数据库),就会出现这个结构不匹配的问题。
  • 连锁坐标转换失败:前一个错误导致PROJ无法正常读取空间参考系统的元数据,进而引发后续的proj_create失败、无法找到坐标转换操作的错误——因为PROJ根本无法识别图层的坐标系信息。
配置PROJ使用PostgreSQL的步骤
  1. 初始化PROJ的PostgreSQL数据库

    • 在PostgreSQL中创建一个专门的数据库(例如命名为proj_db)
    • 找到PROJ安装包或源码中提供的初始化脚本proj_db_postgresql.sql(通常位于data目录下),执行该脚本完成数据库表结构和空间参考数据的初始化:
      psql -U your_db_user -d proj_db -f /path/to/proj_db_postgresql.sql
      
  2. 确保PROJ支持PostgreSQL

    • 若通过源码编译PROJ,编译时需添加PostgreSQL支持的编译选项:
      cmake -DENABLE_POSTGRESQL=ON /path/to/proj/source
      make && make install
      
    • 若通过包管理器安装(如Ubuntu/Debian),需安装包含PostgreSQL支持的PROJ包,例如:
      sudo apt-get install libproj-dev libpq-dev
      
  3. 配置PROJ连接PostgreSQL

    • 设置环境变量PROJ_DB_STRING,指定PostgreSQL的连接字符串,格式如下:
      export PROJ_DB_STRING="postgresql://db_user:db_password@localhost:5432/proj_db"
      
    • 若需要永久生效,可将上述命令添加到系统环境配置文件(如/etc/profile、~/.bashrc或服务启动脚本中)
  4. 权限与版本校验

    • 确保PostgreSQL的数据库用户拥有proj_db的读写权限
    • 确认初始化数据库使用的proj_db_postgresql.sql版本与当前PROJ程序版本一致,避免再次出现数据库结构不兼容问题

内容的提问来源于stack exchange,提问作者Muhammad Waqar Anwar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:22:15