在 QGIS 中将多边形转换为点的 4 种方法


发布日期 : 2024-04-11 00:51:27 UTC

访问量: 1170 次浏览

什么是地图图表

在 QGIS 中将多边形转换为点,
这对于各种分析非常有用,
例如在多边形内采样或简化复杂的几何形状。
有多种方法可以实现此目的,
具体取决于您的具体需求,
例如在多边形质心、顶点或多边形内以规则间隔创建点。
下面本文将指导使用 QGIS 的几种常见方法。

方法1:提取质心

此方法在每个多边形的质心处创建一个点。

  • 打开 QGIS并加载多边形图层;
  • 转到菜单:矢量>几何工具>质心;
  • 在“质心”对话框中,选择多边形图层作为输入图层;
  • 选择保存输出图层的位置或仅将其作为临时图层添加到地图中;
  • 单击“运行”,然后在该过程完成后关闭对话框;

现在有了一个点图层,
其中每个点代表多边形的质心。

方法2:提取顶点

如果需要多边形每个顶点的点,
则执行以下步骤:

  • 打开 QGIS并加载多边形图层;
  • 转到菜单:矢量>几何工具>提取顶点;
  • 选择多边形图层作为输入图层;
  • 选择输出文件位置或将其添加为临时图层;
  • 单击“运行”,然后单击“关闭”;

此方法将创建一个点图层,
其中多边形的每个顶点都有点。

方法3:多边形内的规则点

要在多边形内以规则的间隔创建点:

  • 打开 QGIS并加载多边形图层;
  • 转到菜单:矢量>研究工具>常规点;
  • 在“常规点”对话框中;
    通过单击带有三个点的按钮并选择“使用图层/画布范围”;
    将多边形图层设置为“范围” ;
  • 指定点间距和点数;
    如果需要,还可以调整网格偏移;
  • 选择输出文件位置或将其添加为临时图层;
  • 单击“运行”,完成后单击“关闭”;

这将生成一个点图层,
其中的点以规则间隔分布在多边形内。
请注意,
如果使用多边形图层的整个范围,
则此方法可能会在多边形外部创建点。
为了避免这种情况,
可使用裁剪工具(在矢量>地理处理工具下)将点图层与原始多边形图层一起裁剪,
确保仅保留多边形内的点。

额外提示

  • 表达式几何工具(位于“矢量” > “几何工具”下)还可用于更复杂的点生成任务,
    允许使用表达式来准确定义点应放置的位置。
  • 对于特定分析,
    请考虑哪种类型的点表示最适合您的需求:
    用于表示多边形“中心”的质心、用于详细边界表示的顶点或用于多边形内采样或分布分析的常规点。

请记住保存工作和新创建的点图层,
以避免丢失数据。

方法4:使用“转换几何类型”将多边形转换为点

  • 打开 QGIS并确保多边形图层已加载到您的项目中;
  • 导航至处理工具箱,可通过菜单打开它:视图>面板>处理工具箱;
    或者,也可以按 Ctrl+Alt+T 键盘。
  • 在处理工具箱中,搜索转换几何类型,
    可以在向量几何下找到它。
  • 双击“转换几何类型”以打开该工具的对话框。
  • 在工具对话框中,设置以下选项:
  • 输入图层:从下拉菜单中选择多边形图层。
  • 几何类型:选择节点。此选项会将多边形转换为点。
    根据 QGIS 版本,
    可能需要选择特定的点几何类型(例如,Point (single),
    如果目标是多点或特定的 CRS,
    则选择单点或其他选项。

选择保存输出图层的位置,
或通过取消选中“保存到文件”选项将其添加为临时图层。
单击“运行”开始转换过程。
该过程完成后,将看到新的点图层添加到您的项目中。

重要考虑因素

  • 点代表什么:“转换几何类型”工具通常会根据输入几何体的顶点创建点。
    对于多边形,
    这意味着将在多边形边界的每个角或弯曲处获得点。
    这与提取质心或在多边形内定期创建点不同。
  • 属性数据:使用“转换几何类型”工具的好处之一是生成的点图层保留了原始多边形图层的属性数据,
    从而可以轻松保持数据连续性。

“转换几何类型”工具提供了一种在 QGIS 中不同几何表示之间转换数据的简单方法,
使其成为各种 GIS 任务和分析的宝贵工具。

以下是一些常见问题:

将多边形转换为质心与将其转换为顶点有什么区别?

将多边形转换为质心以及将其转换为顶点是 GIS 中的两个不同过程,
每个过程都有不同的目的并产生不同类型的点数据。
以下是这两种方法之间的差异的细分:

将多边形转换为质心

  • 过程:此方法涉及计算多边形的几何中心(质心)并在该位置创建一个点。
    质心是构成多边形的所有点的平均位置,
    有效地充当多边形的“质心”。
  • 结果:每个多边形都由一个点表示,
    无论多边形的大小、形状或复杂程度如何。
    这意味着一个复杂的、不规则形状的多边形和一个简单的正方形多边形将分别由位于其各自中心的一个点表示。
  • 使用案例:质心点对于简化空间数据和分析来说非常有用,
    其中单点表示足以表示多边形的位置。
    示例包括绘制行政区域、地块或其他需要中心点进行标记、分析或可视化的要素的中心位置。
  • 属性数据:原始多边形的属性数据通常保存在质心点中,
    这意味着每个质心点都保留其所代表的多边形的属性。

将多边形转换为顶点

  • 过程:此方法涉及在多边形的每个顶点(角)处创建一个点。
    顶点是多边形两条边相交的点,
    每个多边形都是由一系列这些顶点定义的。
  • 结果:多边形由多个点表示,
    点的数量对应于多边形的顶点数量。
    这意味着与简单的多边形相比,
    具有多条边的更复杂的多边形将产生更多的点。
  • 使用案例:顶点对于需要详细边界信息的分析或涉及多边形边的操作或检查的操作非常有用。
    示例包括创建地理特征轮廓的详细点图或进行需要与定义多边形边界的特定点交互的空间分析。
  • 属性数据:每个顶点都继承其父多边形的属性。
    由于单个多边形可以产生多个顶点,
    这意味着属性数据将在多个点上重复,
    每个点对应于原始多边形的一个顶点。

主要差异

  • 表示:质心提供了多边形的简化单点表示,
    对于一般定位目的很有用。
    顶点提供了详细的多点表示,
    可捕获多边形的边界和形状。
  • 生成的点数:转换为质心会导致每个多边形一个点,
    而转换为顶点则会为多边形的每个顶点生成一个点,
    从而导致复杂形状可能会产生大量点。
  • 用例:质心和顶点之间的选择取决于预期的分析或可视化。
    选择质心是为了简单和中心表示,
    而选择顶点是为了详细的边界分析和形状表示。

在决定如何将多边形数据转换为 GIS 中的点时,
了解这些差异至关重要,
确保所选方法符合分析或可视化项目的目标。

可以自动执行多个多边形图层到多个点图层的转换过程吗?

是的,可在 QGIS 中自动执行多个图层或大型数据集的转换过程,
这对于批处理或处理大量空间数据时特别有用。
QGIS 提供了多种自动化任务的方法,
包括使用图形建模器、批处理和使用 Python 控制台编写脚本 (PyQGIS)。
以下是如何利用这些功能自动将多边形转换为点或执行其他重复任务:

1.图形建模器

图形建模器允许通过组合多个处理工具来创建自定义工作流程,
可以通过“处理”>“图形建模器”访问。
在建模器中,
可以定义输入和一系列应用于这些输入的操作(例如将多边形转换为质心、顶点或随机点)。
模型构建完成后,
可通过选择它们作为输入来在多个层或数据集上运行它,
从而有效地自动化该过程。

  • 优点:用户友好的界面,无需编写代码即可创建复杂的工作流程。
  • 使用案例:自动将多个多边形图层转换为其质心或顶点,同时保留属性数据。

2.批处理

QGIS中的许多工具,
包括用于转换几何类型的工具,
都直接支持批处理。
此功能允许一次对多个图层应用相同的操作。

  • 要访问批处理,
    请右键单击处理工具箱中的工具并选择“作为批处理执行”,
    或者打开该工具并单击“作为批处理运行”按钮(如果可用)。
  • 在批处理窗口中,可为要处理的每个层添加多行,
    并为每个层指定单独的参数和输出设置。
  • 优点:可以直接在多个层上运行相同的工具,
    而无需创建模型。
  • 使用案例:在一次操作中将多个多边形图层转换为点图层(例如,质心或顶点)。

3.使用 PyQGIS 编写脚本

为了获得更高级的自动化和灵活性,
可使用 QGIS 中的 Python 控制台或使用 QGIS 的 Python 库 PyQGIS 创建独立脚本。
此方法允许自动执行 QGIS 中的几乎所有任务,
包括复杂的数据处理和分析工作流程。

  • 通过插件 > Python 控制台 访问 QGIS 中的Python 控制台。
  • 可以编写脚本来循环项目中的各层、应用转换过程,甚至集成条件或其他处理步骤。
  • 优点:最大的灵活性和对自动化过程的控制。
  • 使用案例:自动化复杂的工作流程,
    例如将多边形转换为具有特定属性或条件的点,
    进一步处理数据,然后导出结果。

PyQGIS 脚本示例

下面是一个简单的示例脚本,
可以将其用于将多边形图层转换为质心(假设对 Python 和 PyQGIS 有基本的了解):

from qgis.core import QgsProject, QgsProcessingFeatureSourceDefinition, QgsProcessingParameterFeatureSink
import processing

# List all polygon layers in the project
polygon_layers = [layer for layer in QgsProject.instance().mapLayers().values() if layer.geometryType() == QgsWkbTypes.PolygonGeometry]

# Loop through polygon layers and convert each to centroids
for layer in polygon_layers:
    parameters = {
        'INPUT': layer,
        'ALL_PARTS': True,
        'OUTPUT': 'memory:'  # Use 'memory:' for temporary layer or provide a file path to save
    }
    result = processing.run("native:centroids", parameters)
    # Add result to the map (optional)
    QgsProject.instance().addMapLayer(result['OUTPUT'])

该脚本获取当前 QGIS 项目中的所有多边形图层,
将每个图层转换为质心图层,
并将结果添加到项目中。

本文内容来源于网站:https://mapscaping.com/polygon-to-points-in-qgis/#:~:text=To%20create%20points%20at%20regular%20intervals%20inside%20polygons%3A,also%20adjust%20the%20grid%20offset%20if%20needed.%20%E6%9B%B4%E5%A4%9A%E9%A1%B9%E7%9B%AE
由小编整理编译。