Important

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

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. 图层坐标参照系

In order to correctly project data into a specific target CRS, either your data must contain information about its coordinate reference system or you will need to manually assign the correct CRS to the layer. For PostgreSQL layers, QGIS uses the spatial reference identifier that was specified when that PostgreSQL layer was created. For data supported by GDAL, QGIS relies on the presence of a recognized means of specifying the CRS. For instance, for the Shapefile format this is a file containing an ESRI Well-Known Text (WKT) representation of the layer's CRS. This projection file has the same base name as the .shp file and a .prj extension. For example, alaska.shp would have a corresponding projection file named 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是什么。使用单位和椭球体设置是有意义的,你可以执行相应的计算。

If you change your project's CRS and want the units (for distance and area) to match the units defined by the CRS, make sure you have selected Map units in the relevant settings, in the General tab of the Project ► Properties… dialog.

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 选项卡指定其专属的基准面转换。这些设置仅适用于当前工程。