Important

翻译是一项社区工作:ref:你可以加入<translation_guidelines>。此页面目前翻译进度为 87.91%。

2.2. 课程:开始添加图层

我们将启动应用程序,并创建一个用于示例和练习的基本地图。

本课目标: 从示例地图开始。

Note

在开始本练习之前,必须在计算机上安装QGIS。此外,你应该还下载了 示例数据 供使用。

取决于安装时的配置方式,你可以从桌面快捷方式、菜单项等启动QGIS。

Note

本课程的截图取自Linux环境中运行的QGIS 3.4版本。在不同的操作系统或软件版本下,你看到的屏幕可能会有所不同。但同样的按钮作用是一样的,课程提到的操作步骤也适用于任何操作系统。使用本课程需要 QGIS 3.4 (撰写本文时的最新版本)。

让我们马上开始吧!

2.2.1. ★☆☆ 跟着做:制作简单的地图

  1. 打开QGIS,你会看到一张新的空白地图。

    ../../../_images/add_blank_qgis.png
  2. 数据源管理器 对话框能用来选择加载不同类型的数据,我们将使用它载入数据集:单击 dataSourceManager 打开数据源管理器 按钮。

    如果找不到该图标,请检查 视图 ► 工具栏 菜单中的 数据源管理器 工具栏是否已启用。

    ../../../_images/add_data_dialog.png
  3. 加载 protected_areas.shp 矢量数据集:

    1. 单击 矢量 选项卡。

    2. 启用 radioButtonOn文件 源类型。

    3. 按 矢量数据集 旁边的 ... 按钮。

    4. 选择课程目录中 exercise_data/shapefile/protected_areas.shp 这个文件。

    5. 单击 打开 。你将回到原来的对话框,其中填写好了文件路径。

      ../../../_images/add_vector_dialog.png
    6. 单击此处的 添加 按钮,QGIS会从你指定的文件中加载数据:现在你可以在 图层 面板 (左下方) 中看到 protected_areas 这一行,图层要素同时显示在主地图画布中。

      ../../../_images/first_loaded_layer.png

祝贺!你创建了一张简单的地图。此时最好保存这个项目。

  1. 单击 另存为 按钮: fileSaveAs

  2. 将地图保存在和 exercise_data 并列的 solution 文件夹中,并命名为 basic_map.qgz 。

2.2.2. ★☆☆ 自己动手:

重复上述步骤,将同一文件夹 (exercise_data/shapefile) 中的 places.shp 和 rivers.shp 添加为地图上的图层。

2.2.3. ★☆☆ 跟着做:从GeoPackage数据库中载入矢量数据

一个数据库文件中可以存储大量相互关联的数据。你可能已经接触过数据库管理系统 (DBMS),如 Libreoffice Base 或 MS Access。GIS应用程序也可以使用数据库。GIS专用的DBMS (如PostGIS) 相比普通DBMS具有更多的功能,用于处理空间数据。

GeoPackage 开放格式是一个容器,允许你在单个文件中储存GIS数据 (图层)。与 ESRI Shapefile 格式 (例如,你之前加载的 protected_areas.shp 数据集) 不同,单个GeoPackage文件可以包含不同坐标参照系的各种数据 (矢量和栅格数据),以及不包含空间信息的表格。使用这些功能,你可以轻松共享数据并避免文件重复。

为了从GeoPackage加载图层,首先需要创建与该图层的连接:

  1. 单击 dataSourceManager 打开数据源管理器 按钮。

  2. 在左侧单击 newGeoPackageLayer GeoPackage 选项卡。

  3. 单击 新建 按钮,浏览并找到 exercise_data 文件夹中的 training_data.gpkg 文件。

  4. 选择文件并按 打开 按钮,文件路径现在已添加到Geopackage连接列表,并显示在下拉菜单中。

现在,你可以把这个GeoPackage中的任何图层添加到QGIS。

  1. 单击 连接 按钮。在窗口的中心部分,你现在应该可以看到GeoPackage文件中包含的所有图层的列表。

  2. 选择``roads``图层并点击 添加 按钮。

    ../../../_images/add_data_dialog_geopackage.png

    可以看到 roads 图层被添加到 图层 面板,其中的要素显示在地图画布上。

  3. 单击 关闭 。

真不错!你已经从GeoPackage加载了首个图层。

2.2.4. ★☆☆ Follow Along: Loading vector data from a SpatiaLite Database with the Browser

QGIS提供了对许多其他数据库格式的访问。与GeoPackage一样,SpatiaLite数据库格式也是SQLite库的扩展。从SpatiaLite提供程序添加图层时,遵循与上述相同的规则:创建连接 --> 启用 --> 添加图层。

虽然这是SpatiaLite数据添加到地图的一种方法,但并不妨碍我们探索另一种添加数据的强大方法: 浏览器 。

  1. 单击 dataSourceManager 图标打开 数据源管理器 窗口。

  2. 单击 fileOpen 浏览器 选项卡。

  3. 在此选项卡,您可以看见连接到计算机的所有存储磁盘,以及左侧大多数选项卡的条目。它们允许快速访问连接的数据库或文件夹。

    例如,单击 geoPackage GeoPackage 条目旁边的下拉图标,您将看到我们之前连接的 training-data.gpkg 文件 (及其图层 - 如果展开的话)。

  4. 右键单击 spatialite SpatiaLite 条目并选择 新建连接... 。

  5. 导航至 exercise_data 文件夹,选择 landuse.sqlite 文件,然后单击 打开 。

    请注意,已在 SpatiaLite 下添加了 dbSchema landuse.sqlite 条目。

  6. 展开 dbSchema landuse.sqlite 条目。

  7. Double-click the polygonLayer landuse layer or select and drag-and-drop it onto the map canvas. A new layer is added to the Layers panel and its features are displayed on the map canvas.

    ../../../_images/spatialite_dialog_connected.png

Tip

在 视图 ► 面板 ► 中启用 浏览器 面板,并使用它添加数据。这是 数据源管理器 ► 浏览器 选项卡的便捷快捷方式,并具有相同的功能。

Note

一定要经常保存您的工程哦!工程文件本身不包含任何数据,但它会记住您加载到地图中的图层。

2.2.5. ★★☆ Try Yourself: Load More Vector Data

请使用上述任意方法将以下数据集从 exercise_data 文件夹加载到地图:

  • buildings

  • water

2.2.6. Follow Along: Reordering the Layers

图层列表中的图层在地图上按特定顺序绘制。首先绘制列表底部的图层,最后绘制顶部的图层。通过更改它们在列表中的显示顺序,可以更改绘制顺序。

Note

可以使用 图层顺序 面板下的 控制渲染顺序 复选框更改此行为。但是,我们暂时不会讨论此功能。

在这个阶段,图层加载到地图中的顺序可能不符合逻辑。road 图层可能完全隐藏,因为其他图层位于其上面。

例如,这个图层顺序...

../../../_images/incorrect_layer_order.png

... 将导致 roads 和 places 在 landuse 图层的多边形 下面 运行时被隐藏。

要解决此问题,请执行以下操作:

  1. 单击并拖动图层列表中的图层。

  2. 将其重新排序,如下所示:

../../../_images/correct_layer_order.png

您会看到,现在的地图在视觉上更有意义,roads 和 buildings 出现在 landuse 区域的上方。

2.2.7. 总结

现在,您已经从几个不同的源添加了所需的所有图层,并创建了一个基本地图!

2.2.8. 接下来是?

现在您已经熟悉了 打开数据源管理器 按钮的基本功能,但是其他方面呢?这个界面是如何工作的?在继续之前,让我们先来了解一下与QGIS界面的一些基本交互操作。这是下一课的主题。