Important

翻译是一项社区工作 你可以加入。此页面目前翻译进度为 100.00%。

6. 使用投影

坐标参照系统,或简称CRS, 是一种将数值坐标与地球表面上的位置相关联的方法。 QGIS 支持大约 7,000 个标准 坐标参照系统,每个都有不同的用例、优缺点!为您的 QGIS 项目和数据选择合适的坐标参照系统可能是一项复杂的任务,但幸运的是 QGIS 可以帮助您完成选择,并让使用不同的 坐标参照系尽可能透明和准确。

6.1. 投影支持概述

QGIS 支持大约 7,000 个已知的坐标参照系。这些标准坐标参照系基于欧洲石油调查组 (EPSG) 和法国国家地理研究所 (IGNF) 定义的标准,并通过底层的“Proj”投影库在 QGIS 中提供。通常,这些标准投影是通过使用“管理机构:代码”组合来识别的,其中管理机构是组织名称,例如“EPSG”或“IGNF”,代码是与特定 CRS 关联的唯一编号。例如,常见的 WGS 84 经纬度坐标参照系 的标识符为``EPSG:4326``,而网络地图标准坐标参照系为``EPSG:3857``。

自定义的、用户创建的坐标参照系存储在用户坐标参照系数据库中。有关管理自定义坐标参照系统的信息,请参阅 自定义坐标参照系 部分。

6.2. 图层坐标参照系

为了将数据正确投影到特定的目标CRS,要么您的数据必须包含其坐标参考系统的信息,要么您需要手动为图层指定正确的 CRS。对于 PostGIS 图层,QGIS 使用创建该 PostGIS 图层时指定的空间参考标识符(SRID)。对于 GDAL 支持的数据,QGIS 依赖于是否存在被认可的 CRS 指定方式。例如,对于 Shapefile 格式,这通常是一个包含图层 CRS 的 ESRI 通用文本(WKT)表示的文件。该投影文件与 .shp 文件具有相同的主文件名,扩展名为 .prj。例如,alaska.shp 将对应一个名为 alaska.prj 的投影文件。

每当将图层加载到 QGIS 中时,QGIS 都会尝试自动确定该图层的正确坐标参照系。在某些情况下可能无法成功,例如当提供了一个不包含坐标系信息的图层时。当 QGIS 无法自动确定图层的正确坐标参照系时,您可以手动配置 QGIS :

  1. 打开 设置 ► options 选项... ► CRS

    ../../../_images/options_crs.png

    Fig. 6.1 QGIS选项对话框中的CRS选项卡

  2. 在:guilabel:图层CRS 选项组中,设置 :guilabel:`当创建新图层或加载没有CRS的图层时`的操作。从以下选择其一:

    • radioButtonOn 保留未知CRS (无动作):加载没有 CRS 的图层时,将不会提示选择 CRS,将 CRS 选择推迟到以后。一次加载很多图层时很方便。在 图层 面板中这些图层旁边将会显示 indicatorNoCRS 图标。它们也将是无参照的,来自该图层的坐标被视为纯数字的、非地球的值,也就是说,当 :ref:`一个项目被设置为没有CRS时<project_crs> ` ,所有图层的行为都是一样的。

    • radioButtonOff 提示CRS :它将提示您手动选择CRS。选择正确的选择是至关重要的,因为一个错误的选择将把你的层放在地球表面的错误位置!有时,随附的元数据将描述层的正确CRS,在其他情况下,您需要联系数据的原始作者以确定要使用的正确CRS。

    • radioButtonOff 使用工程CRS

    • radioButtonOff 使用默认图层 CRS, 就像设置上面的 默认CRS 图层 组合框

Tip

将相同的CRS分配给多个没有CRS或在一次操作中有错误CRS的层:

  1. 在图层面板中选择图层

  2. 使用快捷键 Ctrl+Shift+C ,或者右键单击选中图层以进入CRS选择选菜单 图层CRS ► 设置图层CRS

  3. 找到并选择正确的CRS

  4. 点击 OK 现在检查图层属性对话框下的 标签页的信息,图层的CRS已被正确地设置

请注意,在此设置中更改CRS并不会修改原始数据源,而只是改变了当前QGIS工程下QGIS对该图层原始坐标的解释。

6.3. 投影坐标参照系

QGIS中的每个项目都有一个相关的坐标参考系。项目CRS决定如何将数据从底层原始坐标投影到QGIS地图画布中呈现的平面地图。

QGIS支持光栅和矢量数据的“实时动态”CRS转换。这意味着,无论项目中特定映射层的底层CRS如何,它们总是会自动转换为为项目定义的公共CRS。在幕后,QGIS透明地将项目中包含的所有图层重新投影到项目的CRS中,这样它们就会在彼此相关的正确位置上呈现!

为您的QGIS项目选择适当的CRS非常重要。选择不合适的CRS可能会导致您的地图看起来扭曲, 并且很难反映地貌的实际大小和位置。通常,在较小的地理区域内工作时,会有多个 在特定国家或行政区内使用的标准CRS。针对你正在绘制的区域,研究哪些CRS是合适或标准选择,并确保您的QGIS项目遵循这些标准,这一点非常重要。

默认情况下,QGIS 在创建每个新工程时都会使用一个全局默认投影。该默认 CRS 为 ``EPSG:4326``(也称为“WGS 84”),是一种基于经纬度的全球参考系统。您可以通过 设置 ► options 选项... 中的 CRS处理 选项卡下的 当新工程创建时 设置来更改此默认 CRS(参见 Fig. 6.1)。您可以选择在将第一个图层加载到新工程时自动将工程 CRS 设置为该图层的 CRS,也可以选择另一个 CRS 作为所有新建工程的默认 CRS。此选择将被保存,并在后续的 QGIS 会话中继续使用。

工程的 CRS 也可以通过:menuselection:工程--> 工程属性...CRS 选项卡来设置。也会显示在QGIS状态栏的最右下方。

../../../_images/projectionDialog.png

Fig. 6.2 工程属性对话框

可用的选项包括:

  • unchecked 无CRS (或未知/非地球投影)) :勾选此设置将禁用QGIS项目中的所有投影处理,导致所有图层和地图坐标被视为简单的二维笛卡尔坐标,与地球表面的位置无关。它可以用来猜测一个层的CRS(基于其原始坐标),或者当QGIS用于非地球用途时,如角色扮演游戏地图,建筑地图或微观的东西。在这种情况下:

    • 在渲染层时不进行重投影:只是使用原始坐标绘制特征。

    • 椭球体被锁定并被迫“没有/平面” None/Planimetric

    • 距离、面积单位、坐标显示被锁定,强制为“未知单位”;所有的测量都以未知的地图单位进行,不可能进行转换。

  • 或现有的坐标参考系统,可以是地理的、投影的或用户定义的。显示地球上CRS范围的预览,以帮助您选择合适的CRS范围。添加到项目中的图层被实时转换到这个CRS,以便覆盖它们,而不管它们的原始CRS是什么。使用单位和椭球体设置是有意义的,你可以执行相应的计算。

每当您为 QGIS 工程选择一个新的 CRS 时,工程► 属性...工程属性 对话框的 通用 选项卡中的测量单位将自动更改为与所选 CRS 匹配的单位。例如,某些 CRS 使用英尺而非米来定义其坐标,因此将 QGIS 工程设置为这类 CRS 时,工程的默认测量单位也会相应地设为英尺。

Tip

从图层设置工程CRS

你可以使用图层的CRS为工程分配一个CRS:

  1. 图层 面板,右键单击要选择CRS的图层

  2. 选择 图层CRS->将图层的CRS设为工程CRS

使用图层的CRS重新定义工程的CRS,地图画布范围,坐标显示相应更新,工程中的所有图层都实时转换为新的工程CRS。

6.4. 坐标参照系选择器

../../../_images/crs_selector.png

Fig. 6.3 CRS选择器

此对话框可帮助您为工程或图层分配坐标参照系统,并提供一组投影数据库。对话框中的元素有:

  • 过滤: 如果你知道 EPSG 代码、标识符或坐标参照系的名称,您可以使用搜索功能来查找它。输入EPSG代码、标识符或名称。

  • 最近使用的坐标参照系 :如果您在日常GIS工作中经常使用某些CRS,这些CRS将显示在此列表中。点击其中一个项目,选择相关的CRS。

  • 预定义坐标参照系 :这是QGIS支持的所有CRS的列表,包括地理、投影和自定义坐标参考系统。请展开列表中适当的节点并选择CRS,已预选活跃的CRS。

  • PROJ文本 :左下角是PROJ投影引擎使用的CRS字符串。此文本为只读,仅供参考。

如果你想从列表中删除最近使用的CRS,可以通过以下几种方式完成:

  • 按右侧的 clearItem 从最近使用的CRS中移除 按钮。

  • 选择要移除的CRS后,按 Del 键。

  • 在用过的CRS上鼠标右键单击,并选择 clearItem 从最近使用的CRS中移除选定的CRS 来移除单个记录,或者 clearConsole 清除所有最近使用的CRS 来移除所有曾用记录。

CRS选择器还显示所选CRS有效使用的地理区域的粗略预览。许多CRS的设计仅用于小地理区域,您不应该在设计区域之外使用这些CRS。每当从列表中选择CRS时,预览地图就会显示大致的使用区域(红色)。此外,此预览图还显示了当前主画布地图范围的指示器(紫色)。

6.5. 自定义坐标参照系

如果QGIS不提供所需的坐标参照系,则可以定义自定义CRS。要定义CRS,从:menuselection:设置 菜单中选择 customProjection 自定义投影... .自定义的CRS存储在QGIS用户数据库中。除了自定义CRS之外,该数据库还包含空间书签和其他自定义数据。

在QGIS中定义自定义CRS需要对PROJ投影库有很好的理解。首先,请参考美国地质调查局Gerald I. Evenden的UNIX环境的制图投影程序-用户手册。"Cartographic Projection Procedures for the UNIX Environment - A User's Manual" by Gerald I. Evenden, U.S. Geological Survey Open-File Report 90-284, 1990 (可在 https://pubs.usgs.gov/of/1990/of90-284/ofr90-284.pdf 找到)。

本手册描述了 proj 和相关命令行实用程序的使用。与 proj 一起使用的制图参数在用户手册中有描述,与QGIS使用的参数相同。

用户自定义CRS` 对话框只需要两个参数定义用户CRS:

  1. 描述性名称

  2. 使用PROJ或WKT格式的制图参数

要创建一个新的CRS:

  1. 单击 symbologyAdd 添加新的CRS 按钮

  2. 输入描述性名称

  3. 选择格式,它可能是 Proj字符串WKT

  4. 输入CRS 参数

    Note

    首选以WKT格式存储CRS定义

    虽然都支持 Proj StringWKT 格式,但强烈建议以WKT格式存储投影定义。因此,如果可用的定义是proj格式,请选择该格式,输入参数,然后切换到WKT格式。QGIS将把定义转换为稍后可以保存的WKT格式。

  5. 点击 验证 按钮以测试CRS定义是否为有效的投影定义。

../../../_images/customProjectionDialog.png

Fig. 6.4 自定义CRS对话框界面

您可以测试CRS参数,看看它们是否给出相同的结果。为此,分别在 纬度 and 经度 字段中输入已知的WGS 84纬度和经度值。单击 计算,并将结果与坐标参考系中的已知值进行比较。

6.5.1. 在QGIS中集成NTv2-变换

要在QGIS中集成NTv2变换文件,您还需要一个步骤:

  1. 将NTv2文件(.gsb)放在QGIS使用的CRS/Proj文件夹中 例如Windows的 C:\OSGeo4W64\share\proj 路径)

  2. 添加 nadgrids (+nadgrids=nameofthefile.gsb)到工程定义 参数 字段of the 自定义坐标参照系定义 (设置► Custom Projections...).

    ../../../_images/nadgrids_example.png

    Fig. 6.5 设置NTv2变换

6.6. 基准变换

在QGIS中,默认启用了“实时动态” CRS转换功能。这意味着,当你使用具有不同坐标系统的图层时,QGIS会透明地将它们重新投影到项目CRS。对于某些CRS,存在多种可能的转换方式来重新投影到项目的CRS!

默认情况下,QGIS将尝试使用最准确的可用变换。然而,在某些情况下,这可能是不可能的,例如,每当需要额外的支持文件来使用变换时。每当有更精确的变换可用,但目前无法使用时,QGIS将显示一条信息丰富的警告消息,建议您使用更精确的转换,以及如何在系统上启用它。通常,这需要下载一个变换支持文件的外部包,并将它们解压缩到QGIS 用户配置 文件夹下的 proj 文件夹。

如果需要,QGIS还可以在两个CRS之间进行多种可能的转换时提示您,并允许您做出明智的选择,选择最适合您的数据的转换。

此自定义设置位于 设置► options 选项► 坐标转换 选项卡中的 默认基准面变换 组中:

  • 勾选 checkbox 存在多个时询问基准面变换 :当某源 CRS 与目标 CRS 的组合存在多个适用的基准面转换时,系统将自动弹出对话框,提示用户选择在当前工程中使用哪一个基准面转换。如果在该对话框中选择转换时勾选了 设为默认 复选框,则此选择将被记住,并自动应用于所有后续新建的 QGIS 工程。

  • 或者定义一个适当的基准变换列表,以便在将图层加载到工程或重投影图层时作为默认值使用。

    使用 symbologyAdd 按钮打开 :guilabel:`选择基准面变换`的对话框。然后:

    1. 指定图层的 源CRS ,使用下拉菜单或 setProjection 选择CRS 控件。

    2. 以同样的方式提供 目标CRS

    3. 表中将显示从源到目标的可用变换列表。单击一行显示应用的设置的详细信息,以及相应的变换使用的准确性和区域。

      ../../../_images/datumTransformation.png

      Fig. 6.6 选择首选的默认基准面变换

      在某些情况下,您的系统可能无法使用某些转换功能。此时,该转换仍会显示在此列表中(灰色状态),但需安装所需的转换支持包后才能选择。通常会提供一个按钮用于下载并安装相应的网格文件,该文件将存储在 user profile 目录下的 proj 文件夹。

    4. 找到你喜欢的变换,选择它

    5. 设置右下角的勾选 checkbox 如果首选操作失败,允许回退转换

    6. 单击 确定

      默认基准面变换 下的表中添加一行,其中包含有 源CRS目标CRS 、 为转换应用的:guilabel:操作 和是否启用了 允许回退转换 的信息。

    从现在开始,QGIS将自动使用所选的数据转换在这两个CRS之间进一步转换,直到您将它从列表中移除 (symbologyRemove) 或更改条目 (toggleEditing)。

设置► options 选项► 变换 选项卡中设置的基准面转换将被系统上创建的所有新 QGIS 工程继承。此外,特定工程还可以通过 工程► 工程属性... 中的 Project properties`(工程属性)对话框的 :guilabel:`CRS 选项卡指定其专属的基准面转换。这些设置仅适用于当前工程。