5.1. 课: 创建新的矢量数据集

您使用的数据必然来自某处。对于大多数常见的应用程序,数据已经存在;但是,项目越具体、越专业,数据可用的可能性就越小。这种情况下,您需要创建自己的新数据。

本课目标: 创建新的矢量数据集。

5.1.1. basic 跟我做: 图层创建对话框

在添加新的矢量数据之前,需要矢量数据集才能将其添加。在我们的示例中,您将从完全创建新数据开始,而不是编辑现有数据集。因此,首先需要定义自己的新数据集。

  1. 打开QGIS并创建一个新的空白工程。

  2. 导航至并单击菜单项 图层 ► 创建图层 ► 新建Shapefile图层 。您将看到 新建Shapefile图层 对话框,该对话框允许您定义一个新图层。

    ../../../_images/create_vector_layer.png
  3. 单击用于 文件名 字段的 ... 按钮,将弹出保存对话框。

  4. 导航到 exercise_data 目录。

  5. 将新图层另存为 school_property.shp

    在此阶段,确定所需数据集的类型是非常重要的。每种不同的矢量图层类型在后台是以 "不同方式构建" 的,因此一旦创建了图层,就无法更改其类型。

    在下一个练习,我们将创建描述面积的新要素。对于此类要素,需要创建多边形数据集。

  6. 对于 几何图形类型 ,请从下拉菜单中选择 多边形

    ../../../_images/polygon_selected.png

    这对对话框的其余部分没有影响,但会影响在创建矢量数据集时使用正确类型的几何图形。

    下一个字段允许您指定坐标参照系或CRS。CRS是一种将数字坐标与地球表面位置相关联的方法。有关详细信息,请参阅用户手册中的 使用投影

    在本例中,我们将使用与该工程相关联的默认CRS,即WGS84。

    ../../../_images/default_crs.png

    接下来是字段集合,分组在 新建字段 下。默认情况下,新图层只有一个属性,即 id 字段 (您应该在 字段列表 中能看到)。然而,为了使您创建的数据具有实用性,需要说明您将在此新建图层中创建要素的属性。就我们目前的目标而言,添加一个名为 name 的字段就足够了,该字段为 文本数据 ,并且将文本长度限制为 80 个字符。

  7. 如以下设置,然后单击 添加到字段列表 按钮:

    ../../../_images/new_attribute.png
  8. 检查对话框是否如下所示:

    ../../../_images/new_attribute_added.png
  9. 单击 确定

新图层应该出现在 图层 面板。

5.1.2. basic 跟我做: 数据源

当您创建新数据时,它显然必须与地面上存在的对象有关。因此,您需要从某处获取相关信息。

获取有关对象的数据有许多不同的方法。例如,您可以使用GPS捕捉现实世界中的点,然后将数据导入QGIS;或者使用经纬仪测量点,然后手动输入坐标以创建新要素;或者使用数字化过程从遥感数据中追踪对象,比如卫星影像或航空摄影。

在此示例,您将使用数字化方法。教程提供了示例栅格数据集,因此您需要根据实际导入相关数据集。

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

  2. 选择左侧的 raster 栅格

  3. 面板,单击 ... 按钮:

  4. 导航至 exercise_data/raster/

  5. 选择文件 3420C_2010_327_RGB_LATLNG.tif

  6. 单击 打开 关闭对话窗口。

    ../../../_images/add_raster.png
  7. 单击 添加关闭 按钮,图像将加载到地图中。

    ../../../_images/raster_added.png
  8. 如果没有看到航拍图像出现,请选择新图层,右键单击,然后在上下文菜单中选择 缩放到图层

    ../../../_images/zoom_to_raster.png
  9. 单击 zoomIn 放大 按钮,然后放大到下面以蓝色突出显示的区域:

    ../../../_images/map_area_zoom.png

现在,您可以数字化这三块场地:

../../../_images/field_outlines1.png

在开始数字化之前,让我们将 school_property 图层移动到航拍图像上面。

  1. 图层 窗格选择 school_property 图层,将其拖动到顶部。

../../../_images/move_school_layer.png

要开始数字化,需要进入 编辑模式 。GIS软件通常都是这样做,防止意外编辑或删除重要数据。每个图层的编辑模式分别打开或关闭。

要进入 school_property 图层的编辑模式:

  1. 单击 图层 面板中的 school_property 图层,将其选中。

  2. 单击 toggleEditing 切换编辑模式 按钮。

    如果找不到此按钮,请检查 数字化 工具栏是否已启用。 视图 ► 工具栏 ► 数字化 菜单项旁边应该有一个复选标记。

    在编辑模式下,您将发现一些数字化工具已处于激活状态:

    • capturePolygon 添加多边形要素

    • vertexToolActiveLayer 顶点工具

    其他相关按钮仍处于非激活状态,但在我们开始与新数据交互时将变为激活状态。

    请注意, 图层 面板中的图层 school_property 现在有铅笔图标,表示它处于编辑模式。

  3. 单击 capturePolygon 添加多边形要素 按钮开始数字化我们的校园场地。

    您可能会注意到鼠标光标变成了十字形状,这样可以更准确地放置要数字化的点。请记住,即使在使用数字化工具时,也可以通过滚动鼠标滚轮来放大和缩小地图,或是按住鼠标滚轮并在地图中拖动进行平移操作。

    您将数字化的第一个要素是 athletics field:

    ../../../_images/school_area_one.png
  4. 通过单击沿着场地边缘某处的点开始数字化。

  5. 通过沿边缘逐步单击来放置更多点,直到所绘制的形状完全覆盖该区域。

    ../../../_images/school_field_outline.png
  6. 放置最后一点后,右键单击以完成多边形的绘制。这将完成要素绘制并显示 要素属性 对话框。

  7. 填写如下值:

    ../../../_images/school_area_one_attributes.png
  8. 单击 确定 ,您已经创建了一个新要素!

    ../../../_images/new_feature.png
  9. 图层 面板,选择 school_property 图层。

  10. 右键单击,然后在上下文菜单中选择 打开属性表

    ../../../_images/open_attribute_table.png

    在属性表,您将看到刚才添加的要素。在编辑模式下,可以双击要更新的单元格来更新属性数据。

    ../../../_images/feature_table.png
  11. 关闭属性表。

  12. 要保存我们刚刚创建的新要素,请单击 saveEdits 保存图层编辑 按钮。

请记住,如果您在数字化要素时出错,则始终可以在完成创建后对其进行编辑。如果出现错误,请继续数字化,直到完成上述要素的创建。然后:

  1. 单击 vertexToolActiveLayer 顶点工具 按钮。

  2. 将鼠标悬停在要移动的顶点上,然后左键单击该顶点。

  3. 将鼠标移动到顶点的正确位置,然后单击鼠标左键。这会将顶点移动到新位置。

    ../../../_images/select_vertex.png
    ../../../_images/moved_vertex.png

    可以使用相同的步骤移动线段,但需要将鼠标悬停在线段的中点上。

    如果要撤消更改,可以按 undo 撤消 按钮或 Ctrl+Z

  4. 请记住通过单击 saveEdits 保存图层编辑 按钮保存更改。

  5. 编辑完成后,单击 toggleEditing 切换编辑模式 按钮退出编辑模式。

5.1.3. basic 试一试 数字化多边形

使用此图像可以帮助您将学校和上面的场地数字化:

../../../_images/field_outlines1.png

请记住,每个新要素都需要有一个唯一的 id 值!

备注

向图层添加要素后,请记住保存编辑,然后退出编辑模式。

备注

您可以使用之前课程中学习的技术,设置 school_property 的填充、轮廓和标注位置及格式化的样式。

5.1.4. moderate 跟我做: 使用顶点编辑器表格

编辑要素的另一种方法是使用 顶点编辑器 表格,手动输入每个顶点的实际坐标值。

  1. 确保图层 school_property 处于编辑模式。

  2. 如果尚未激活,请单击 vertexToolActiveLayer 顶点工具 按钮。

  3. 将鼠标移到在 school_property 图层创建的一个多边形要素上,然后右键单击。这将选择该要素,并显现 顶点编辑器 窗格。

    ../../../_images/vertex_editor_table.png

    备注

    此表包含要素顶点的坐标。请注意,此要素有七个顶点,但在地图区域只有六个是视觉识别的。仔细检查后,会发现第0行和第6行的坐标相同。这些是要素几何图形的起始和终止顶点,是创建闭合多边形要素所必需的。

  4. 单击并拖动一个框,此框包含选中要素的一个顶点或多个顶点。

    ../../../_images/vertex_select.png

    选中的顶点将变为蓝色, 顶点编辑器 表格将高亮显示相应的行,其中包含顶点的坐标。

    ../../../_images/vertex_selected.png
  5. 要更新坐标,请双击表格中要编辑的单元格,然后输入待更新的值。在本例中,第 4 行的 x 坐标从 20.4450 更新为 20.4444

    ../../../_images/edit_vertex_in_vertex_editor.png
  6. 输入更新的值后,按 Enter 键应用更改。您将看到顶点在地图窗口中移动到新的位置。

  7. 编辑完成后,单击 toggleEditing 切换编辑模式 按钮以退出编辑模式,并保存编辑内容。

5.1.5. basic 试一试 数字化线

我们将数字化两条尚未在道路图层上标记的路线:一条是路径,另一条是轨迹。我们的路径沿着 Railton 郊区的南部边缘延伸,起点和终点为标记道路:

../../../_images/path_start_end.png

我们的轨迹在更往南的地方:

../../../_images/track_start_end.png
  1. 如果 roads 图层未包含在地图中,请从您下载的训练数据 exercise_data 文件夹中查找 GeoPackage 文件,并在 training-data.gpkg 里找到 roads 图层,添加到地图。您可以阅读 跟我做: 从GeoPackage数据库加载矢量数据 章节以获取操作指南。

  2. exercise_data 目录创建一个名为 routes.shp 的新 ESRI Shapefile 线数据集,属性里包含 idtype 两个字段 (请使用上述方法指导操作)。

  3. 激活 routes 图层的编辑模式。

  4. 由于您正在处理线要素,请单击 captureLine 添加线要素 按钮以启动线数字化模式。

  5. 每次一个,在 routes 图层上数字化路径和轨迹。尽量准确地沿着路线走,在拐角或转弯处多增加点。

  6. type 属性值设置为 pathtrack

  7. 使用 图层属性 对话框为 routes 添加样式,可以随意使用不同的路径和轨迹样式。

  8. 保存编辑并按 toggleEditing 切换编辑模式 按钮切换关闭编辑模式。

5.1.6. In Conclusion

现在您知道如何创建要素了!本课程不包括添加点要素,因为一旦您学会处理更复杂的要素 (线和多边形),就没有必要了。它的工作原理完全相同,只需单击一次所需的点的位置,并为其赋予属性,然后就创建了要素。

了解如何数字化非常重要,因为这是 GIS 程序中非常常见的操作。

5.1.7. What's Next?

GIS图层中的要素不仅仅是图片,而且还是空间中的对象。例如,邻接多边形知道它们彼此之间的关系,这称为 拓扑 。在下一课,您将看到一个示例,说明为什么这会很有用。