6.1. 课: 重投影和数据转换
让我们再来聊聊坐标参照系 (CRS)。之前简单地讨论过,但没有谈到它的实际含义。
本课目标: 重投影和转换矢量数据集。
6.1.1. 跟我做: 投影
所有数据以及地图本身现在所在的CRS称为 WGS84 ,这是用于表示数据非常常见的地理坐标系 (GCS)。但有一个问题,我们来看。
保存当前地图
然后在
exercise_data/world/world.qgs
找到并打开世界地图工程文件使用 放大 工具放大到南非
尝试在屏幕底部 状态栏 的 比例 字段中设置比例。在南非上方时,将该值设置为
1:5 000 000
(1至500万)。在地图周围平移,同时注意 比例 字段
注意到比例变化了吗?这是因为正在远离您在 1:5 000 000
时放大的那个点,该点位于屏幕中心。在这一点的周围,比例是不同的。
知道为什么吗?想想地球仪。它有从北到南连续的线,这些经度线在赤道相距最远,但在两极相遇。
在GCS中,您在使用这个球体,但屏幕是平的。当您试图在平面上表示球体时,就会发生变形,这与您切开网球并试图将其压平时所发生的情况类似。这在地图上的意思是,即使在两极 (它们应该相遇的地方),经度线彼此之间也应该保持相等的距离。意味着当您远离地图上的赤道时,所看到对象的比例会越来越大。实际上,这说明我们的地图没有恒定的比例!
为了解决这个问题,让我们使用投影坐标系 (PCS)。PCS "投影" 或转换数据的方式应考虑比例的变化,并对其进行校正。因此,为了保持比例不变,我们应该使用PCS重投影数据。
6.1.2. 跟我做: "动态" 重投影
默认情况下,QGIS "动态" 重投影数据。这意味着,即使数据本身在另一个CRS中,QGIS也可以将其投影为您选择的CRS。
通过单击QGIS右下角的 当前投影 按钮,可以更改工程的CRS。
在出现的对话框中,在 过滤器 字段输入
global
。下面的 预定义坐标参照系 字段应该出现一些CRS。单击并选择 WGS 84 / NSIDC EASE-Grid 2.0 Global | EPSG:6933 条目,然后单击 确定 。
注意南非的形状是如何变化的。所有的投影都是通过改变地球上对象的表面形状来实现的。
像之前一样,再次缩放到
1:5 000 000
的比例。在地图周围平移。
注意比例是如何保持不变的!
"动态" 重投影也适用于组合不同CRS中的数据集。
将另一个矢量图层添加到地图中,该图层仅包含南非的数据。您可以在
exercise_data/world/RSA.shp
找到。将其加载。查看CRS的快速方法是将鼠标悬停在图例中的图层上,它是
EPSG:3410
。您注意到了什么?
即使该图层不同于 各大洲 的CRS,也是可见的。
6.1.3. 跟我做: 将数据集保存到另一个CRS
有时,您需要使用另一个CRS导出现有数据集。正如我们将在下一课中看到的,如果需要对图层进行距离计算,最好将图层置于投影坐标系。
请注意, '动态' 重投影与 工程 有关,而不是单个图层。这意味着,即使在 正确 的位置看到某个图层,该图层也可以具有与工程不同的CRS。
您可以使用另一个CRS轻易导出图层。
从
training_data.gpkg
添加buildings
数据集。右键单击 图层 面板中的
buildings
图层在显示的菜单中选择 矢量图层另存为... 对话框。
,您将看到单击 文件名 字段旁边的 浏览 按钮
导航至
exercise_data/
并将新图层的名称指定为buildings_reprojected.shp
。此时将出现 坐标参照系选择器 对话框。在其 过滤器 字段,搜索
34S
。从列表中选择 WGS 84 / UTM zone 34S | EPSG:32734
其他选项保持不变, 矢量图层另存为... 对话框现在如下所示:
单击 确定
现在,您可以比较图层的新旧投影,并看到它们位于两个不同的CRS中,但仍然重叠。
6.1.4. 跟我做: 创建自己的投影
默认情况下,除了QGIS中包含的投影之外,还有更多的投影。您还可以创建自己的投影。
新建一个地图
加载
world/oceans.shp
数据集转到
,您会看到这个对话框。要使用的感兴趣的投影是
Van der Grinten I
。请在 名称 字段输入其名称。这个投影表示圆磁场上的地球,而不是像大多数其他投影那样是矩形的。
在 格式 中,选择 WKT (推荐)
在 参数 字段添加以下字符串:
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]]]]
单击 确定
选择新定义的投影 (在 过滤器 字段搜索其名称)
应用此投影后,地图将重投影,如下所示:
6.1.5. In Conclusion
不同的投影对应不同的目的。通过选择正确的投影,您可以确保准确表示地图上的要素。
6.1.6. Further Reading
本课 高级 部分的素材摘自 本文 。
请阅读有关 坐标参照系 的详细信息。
6.1.7. What's Next?
下一课,您将学习如何使用QGIS的各种矢量分析工具分析矢量数据。