重要

Translation is a community effort you can join. This page is currently translated at 86.76%.

6.1. Lesson: Reprojecting and Transforming Data

让我们再来聊聊坐标参照系 (CRS)。之前简单地讨论过,但没有谈到它的实际含义。

本课目标: 重投影和转换矢量数据集。

6.1.1. ★☆☆ Follow Along: Projections

所有数据以及地图本身现在所在的CRS称为 WGS84 ,这是用于表示数据非常常见的地理坐标系 (GCS)。但有一个问题,我们来看。

  1. 保存当前地图

  2. 然后在 exercise_data/world/world.qgs 找到并打开世界地图工程文件

  3. 使用 放大 工具放大到南非

  4. 尝试在屏幕底部 状态栏比例 字段中设置比例。在南非上方时,将该值设置为 1:5 000 000 (1至500万)。

  5. 在地图周围平移,同时注意 比例 字段

注意到比例变化了吗?这是因为正在远离您在 1:5 000 000 时放大的那个点,该点位于屏幕中心。在这一点的周围,比例是不同的。

知道为什么吗?想想地球仪。它有从北到南连续的线,这些经度线在赤道相距最远,但在两极相遇。

在GCS中,您在使用这个球体,但屏幕是平的。当您试图在平面上表示球体时,就会发生变形,这与您切开网球并试图将其压平时所发生的情况类似。这在地图上的意思是,即使在两极 (它们应该相遇的地方),经度线彼此之间也应该保持相等的距离。意味着当您远离地图上的赤道时,所看到对象的比例会越来越大。实际上,这说明我们的地图没有恒定的比例!

为了解决这个问题,让我们使用投影坐标系 (PCS)。PCS "投影" 或转换数据的方式应考虑比例的变化,并对其进行校正。因此,为了保持比例不变,我们应该使用PCS重投影数据。

6.1.2. ★☆☆ Follow Along: "On the Fly" Reprojection

默认情况下,QGIS "动态" 重投影数据。这意味着,即使数据本身在另一个CRS中,QGIS也可以将其投影为您选择的CRS。

通过单击QGIS右下角的 projectionEnabled 当前投影 按钮,可以更改工程的CRS。

  1. 在出现的对话框中,在 过滤器 字段输入 global 。下面的 预定义坐标参照系 字段应该出现一些CRS。

  2. 单击并选择 WGS 84 / NSIDC EASE-Grid 2.0 Global | EPSG:6933 条目,然后单击 确定

    注意南非的形状是如何变化的。所有的投影都是通过改变地球上对象的表面形状来实现的。

  3. 像之前一样,再次缩放到 1:5 000 000 的比例。

  4. 在地图周围平移。

    注意比例是如何保持不变的!

"动态" 重投影也适用于组合不同CRS中的数据集。

  1. 将另一个矢量图层添加到地图中,该图层仅包含南非的数据。您可以在 exercise_data/world/RSA.shp 找到。

  2. 将其加载。查看CRS的快速方法是将鼠标悬停在图例中的图层上,它是 EPSG:3410

    您注意到了什么?

    即使该图层不同于 各大洲 的CRS,也是可见的。

6.1.3. ★★☆ Follow Along: Saving a Dataset to Another CRS

有时,您需要使用另一个CRS导出现有数据集。正如我们将在下一课中看到的,如果需要对图层进行距离计算,最好将图层置于投影坐标系。

请注意, '动态' 重投影与 工程 有关,而不是单个图层。这意味着,即使在 正确 的位置看到某个图层,该图层也可以具有与工程不同的CRS。

您可以使用另一个CRS轻易导出图层。

  1. training_data.gpkg 添加 buildings 数据集。

  2. 右键单击 图层 面板中的 buildings 图层

  3. 在显示的菜单中选择 导出 ► 要素另存为... ,您将看到 矢量图层另存为... 对话框。

  4. 单击 文件名 字段旁边的 浏览 按钮

  5. 导航至 exercise_data/ 并将新图层的名称指定为 buildings_reprojected.shp

  6. 更改 CRS 的值。下拉菜单中仅显示最近使用的CRS,单击下拉菜单旁边的 setProjection 选择投影 按钮。

  7. 此时将出现 坐标参照系选择器 对话框。在其 过滤器 字段,搜索 34S

  8. 从列表中选择 WGS 84 / UTM zone 34S | EPSG:32734

    ../../../_images/CRSselector.png
  9. 其他选项保持不变, 矢量图层另存为... 对话框现在如下所示:

    ../../../_images/save_vector_dialog.png
  10. 单击 确定

现在,您可以比较图层的新旧投影,并看到它们位于两个不同的CRS中,但仍然重叠。

6.1.4. ★★★ Follow Along: Creating Your Own Projection

默认情况下,除了QGIS中包含的投影之外,还有更多的投影。您还可以创建自己的投影。

  1. 新建一个地图

  2. 加载 world/oceans.shp 数据集

  3. 转到 设置 ► 自定义投影... ,您会看到这个对话框。

    ../../../_images/custom_crs.png
  4. 单击 symbologyAdd 添加新的CRS 按钮创建新投影

  5. 要使用的感兴趣的投影是 Van der Grinten I 。请在 名称 字段输入其名称。

    这个投影表示圆磁场上的地球,而不是像大多数其他投影那样是矩形的。

  6. 格式 中,选择 WKT (推荐)

  7. 参数 字段添加以下字符串:

    PROJCRS["unknown",
        BASEGEOGCRS["unknown",
            DATUM["unknown",
                ELLIPSOID["unknown",6371000,0,
                    LENGTHUNIT["metre",1,
                        ID["EPSG",9001]]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8901]]],
        CONVERSION["unknown",
            METHOD["Van Der Grinten"],
            PARAMETER["Longitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8802]],
            PARAMETER["False easting",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8806]],
            PARAMETER["False northing",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8807]]],
        CS[Cartesian,2],
            AXIS["(E)",east,
                ORDER[1],
                LENGTHUNIT["metre",1,
                    ID["EPSG",9001]]],
            AXIS["(N)",north,
                ORDER[2],
                LENGTHUNIT["metre",1,
                    ID["EPSG",9001]]]]
    
    ../../../_images/new_crs_parameters.png
  8. 单击 确定

  9. 单击状态栏右侧的 projectionEnabled 当前CRS 按钮,更改工程的CRS

  10. 选择新定义的投影 (在 过滤器 字段搜索其名称)

  11. 应用此投影后,地图将重投影,如下所示:

    ../../../_images/van_grinten_projection.png

6.1.5. In Conclusion

不同的投影对应不同的目的。通过选择正确的投影,您可以确保准确表示地图上的要素。

6.1.6. Further Reading

本课 高级 部分的素材摘自 本文

请阅读有关 坐标参照系 的详细信息。

6.1.7. What's Next?

下一课,您将学习如何使用QGIS的各种矢量分析工具分析矢量数据。