一、QGIS坐标系基础概念
在QGIS中,坐标转换涉及两大核心概念:地理坐标系(Geographic Coordinate System, GCS)与投影坐标系(Projected Coordinate System, PCS)。地理坐标系以经纬度表示位置(如WGS84,EPSG:4326),而投影坐标系通过数学转换将地球曲面映射到平面(如UTM,EPSG:32650)。理解二者的差异是进行坐标转换的基础:
- 地理坐标系:基于椭球体模型,适用于大范围数据存储。
- 投影坐标系:基于平面直角坐标,适合局部区域的空间分析和制图。
QGIS默认使用WGS84(EPSG:4326),但支持超过7000种预定义坐标系。
二、QGIS项目坐标系统设置
-
新建项目时设置CRS
- 通过菜单栏“项目 > 属性 > CRS”,选择目标坐标系(如CGCS2000或UTM分区)。
- 勾选“自动设置CRS到添加的第一个图层”,确保后续图层自动匹配投影。
-
运行时调整CRS
- 若需临时切换显示投影,可在状态栏点击CRS图标,选择“即时投影”。此操作仅改变显示,不修改数据源。
-
多坐标系图层叠加
- QGIS支持“动态投影”:不同坐标系的图层叠加时,自动按项目CRS实时转换显示。例如,WGS84的卫星影像与CGCS2000的矢量数据可无缝叠加。
三、地理坐标与投影坐标互转
1. 单点转换
- 使用“测量工具” :在地图窗口点击位置,状态栏显示当前CRS下的坐标。切换项目CRS后重新测量,可获取转换结果。
- 表达式转换:通过字段计算器,使用
transform($geometry, '原CRS', '目标CRS')
生成新几何字段。
2. 矢量图层批量转换
- 导出时重投影:右键图层 > 导出 > 另存为,在“目标CRS”中选择新坐标系(如从WGS84转UTM)。
- 处理工具箱工具:
- 矢量通用工具:使用“重投影图层”(Reproject Layer)工具,设置输入输出CRS。
- 高级转换:对于复杂椭球体变换(如WGS84到CGCS2000),需在“坐标操作”中选择七参数或格网校正。
3. 栅格数据转换
- 使用“栅格 > 投影 > 变形(Warp)”工具,指定输出CRS和重采样方法(如双线性插值)。
- 对于无坐标信息的扫描地图,需先通过“地理配准”工具添加控制点。
四、高程坐标系转换要点
高程转换需额外关注垂直基准差异(如EGM96与CGCS2000正常高):
-
参数选择
- 使用权威机构发布的转换参数(如国家测绘局提供的格网文件)。
- 在QGIS中安装“垂直基准转换”插件,加载.vdatum文件。
-
精度验证
- 对比已知高程点:导入水准点数据,验证转换后高程残差。
- 使用“剖面工具”检查地形连续性,避免因参数错误导致的突变。
五、批量坐标转换实战
1. 文本文件批量处理
- 使用“处理工具箱 > 脚本 > 创建新脚本”,编写Python脚本调用GDAL的
osgeo.ogr
库。 - 示例代码片段:
from qgis.core import QgsVectorLayer layer = QgsVectorLayer("path/to/input.shp", "input", "ogr") params = {'INPUT': layer, 'TARGET_CRS': 'EPSG:32650', 'OUTPUT': 'path/to/output.shp'} processing.run("native:reprojectlayer", params)
运行
2. 数据库层转换
- 对PostGIS数据库,执行SQL命令:
ALTER TABLE table_name ALTER COLUMN geom TYPE Geometry(Point, 4527) USING ST_Transform(geom, 4527);
3. 自动化工作流
- 利用“图形模型设计器”组合多个工具(如投影转换+属性计算+导出),保存为模型重复调用。
六、复杂投影案例解析
1. 跨带UTM转换
- 问题:数据跨越两个UTM带(如49N与50N)。
- 解决方案:
- 使用“自定义CRS”定义组合投影(如EPSG:32649+32650)。
- 通过“虚拟图层”将数据分割到各自带区,分别转换后合并。
2. 高斯-克吕格与Web Mercator互转
- 步骤:
- 高斯投影(如EPSG:2326)→ 地理坐标(WGS84)→ Web Mercator(EPSG:3857)。
- 注意东偏500km的处理:在字段计算器中修正X坐标值。
七、坐标转换验证方法
-
控制点验证
- 添加已知控制点图层,使用“点位移分析”工具计算残差。
- 设置容差阈值(如5米),标记超限点并修正。
-
图形比对
- 叠加转换前后的图层,启用“差异渲染”模式,突出显示偏移区域。
- 使用“对齐栅格”工具调整局部配准误差。
-
统计指标
- 运行“基本统计”工具,检查坐标值的范围与分布是否符合预期。
- 计算RMSE(均方根误差):理想值应小于数据精度要求。
八、常用插件增强功能
-
GeoHey Toolbox
- 支持GCJ02/BD09与WGS84互转,解决国内地图偏移问题。
- 操作路径:插件 > GeoHey > 坐标转换,选择输入输出坐标系。
-
PROJ Integration
- 启用高级转换选项(如地心平移、格网变形),适用于高精度军工测绘。
- 配置路径:设置 > 选项 > CRS > 启用PROJ增强功能。
-
Verto
- 专业高程转换插件,支持EGM2008、NAVD88等垂直基准。
- 支持批量格网校正,适用于地形建模。
九、典型错误排查
-
坐标值异常
- 现象:转换后坐标超出合理范围(如纬度>90°)。
- 解决:检查原始数据CRS是否误选(如将投影坐标误设为地理坐标)。
-
图层错位
- 现象:转换后图层与底图偏移固定距离。
- 解决:确认是否启用“即时投影”,或存在七参数未应用。
-
性能瓶颈
- 现象:大批量转换时软件卡死。
- 优化:分块处理数据,启用多线程处理(处理工具箱 > 选项 > 设置线程数)。
十、自定义坐标系创建
-
参数定义
- 通过“设置 > 自定义CRS”添加,格式为PROJ字符串或WKT。
- 示例(自定义高斯投影):
+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs
-
参数验证
- 使用“测试CRS”功能,输入已知点验证转换准确性。
- 对比专业软件(如ArcGIS)的输出,确保参数正确性。
结语
QGIS的坐标转换功能覆盖从基础投影到高精度参数化校正的全场景需求。通过合理选择工具链(内置工具+插件+脚本),结合严格的质量控制流程(验证+统计),用户可高效完成复杂坐标转换任务。随着PROJ库的持续升级(如PROJ 9.x支持动态地心转换模型),QGIS在处理跨基准、跨时代坐标数据时将更具优势。