重要

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

5.1. Lesson: Creating a New Vector Dataset

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

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

5.1.1. ★☆☆ Follow Along: The Layer Creation Dialog

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

  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. ★☆☆ Follow Along: Data Sources

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

获取有关对象的数据有许多不同的方法。例如,您可以使用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. ★☆☆ Try Yourself: Digitizing Polygons

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

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

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

备注

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

备注

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

5.1.4. ★★☆ Follow Along: Using Vertex Editor Table

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

  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. ★☆☆ Try Yourself: Digitizing Lines

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

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

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

../../../_images/track_start_end.png
  1. 如果 roads 图层未包含在地图中,请从您下载的训练数据 exercise_data 文件夹中查找 GeoPackage 文件,并在 training-data.gpkg 里找到 roads 图层,添加到地图。您可以阅读 ★☆☆ Follow Along: Loading vector data from a GeoPackage Database 章节以获取操作指南。

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

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

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

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

  6. 将 type 属性值设置为 path 或 track 。

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

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

5.1.6. In Conclusion

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

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

5.1.7. What's Next?

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