27.1.17. 向量常规
27.1.17.1. 指定投影
将新投影指定给矢量层。
它创建一个新的层,其特征和几何与输入的层完全相同,但分配给新的CRS。这些几何图形是 not 重新投射后,他们只是被分配到不同的CRS。
该算法可用于修复已分配错误投影的层。
此算法不会修改属性。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
CRS错误或缺失的矢量层 |
Assigned CRS |
|
[crs] 默认: |
选择要分配给向量层的新CRS |
Assigned CRS 任选 |
|
[same as input] 默认: |
指定输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Assigned CRS |
|
[same as input] |
具有指定投影的矢量层 |
Python代码
Algorithm ID : native:assignprojection
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.2. 批量Nominatim地理编码器
使用Nominatim服务对输入图层字符串字段执行批处理地理编码。输出层将具有反映地理编码位置的点几何以及与地理编码位置相关联的多个属性。
允许 features in-place modification 点要素的数量
备注
此算法符合 usage policy 由OpenStreetMap基金会提供的Nominatim地理编码服务。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
用于对要素进行地理编码的矢量图层 |
Address field |
|
[tablefield: string] |
包含要进行地理编码的地址的字段 |
Geocoded |
|
[vector: point] 默认: |
指定仅包含地理编码地址的输出图层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Geocoded |
|
[vector: point] |
具有与地理编码地址对应的点要素的矢量图层 |
Python代码
Algorithm ID : native:batchnominatimgeocoder
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.3. 将层转换为空间书签
创建与图层中包含的要素范围相对应的空间书签。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: line, polygon] |
输入向量层 |
Bookmark destination |
|
[enumeration] 默认:0 |
选择书签的目的地。以下选项之一:
|
Name field |
|
[expression] |
将为生成的书签指定名称的字段或表达式 |
Group field |
|
[expression] |
将为生成的书签提供组的字段或表达式 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Count of bookmarks added |
|
[number] |
Python代码
Algorithm ID : native:layertobookmarks
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.4. 将空间书签转换为层
为存储的空间书签创建包含多边形要素的新图层。可以将导出过滤为仅属于当前项目的书签、所有用户书签或两者的组合。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Bookmark source |
|
[enumeration] [list] 默认: [0,1] |
选择书签的来源(S)。以下一项或多项:
|
Output CRS |
|
[crs] 默认: |
输出层的CRS |
Output |
|
[vector: polygon] 默认: |
指定输出层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Output |
|
[vector: polygon] |
输出(书签)向量层 |
Python代码
Algorithm ID : native:bookmarkstolayer
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.5. 创建属性索引
针对属性表的字段创建索引以加快查询速度。对索引创建的支持取决于层的数据提供程序和字段类型。
不创建输出:索引存储在层本身上。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
选择要为其创建属性索引的矢量图层 |
Attribute to index |
|
[tablefield: any] |
向量层的场 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Indexed layer |
|
[same as input] |
具有指定字段索引的输入矢量图层的副本 |
Python代码
Algorithm ID : native:createattributeindex
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.6. 创建空间索引
创建索引以根据要素的空间位置加快对图层中要素的访问速度。对空间索引创建的支持取决于层的数据提供程序。
不会创建新的输出层。
Default menu :
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
输入向量层 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
索引层 |
|
[same as input] |
具有空间索引的输入矢量图层的副本 |
Python代码
Algorithm ID : native:createspatialindex
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.7. 定义shapefile投影
将现有Shapefile格式数据集的CRS(投影)设置为提供的CRS。当shapefile格式的数据集缺少 prj
文件,您就知道正确的投影。
与之相反 指定投影 算法时,它会修改当前层,并且不会输出新层。
备注
对于shapefile数据集, .prj
和 .qpj
文件将被覆盖-或在丢失时创建-以与提供的CRS匹配。
Default menu :
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
缺少投影信息的矢量图层 |
CRS |
|
[crs] |
选择要分配给向量层的CRS |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
|
[same as input] |
具有定义的投影的输入矢量图层 |
Python代码
Algorithm ID : qgis:definecurrentprojection
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.8. 删除重复的几何图形
查找并删除重复的几何图形。
属性不会被选中,因此如果两个要素具有相同的几何图形但不同的属性,则只会将其中一个要素添加到结果层。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
要清理的具有重复几何的图层 |
Cleaned |
|
[same as input] 默认: |
指定输出层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Count of discarded duplicate records |
|
[number] |
丢弃重复记录的计数 |
Cleaned |
|
[same as input] |
不包含任何复制几何的输出图层 |
Count of retained records |
|
[number] |
唯一记录数 |
Python代码
Algorithm ID : native:deleteduplicategeometries
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.9. 按属性删除重复项
通过仅考虑指定的一个或多个字段来删除重复行。将保留第一个匹配的行,并丢弃重复的行。
或者,可以将这些重复记录保存到单独的输出以供分析。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
输入层 |
Fields to match duplicates by |
|
[tablefield: any] [list] |
定义重复项的字段。所有这些字段的值都相同的要素被视为重复要素。 |
Filtered (no duplicates) |
|
[same as input] 默认: |
指定包含唯一要素的输出图层。以下选项之一:
还可以在此处更改文件编码。 |
Filtered (duplicates) 任选 |
|
[same as input] 默认: |
指定仅包含副本的输出层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Filtered (duplicates) 任选 |
|
[same as input] 默认: |
包含已移除要素的矢量层。如果未指定,则不会生成(保留为 |
Count of discarded duplicate records |
|
[number] |
丢弃重复记录的计数 |
Filtered (no duplicates) |
|
[same as input] |
包含独特功能的矢量层。 |
Count of retained records |
|
[number] |
唯一记录数 |
Python代码
Algorithm ID : native:removeduplicatesbyattribute
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.10. 检测数据集更改
比较两个矢量层,并确定在这两个矢量层之间哪些要素保持不变、添加或删除。它用于比较同一数据集的两个不同版本。

图 27.46 检测数据集更改示例
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Original layer |
|
[vector: any] |
被视为原始版本的矢量层 |
Revised layer |
|
[vector: any] |
修订或修改的矢量层 |
Attributes to consider for match 任选 |
|
[tablefield: any] [list] |
要考虑进行匹配的属性。默认情况下,将比较所有属性。 |
Geometry comparison behavior 任选 |
|
[enumeration] 默认:1 |
定义比较的标准。选项:
|
Unchanged features 任选 |
|
[vector: same as Original layer] |
指定包含未更改要素的输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
Added features 任选 |
|
[vector: same as Original layer] |
指定包含添加的要素的输出矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
Deleted features 任选 |
|
[vector: same as Original layer] |
指定包含已删除要素的输出矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Unchanged features |
|
[vector: same as Original layer] |
包含未更改要素的矢量层。 |
Added features |
|
[vector: same as Original layer] |
包含添加的要素的矢量层。 |
Deleted features |
|
[vector: same as Original layer] |
包含已删除要素的矢量层。 |
Count of unchanged features |
|
[number] |
未更改的要素计数。 |
Count of features added in revised layer |
|
[number] |
添加到修订后的图层中的要素计数。 |
Count of features deleted from original layer |
|
[number] |
从原始图层中删除的要素计数。 |
Python代码
Algorithm ID : native:detectvectorchanges
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.11. 丢弃几何图形
创建一个简单的 geometryless 输入层属性表的副本。它保留源层的属性表。
如果文件保存在本地文件夹中,则可以在多种文件格式之间进行选择。
允许 features in-place modification 点、线和面要素的
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
输入向量层 |
Dropped geometries |
|
[table] |
指定输出的无几何层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Dropped geometries |
|
[table] |
输出的无几何层。原始属性表的副本。 |
Python代码
Algorithm ID : native:dropgeometries
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.12. 执行SQL
仅根据SELECT WITH运行简单或复杂的查询 SQL
源层上的语法。
输入数据源使用标识为 input1
, input2
..。 inputN
一个简单的查询将如下所示 SELECT * FROM input1
。
除了简单的查询之外,还可以在 SQL query
参数本身。如果此算法在处理模型中执行,并且您希望将模型输入用作查询的参数,则这尤其有用。查询的示例如下所示 SELECT * FROM [% @table %]
哪里 @table
是标识模型输入的变量。
查询结果将作为新层添加。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Additional input datasources (called input1, .., inputN in the query) |
|
[vector: any] [list] |
要查询的层的列表。在SQL编辑器中,您可以将这些层与其 real 名称或同时使用 input1 , input2 , inputN 取决于选择了多少层。 |
SQL query |
|
[string] |
键入您的SQL查询字符串,例如 |
Unique identifier field 任选 |
|
[string] |
指定具有唯一ID的列 |
Geometry field 任选 |
|
[string] |
指定几何图形字段 |
Geometry type 任选 |
|
[enumeration] 默认:0 |
选择结果的几何图形。默认情况下,算法将自动检测它。以下选项之一:
|
CRS 任选 |
|
[crs] |
要分配给输出图层的CRS |
SQL Output |
|
[vector: any] 默认: |
指定查询创建的输出层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
SQL Output |
|
[vector: any] |
由查询创建的矢量图层 |
Python代码
Algorithm ID : qgis:executesql
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.13. 将层导出为DXF
将层导出为DXF文件。对于每个层,可以选择其值用于在DXF输出中分割生成的目标层中的要素的字段。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layers |
|
[vector: any] [list] |
要导出的输入向量层 |
Symbology mode |
|
[enumeration] 默认:0 |
要应用于输出层的符号类型。您可以在以下选项之间进行选择:
|
Symbology scale |
|
[scale] 默认:1:1 000 000 |
数据导出的默认比例。 |
Encoding |
|
[enumeration] |
要应用于层的编码。 |
CRS |
|
[crs] |
选择输出层的CRS。 |
Use layer title as name |
|
[boolean] 默认:FALSE |
使用层标题(在QGIS中设置)而不是层名称命名输出层。 |
Force 2D |
|
[boolean] 默认:FALSE |
|
Export labels as MTEXT elements |
|
[boolean] 默认:FALSE |
将标签导出为多行文字或文字元素 |
DXF |
|
[file] 默认: |
输出DXF文件的规范。以下选项之一:
|
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
DXF |
|
[file] |
|
Python代码
Algorithm ID : native:dxfexport
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.14. 提取所选要素
将选定要素另存为新图层。
备注
如果选定的层没有选定的要素,则新创建的层将为空。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
要从中保存所选内容的图层 |
Selected features |
|
[same as input] 默认: |
指定选定要素的矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Selected features |
|
[same as input] |
仅包含选定要素的矢量层,如果未选择任何要素,则不包含任何要素。 |
Python代码
Algorithm ID : native:saveselectedfeatures
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.15. 提取shapefile编码
提取嵌入在shapefile中的属性编码信息。无论是由可选的 .cpg
文件中显示的所有编码详细信息 .dbf
考虑了LDID报头块。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
ESRI Shapefile ( |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Shapefile encoding |
|
[string] |
对输入文件中指定的信息进行编码 |
CPG encoding |
|
[string] |
对任何可选的 |
LDID encoding |
|
[string] |
中指定的编码信息 |
Python代码
Algorithm ID : native:shpencodinginfo
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.16. 查找投影
创建候选坐标参考系的候选列表,例如为具有未知投影的层创建候选坐标参考系的候选列表。
层预期覆盖的区域必须通过目标区域参数指定。该目标区域的坐标参考系必须为QGIS所知。
该算法的操作方法是在每个已知的参考系中测试该层的范围,然后列出如果该层在该投影中,其边界将位于目标区域附近的任何边界。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
具有未知投影的层 |
Target area for layer (xmin, xmax, ymin, ymax) |
|
[extent] |
层覆盖的区域。 可用的方法包括:
|
CRS candidates |
|
[table] 默认: |
为CRS建议(EPSG代码)指定表格(无几何层)。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
CRS candidates |
|
[table] |
包含匹配标准的所有CRS(EPSG代码)的表。 |
Python代码
Algorithm ID : qgis:findprojection
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.17. 扁平化关系
将展平为 relationship 对于矢量层,导出每个相关子要素包含一个父要素的单个层。该主特征包含相关特征的所有属性。这允许将关系作为纯表,例如可以导出到CSV。

图 27.47 具有相关子项的区域的形式(左)-每个相关子项的重复区域要素,以及连接的属性(右)
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
具有应取消规格化的关系的图层 |
Flattened Layer 任选 |
|
[same as input] 默认: |
指定输出(展平)层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Flattened layer |
|
[same as input] |
包含具有相关要素的所有属性的主要素的图层 |
Python代码
Algorithm ID : native:flattenrelationships
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.18. 按字段值连接属性
获取一个输入向量层,并创建一个新的向量层,该向量层是输入向量层的扩展版本,其属性表中包含其他属性。
附加属性及其值取自第二个矢量层。在它们中的每一个中选择一个属性来定义联接条件。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
输入向量层。输出层将由该层的要素和第二层中匹配要素的属性组成。 |
Table field |
|
[tablefield: any] |
用于连接的源图层字段 |
Input layer 2 |
|
[vector: any] |
具有要连接的属性表的图层 |
Table field 2 |
|
[tablefield: any] |
用于连接的第二个(连接)层的字段该字段的类型必须等于(或兼容)输入表字段类型。 |
Layer 2 fields to copy 任选 |
|
[tablefield: any] [list] |
选择要添加的特定字段。默认情况下,将添加所有字段。 |
Join type |
|
[enumeration] 默认:1 |
最终连接的层的类型。以下选项之一:
|
Discard records which could not be joined |
|
[boolean] 默认值:True |
如果不想保留无法连接的要素,请选中 |
Joined field prefix 任选 |
|
[string] |
为连接的字段添加前缀,以便轻松识别它们并避免字段名冲突 |
Joined layer 任选 |
|
[same as input] 默认: |
指定连接的输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
Unjoinable features from first layer 任选 |
|
[same as input] 默认: |
从第一个层指定不可连接要素的输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Number of joined features from input table |
|
[number] |
|
Unjoinable features from first layer 任选 |
|
[same as input] |
包含非匹配要素的矢量图层 |
Joined layer 任选 |
|
[same as input] |
输出具有来自连接的添加属性的矢量图层 |
Number of unjoinable features from input table 任选 |
|
[number] |
Python代码
Algorithm ID : native:joinattributestable
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.19. 按位置连接属性
获取一个输入向量层,并创建一个新的向量层,该向量层是输入向量层的扩展版本,其属性表中包含其他属性。
附加属性及其值取自第二个矢量层。应用空间条件来从第二个层选择添加到第一个层的每个要素的值。
Default menu :
参见
探索空间关系
几何谓词是布尔函数,用于通过比较要素的几何形状是否以及如何共享一部分空间来确定要素与另一个要素之间的空间关系。

图 27.48 查找层之间的空间关系
使用上图,我们通过将绿色圆圈与橙色矩形特征进行空间比较来寻找绿色圆圈。可用的几何谓词包括:
- Intersect
测试一个几何体是否与另一个几何体相交。如果几何图形在空间上相交(共享空间的任何部分-重叠或接触),则返回1(真),如果它们不相交,则返回0。在上图中,这将返回圆圈1、2和3。
- Contain
返回1(TRUE)当且仅当b没有点位于a的外部,并且b的内部至少有一个点位于a的内部。在图片中,没有圆被返回,但如果你反过来寻找它,这个矩形将是,因为它完全包含圆1。这与 are within 。
- Disjoint
如果几何图形不共享任何部分的空间(没有重叠,没有接触),则返回1(真)。只返回圆4。
- Equal
当且仅当几何图形完全相同时,返回1(TRUE)。不会退回任何圆圈。
- Touch
测试一个几何体是否与另一个几何体接触。如果几何图形至少有一个共同点,但其内部不相交,则返回1(TRUE)。只返回圆3。
- Overlap
测试一个几何体是否与另一个几何体重叠。如果几何图形共享空间、维度相同,但不完全包含在彼此之间,则返回1(TRUE)。只返回圆2。
- Are within
测试一个几何体是否在另一个几何体中。如果几何图形a完全位于几何图形b内部,则返回1(真)。仅返回圆1。
- Cross
如果提供的几何图形具有一些(但不是全部)公共内点,并且实际交叉点的尺寸低于提供的最高几何图形,则返回1(TRUE)。例如,一条与多边形相交的直线将作为一条直线相交(True)。相交的两条线将作为一个点相交(True)。两个多边形作为一个多边形交叉(FALSE)。在图片中,不会返回任何圆圈。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Join to features in |
|
[vector: any] |
输入向量层。输出层将由该层的要素和第二层中匹配要素的属性组成。 |
Where the features |
|
[enumeration] [list] 默认: [0] |
源要素与目标要素应具有的空间关系类型,以便将它们连接起来。以下一项或多项:
如果选择了多个条件,则必须满足其中至少一个条件(或运算)才能提取特征。 |
By comparing to |
|
[vector: any] |
连接层。此向量层的要素将 add 如果它们满足空间关系,则将它们的属性添加到源层属性表中。 |
Fields to add (leave empty to use all fields) 任选 |
|
[tablefield: any] [list] |
选择要从连接层添加的特定字段。默认情况下,将添加所有字段。 |
Join type |
|
[enumeration] |
最终连接的层的类型。以下选项之一:
|
Discard records which could not be joined |
|
[boolean] 默认:FALSE |
从输出中移除无法连接的输入图层要素 |
Joined field prefix 任选 |
|
[string] |
为连接的字段添加前缀,以便轻松识别它们并避免字段名冲突 |
Joined layer 任选 |
|
[same as input] 默认: |
指定连接的输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
Unjoinable features from first layer 任选 |
|
[same as input] 默认: |
从第一个层指定不可连接要素的输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Number of joined features from input table |
|
[number] |
|
Unjoinable features from first layer 任选 |
|
[same as input] |
非匹配要素的矢量层 |
Joined layer |
|
[same as input] |
输出具有来自连接的添加属性的矢量图层 |
Python代码
Algorithm ID : native:joinattributesbylocation
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.20. 按位置连接属性(摘要)
获取一个输入向量层,并创建一个新的向量层,该向量层是输入向量层的扩展版本,其属性表中包含其他属性。
附加属性及其值取自第二个矢量层。应用空间条件来从第二个层选择添加到第一个层的每个要素的值。
该算法计算来自第二层中匹配特征的值的统计汇总(例如,最大值、平均值等)。
参见
探索空间关系
几何谓词是布尔函数,用于通过比较要素的几何形状是否以及如何共享一部分空间来确定要素与另一个要素之间的空间关系。

图 27.49 查找层之间的空间关系
使用上图,我们通过将绿色圆圈与橙色矩形特征进行空间比较来寻找绿色圆圈。可用的几何谓词包括:
- Intersect
测试一个几何体是否与另一个几何体相交。如果几何图形在空间上相交(共享空间的任何部分-重叠或接触),则返回1(真),如果它们不相交,则返回0。在上图中,这将返回圆圈1、2和3。
- Contain
返回1(TRUE)当且仅当b没有点位于a的外部,并且b的内部至少有一个点位于a的内部。在图片中,没有圆被返回,但如果你反过来寻找它,这个矩形将是,因为它完全包含圆1。这与 are within 。
- Disjoint
如果几何图形不共享任何部分的空间(没有重叠,没有接触),则返回1(真)。只返回圆4。
- Equal
当且仅当几何图形完全相同时,返回1(TRUE)。不会退回任何圆圈。
- Touch
测试一个几何体是否与另一个几何体接触。如果几何图形至少有一个共同点,但其内部不相交,则返回1(TRUE)。只返回圆3。
- Overlap
测试一个几何体是否与另一个几何体重叠。如果几何图形共享空间、维度相同,但不完全包含在彼此之间,则返回1(TRUE)。只返回圆2。
- Are within
测试一个几何体是否在另一个几何体中。如果几何图形a完全位于几何图形b内部,则返回1(真)。仅返回圆1。
- Cross
如果提供的几何图形具有一些(但不是全部)公共内点,并且实际交叉点的尺寸低于提供的最高几何图形,则返回1(TRUE)。例如,一条与多边形相交的直线将作为一条直线相交(True)。相交的两条线将作为一个点相交(True)。两个多边形作为一个多边形交叉(FALSE)。在图片中,不会返回任何圆圈。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Join to features in |
|
[vector: any] |
输入向量层。输出层将由该层的要素和第二层中匹配要素的属性组成。 |
Where the features |
|
[enumeration] [list] 默认: [0] |
源要素与目标要素应具有的空间关系类型,以便将它们连接起来。以下一项或多项:
如果选择了多个条件,则必须满足其中至少一个条件(或运算)才能提取特征。 |
By comparing to |
|
[vector: any] |
连接层。此向量层的要素将 add 如果它们满足空间关系,则将它们的属性汇总到源层属性表中。 |
Fields to summarize (leave empty to use all fields) 任选 |
|
[tablefield: any] [list] |
选择要从连接层添加的特定字段。默认情况下,将添加所有字段。 |
Summaries to calculate (leave empty to use all fields) 任选 |
|
[enumeration] [list] 默认:[] |
对于每个输入要素,将计算其匹配要素的关联字段的统计信息。以下一项或多项:
|
Discard records which could not be joined |
|
[boolean] 默认:FALSE |
从输出中移除无法连接的输入图层要素 |
Joined layer |
|
[same as input] 默认: |
指定连接的输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Joined layer |
|
[same as input] |
从连接中输出具有汇总属性的矢量图层 |
Python代码
Algorithm ID : qgis:joinbylocationsummary
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.21. 按最近点连接属性
获取一个输入向量层,并在其属性表中创建一个具有附加字段的新向量层。附加属性及其值取自第二个矢量层。通过从每个层查找最接近的要素来关联要素。
默认情况下,仅关联最近的要素,但该关联也可以关联到k个最近的相邻要素。
如果指定了最大距离,则只会匹配比此距离更近的要素。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
输入层。 |
Input layer 2 |
|
[vector: any] |
连接层。 |
Layer 2 fields to copy (leave empty to copy all fields) |
|
[fields] |
连接要复制的层字段(如果为空,将复制所有字段)。 |
Discard records which could not be joined |
|
[boolean] 默认:FALSE |
从输出中移除无法连接的输入图层记录 |
Joined field prefix |
|
[string] |
连接的字段前缀 |
Maximum nearest neighbors |
|
[number] 默认:1 |
最近邻的最大数量 |
Maximum distance |
|
[number] |
最大搜索距离 |
Joined layer 任选 |
|
[same as input] 默认: |
指定包含关联要素的矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
Unjoinable features from first layer |
|
[same as input] 默认: |
指定包含无法关联的要素的矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Joined layer |
|
[same as input] |
输出连接的层。 |
Unjoinable features from first layer |
|
[same as input] |
包含无法与关联图层中的任何要素关联的第一个图层中的要素的图层。 |
Number of joined features from input table |
|
[number] |
输入表中已连接的要素数。 |
Number of unjoinable features from input table |
|
[number] |
输入表中无法连接的要素数。 |
Python代码
Algorithm ID : native:joinbynearest
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.22. 合并向量层
组合多个矢量层 same geometry 在一张纸上打字。
生成的层的属性表将包含来自所有输入层的字段。如果找到同名但类型不同的字段,则会自动将导出的字段转换为字符串类型的字段。还会添加存储原始图层名和源的新字段。
如果任何输入层包含Z或M值,则输出层也将包含这些值。同样,如果任何输入层是多部分的,则输出层也将是多部分的层。
也可以设置合并后的层的目标坐标系(CRS)。如果未设置,将从第一个输入层获取CRS。所有层都将被重新投影以匹配此CRS。

Default menu :
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layers |
|
[vector: any] [list] |
要合并到单个层中的层。层应属于相同的几何图形类型。 |
Destination CRS 任选 |
|
[crs] |
选择输出层的CRS。如果未指定,则使用第一个输入层的CRS。 |
Merged |
|
[same as input] 默认: |
指定输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Merged |
|
[same as input] |
包含输入层中所有要素和属性的输出向量层。 |
Python代码
Algorithm ID : native:mergevectorlayers
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.23. ORDER BY表达式
根据表达式对向量层进行排序:根据表达式更改要素索引。
请注意,对于某些提供商,它可能不会像预期的那样工作,订单可能不会每次都得到遵守。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
要排序的输入矢量图层 |
Expression |
|
[expression] |
用于排序的表达式 |
Sort ascending |
|
[boolean] 默认值:True |
如果选中,向量层将从小值到大值排序。 |
Sort nulls first |
|
[boolean] 默认:FALSE |
如果选中,则首先放置空值 |
Ordered |
|
[same as input] 默认: |
指定输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Ordered |
|
[same as input] |
输出(排序)向量层 |
Python代码
Algorithm ID : native:orderbyexpression
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.24. 修复shapefile
通过(重新)创建SHX文件修复损坏的ESRI shapefile数据集。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Shapefile |
|
[file] |
包含缺失或损坏SHX文件的ESRI shapefile数据集的完整路径 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Repaired layer |
|
[vector: any] |
修复了SHX文件的输入矢量图层 |
Python代码
Algorithm ID : native:repairshapefile
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.25. 重新投影层
在不同的CRS中重新投影向量层。重新投影的层将具有与输入层相同的特征和属性。
允许 features in-place modification 点、线和面要素的
参见
参数
基本参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
要重投影的输入向量层 |
Target CRS |
|
[crs] 默认: |
目的地坐标参考系 |
Convert curved geometries to straight segments
任选 |
|
[boolean] 默认:FALSE |
如果选中,曲线几何图形将在此过程中转换为直线段,从而避免潜在的变形问题。 |
Reprojected |
|
[same as input] 默认: |
指定输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
高级参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Coordinate Operation 任选 |
|
[string] |
用于特定重新投影任务的特定操作,而不是始终强制使用当前项目的转换设置。当重新投影特定的层并且需要控制准确的变换管道时非常有用。要求项目版本大于等于6。 有关更多信息,请访问 基准转换 。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Reprojected |
|
[same as input] |
输出(重新投影)向量层 |
Python代码
Algorithm ID : native:reprojectlayer
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.26. 将矢量要素保存到文件
将矢量要素保存到指定的文件数据集。
对于支持层的数据集格式,可使用可选的层名称参数来指定自定义字符串。可以指定可选的GDAL定义的数据集和层选项。有关这方面的更多信息,请阅读在线 GDAL documentation 在格式上。
参数
基本参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Vector features |
|
[vector: any] |
输入向量层。 |
Saved features |
|
[same as input] 默认: |
指定要将要素保存到的文件。以下选项之一:
|
高级参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Layer name 任选 |
|
[string] |
要用于输出图层的名称 |
GDAL dataset options 任选 |
|
[string] |
输出格式的GDAL数据集创建选项。用分号分隔各个选项。 |
GDAL layer options 任选 |
|
[string] |
输出格式的GDAL层创建选项。用分号分隔各个选项。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Saved features |
|
[same as input] |
包含已保存要素的矢量层。 |
File name and path |
|
[string] |
输出文件名和路径。 |
Layer name |
|
[string] |
层的名称(如果有)。 |
Python代码
Algorithm ID : native:savefeatures
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.27. 设置层编码
设置用于读取层属性的编码。不会对层进行永久性更改,相反,它只会影响在当前会话期间读取层的方式。
备注
仅对某些矢量层数据源支持更改编码。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Saved features |
|
[vector: any] |
用于设置编码的矢量层。 |
Encoding |
|
[string] |
要在当前QGIS会话中指定给图层的文本编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Output layer |
|
[same as input] |
输入具有设定编码的矢量层。 |
Python代码
Algorithm ID : native:setlayerencoding
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.28. 按字符分割要素
通过在指定的字符处拆分字段值,将要素拆分为多个输出要素。例如,如果一个图层包含的要素在单个字段中包含多个逗号分隔值,则此算法可用于在多个输出要素中分割这些值。几何图形和其他属性在输出中保持不变。可选地,分隔符字符串可以是正则表达式,以增加灵活性。
允许 features in-place modification 点、线和面要素的
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
输入向量层 |
Split using values in the field |
|
[tablefield: any] |
用于拆分的字段 |
Split value using character |
|
[string] |
用于拆分的字符 |
Use regular expression separator |
|
[boolean] 默认:FALSE |
|
Split |
|
[same as input] 默认: |
指定输出矢量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Split |
|
[same as input] |
输出向量层。 |
Python代码
Algorithm ID : native:splitfeaturesbycharacter
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.29. 拆分向量层
基于输入层和属性在输出文件夹中创建一组向量。输出文件夹将包含与在所需字段中找到的唯一值一样多的层。
生成的文件数量等于为指定属性找到的不同值的数量。
它与的操作相反 merging 。
Default menu :
参见
参数
基本参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
输入向量层 |
Unique ID field |
|
[tablefield: any] |
用于拆分的字段 |
Output directory |
|
[folder] 默认: |
指定输出层的目录。以下选项之一:
|
高级参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Output file type 任选 |
|
[enumeration] 默认: |
选择输出文件的扩展名。如果未指定或无效,则输出文件的格式将为“默认输出向量层扩展”处理设置中设置的格式。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Output directory |
|
[folder] |
输出图层的目录 |
Output layers |
|
[same as input] [list] |
分割产生的输出向量层。 |
Python代码
Algorithm ID : native:splitvectorlayer
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.17.30. 截断表
通过删除层内的所有要素来截断层。
警告
该算法会原地修改图层,删除的要素将无法恢复!
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input Layer |
|
[vector: any] |
输入向量层 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Truncated layer |
|
[folder] |
被截断的(空)层 |
Python代码
Algorithm ID : native:truncatetable
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。