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 :
-
Fig. 6.1 QGIS选项对话框中的CRS选项卡
在:guilabel:图层CRS 选项组中,设置 :guilabel:`当创建新图层或加载没有CRS的图层时`的操作。从以下选择其一:
保留未知CRS (无动作):加载没有 CRS 的图层时,将不会提示选择 CRS,将 CRS 选择推迟到以后。一次加载很多图层时很方便。在 图层 面板中这些图层旁边将会显示
图标。它们也将是无参照的,来自该图层的坐标被视为纯数字的、非地球的值,也就是说,当 :ref:`一个项目被设置为没有CRS时<project_crs> ` ,所有图层的行为都是一样的。
提示CRS :它将提示您手动选择CRS。选择正确的选择是至关重要的,因为一个错误的选择将把你的层放在地球表面的错误位置!有时,随附的元数据将描述层的正确CRS,在其他情况下,您需要联系数据的原始作者以确定要使用的正确CRS。
Tip
将相同的CRS分配给多个没有CRS或在一次操作中有错误CRS的层:
在图层面板中选择图层
使用快捷键 Ctrl+Shift+C ,或者右键单击选中图层以进入CRS选择选菜单
找到并选择正确的CRS
点击 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”),是一种基于经纬度的全球参考系统。您可以通过
中的 CRS处理 选项卡下的 当新工程创建时 设置来更改此默认 CRS(参见 Fig. 6.1)。您可以选择在将第一个图层加载到新工程时自动将工程 CRS 设置为该图层的 CRS,也可以选择另一个 CRS 作为所有新建工程的默认 CRS。此选择将被保存,并在后续的 QGIS 会话中继续使用。
工程的 CRS 也可以通过:menuselection:工程--> 工程属性... 的 CRS 选项卡来设置。也会显示在QGIS状态栏的最右下方。
Fig. 6.2 工程属性对话框
可用的选项包括:
无CRS (或未知/非地球投影)) :勾选此设置将禁用QGIS项目中的所有投影处理,导致所有图层和地图坐标被视为简单的二维笛卡尔坐标,与地球表面的位置无关。它可以用来猜测一个层的CRS(基于其原始坐标),或者当QGIS用于非地球用途时,如角色扮演游戏地图,建筑地图或微观的东西。在这种情况下:在渲染层时不进行重投影:只是使用原始坐标绘制特征。
椭球体被锁定并被迫“没有/平面”
None/Planimetric。距离、面积单位、坐标显示被锁定,强制为“未知单位”;所有的测量都以未知的地图单位进行,不可能进行转换。
或现有的坐标参考系统,可以是地理的、投影的或用户定义的。显示地球上CRS范围的预览,以帮助您选择合适的CRS范围。添加到项目中的图层被实时转换到这个CRS,以便覆盖它们,而不管它们的原始CRS是什么。使用单位和椭球体设置是有意义的,你可以执行相应的计算。
每当您为 QGIS 工程选择一个新的 CRS 时, 中 工程属性 对话框的 通用 选项卡中的测量单位将自动更改为与所选 CRS 匹配的单位。例如,某些 CRS 使用英尺而非米来定义其坐标,因此将 QGIS 工程设置为这类 CRS 时,工程的默认测量单位也会相应地设为英尺。
Tip
从图层设置工程CRS
你可以使用图层的CRS为工程分配一个CRS:
在 图层 面板,右键单击要选择CRS的图层
选择 图层CRS->将图层的CRS设为工程CRS 。
使用图层的CRS重新定义工程的CRS,地图画布范围,坐标显示相应更新,工程中的所有图层都实时转换为新的工程CRS。
6.4. 坐标参照系选择器
Fig. 6.3 CRS选择器
此对话框可帮助您为工程或图层分配坐标参照系统,并提供一组投影数据库。对话框中的元素有:
过滤: 如果你知道 EPSG 代码、标识符或坐标参照系的名称,您可以使用搜索功能来查找它。输入EPSG代码、标识符或名称。
最近使用的坐标参照系 :如果您在日常GIS工作中经常使用某些CRS,这些CRS将显示在此列表中。点击其中一个项目,选择相关的CRS。
预定义坐标参照系 :这是QGIS支持的所有CRS的列表,包括地理、投影和自定义坐标参考系统。请展开列表中适当的节点并选择CRS,已预选活跃的CRS。
PROJ文本 :左下角是PROJ投影引擎使用的CRS字符串。此文本为只读,仅供参考。
如果你想从列表中删除最近使用的CRS,可以通过以下几种方式完成:
CRS选择器还显示所选CRS有效使用的地理区域的粗略预览。许多CRS的设计仅用于小地理区域,您不应该在设计区域之外使用这些CRS。每当从列表中选择CRS时,预览地图就会显示大致的使用区域(红色)。此外,此预览图还显示了当前主画布地图范围的指示器(紫色)。
6.5. 自定义坐标参照系
如果QGIS不提供所需的坐标参照系,则可以定义自定义CRS。要定义CRS,从:menuselection:设置 菜单中选择
自定义投影... .自定义的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:
描述性名称
使用PROJ或WKT格式的制图参数
要创建一个新的CRS:
输入描述性名称
选择格式,它可能是 Proj字符串 或 WKT
输入CRS 参数。
Note
首选以WKT格式存储CRS定义
虽然都支持
Proj String和WKT格式,但强烈建议以WKT格式存储投影定义。因此,如果可用的定义是proj格式,请选择该格式,输入参数,然后切换到WKT格式。QGIS将把定义转换为稍后可以保存的WKT格式。点击 验证 按钮以测试CRS定义是否为有效的投影定义。
Fig. 6.4 自定义CRS对话框界面
您可以测试CRS参数,看看它们是否给出相同的结果。为此,分别在 纬度 and 经度 字段中输入已知的WGS 84纬度和经度值。单击 计算,并将结果与坐标参考系中的已知值进行比较。
6.5.1. 在QGIS中集成NTv2-变换
要在QGIS中集成NTv2变换文件,您还需要一个步骤:
将NTv2文件(.gsb)放在QGIS使用的CRS/Proj文件夹中 例如Windows的
C:\OSGeo4W64\share\proj路径)添加 nadgrids (
+nadgrids=nameofthefile.gsb)到工程定义 参数 字段of the 自定义坐标参照系定义 ().
Fig. 6.5 设置NTv2变换
6.6. 基准变换
在QGIS中,默认启用了“实时动态” CRS转换功能。这意味着,当你使用具有不同坐标系统的图层时,QGIS会透明地将它们重新投影到项目CRS。对于某些CRS,存在多种可能的转换方式来重新投影到项目的CRS!
默认情况下,QGIS将尝试使用最准确的可用变换。然而,在某些情况下,这可能是不可能的,例如,每当需要额外的支持文件来使用变换时。每当有更精确的变换可用,但目前无法使用时,QGIS将显示一条信息丰富的警告消息,建议您使用更精确的转换,以及如何在系统上启用它。通常,这需要下载一个变换支持文件的外部包,并将它们解压缩到QGIS 用户配置 文件夹下的 proj 文件夹。
如果需要,QGIS还可以在两个CRS之间进行多种可能的转换时提示您,并允许您做出明智的选择,选择最适合您的数据的转换。
勾选
存在多个时询问基准面变换 :当某源 CRS 与目标 CRS 的组合存在多个适用的基准面转换时,系统将自动弹出对话框,提示用户选择在当前工程中使用哪一个基准面转换。如果在该对话框中选择转换时勾选了 设为默认 复选框,则此选择将被记住,并自动应用于所有后续新建的 QGIS 工程。或者定义一个适当的基准变换列表,以便在将图层加载到工程或重投影图层时作为默认值使用。
使用
按钮打开 :guilabel:`选择基准面变换`的对话框。然后:以同样的方式提供 目标CRS 。
表中将显示从源到目标的可用变换列表。单击一行显示应用的设置的详细信息,以及相应的变换使用的准确性和区域。
Fig. 6.6 选择首选的默认基准面变换
在某些情况下,您的系统可能无法使用某些转换功能。此时,该转换仍会显示在此列表中(灰色状态),但需安装所需的转换支持包后才能选择。通常会提供一个按钮用于下载并安装相应的网格文件,该文件将存储在 user profile 目录下的
proj文件夹。找到你喜欢的变换,选择它
单击 确定 。
在 默认基准面变换 下的表中添加一行,其中包含有 源CRS 、 目标CRS 、 为转换应用的:guilabel:操作 和是否启用了 允许回退转换 的信息。
从现在开始,QGIS将自动使用所选的数据转换在这两个CRS之间进一步转换,直到您将它从列表中移除 (
) 或更改条目 (
)。
在
选项卡中设置的基准面转换将被系统上创建的所有新 QGIS 工程继承。此外,特定工程还可以通过 中的 Project properties`(工程属性)对话框的 :guilabel:`CRS 选项卡指定其专属的基准面转换。这些设置仅适用于当前工程。
