用途:诊断 QGIS 中的坐标系(CRS)与投影错误、坐标不匹配、基准面转换问题,防止错误 CRS 赋值造成静默数据损坏。
主要能力:提供 CRS 错误决策表,按症状定位问题,如图层出现在错误大陆、偏移约 100-200 米、拉伸变形、X/Y 颠倒、图层不可见、几何运算结果错误、转换产生 NaN/inf、独立脚本中所有 CRS 操作失败等。错误目录涵盖 ERR-001 至 ERR-007,每项含症状、根因、复现与修复模式。
关键规则:不要用 setCrs() 来“修复”位置错误,赋值只改变解释而非坐标,应使用 QgsCoordinateTransform 重投影;创建 QgsCoordinateTransform 必须传入 QgsCoordinateTransformContext,否则忽略基准面转换偏好并降低精度;QGIS 内部始终使用经度/纬度(x/y)顺序,与 EPSG 轴顺序无关;创建 CRS 后立即用 crs.isValid() 校验;做距离/面积计算前检查 crs.isGeographic();坐标转换使用 QgsProject.instance().transformContext()。
使用方式:在 QGIS Python 控制台运行诊断命令,打印各图层 CRS、有效性、地理性、单位与范围;按诊断流程图逐步排查;独立脚本需先初始化 QgsApplication 并设置 prefix path 以定位 srs.db。
适用场景:图层位置异常、空间运算结果错误、基准面转换精度不足、独立脚本 CRS 失效等。
限制:资料未提供具体安装命令、收费信息或平台支持范围;修复模式依赖 QGIS Python API 与 Proj 网格文件可用性。