匹配器
检测彼此匹配的功能。当特征具有匹配的几何体、匹配的属性值或同时具有这两个值时,将声明为匹配。还可以指定特性之间必须不同的属性列表。
典型用途
- 变化检测
- 基于几何的特征合并(数据连接)
它是如何工作的?
匹配器可以接收任意数量的输入特征流。将所有特征与所有其他特征进行比较,并根据定义的参数识别匹配。
用于匹配的选项包括几何体和/或属性,还可以定义必须不同的属性。
找到匹配项的所有功能都通过匹配的端口(即,如果两个功能相互匹配,则在此处输出它们)。每个匹配集都被赋予一个新的数字匹配id属性,该属性可用于将它们标识为匹配组。
每一组匹配特征的单个副本将发送到单配港口。这些特征上的属性合并到一个输出特征上。使用此端口,匹配器可以使用几何体作为键进行多特征合并。这补充了特色合并,它只接受属性而不接受几何图形作为键。
未找到匹配项的功能通过不匹配港口。
在本例中,我们有两个分区数据集副本。其中一个已更新,并对某些区域属性进行了更改。多边形没有可用于进行比较以查找更新区域的唯一ID,因此我们需要使用几何体匹配。
原始和更新的数据集都被路由到匹配器中。
几何匹配设置为二维(默认设置),以及属性匹配策略是匹配选择的属性是的。我们选择ZoneCategory作为要比较的属性。这将查找具有匹配几何体的多边形,并检查属性是否已更改。
匹配的多边形的一个副本通过单配输出端口。这些是未经修改的记录,以蓝色显示在下面。
更改的记录将不会遇到匹配项-尽管几何体相同,但我们指定的属性不是。这些功能通过不匹配端口,红色显示。
使用说明
特征连接方法的选择
许多转换器可以基于匹配的属性、表达式和/或几何体执行数据连接。当选择一个特定的连接任务时,考虑包括连接的复杂性、数据格式、索引、冲突处理和期望的结果。有些转换器使用sql语法,有些则直接访问外部数据库。他们可能支持也可能不支持列表属性阅读与创作。
一般来说,选择一个最具体的任务,你需要完成将提供最佳的性能结果。如果有不止一种方法可以这样做(这种情况经常发生),那么在性能测试替代方法上花费的时间可能是值得的。在读取外部表时,性能可能会很大程度上取决于关键索引的存在(而不是已经在工作区中的特性)。
变压器 |
匹配依据 |
使用SQL语句 |
可以创建列表 |
输入类型 |
值得注意的 |
说明 |
---|---|---|---|---|---|---|
特色木工 | 属性 | 没有 | 没有 | 特性 |
|
通过结合基于公共键属性值的属性和/或几何特性来连接特性。执行相当于内部、左侧和完整SQL连接的操作。 |
特色合并 | 属性 | 没有 | 是的 | 特性 |
|
根据匹配的关键属性值和表达式,将一组特性的属性和/或几何图形合并到另一组特性中。 |
ListBasedFeatureMerger | 将属性列表为单个属性 | 没有 | 是的 | 特性 |
|
基于匹配,将一组特性的属性和/或几何形状合并到另一组特性上列表属性具有键属性值和表达式的值。 |
InlineQuerier | SQL查询 | 是的 | 没有 | 特性 |
|
从传入的特性创建一组SQLite数据库表,对它们执行SQL查询,并将结果作为特性输出。 |
SQLCreator | SQL查询 | 是的 | 没有 | 外部数据库 |
|
根据对数据库执行一次的SQL查询的结果生成FME特性。为SQL查询结果的每一行创建一个FME特性。 |
SQLExecutor | SQL查询 | 是的 | 没有 | 外部数据库 |
|
对数据库执行SQL查询。对于输入transformer的每个初始化特性,都会向数据库发出一个查询。初始化特性和查询结果都可以作为特性输出。 |
DatabaseJoiner | 属性 | 没有 | 是的 | 外部数据库及特点 |
|
基于一个或多个公共键,将外部表的属性与工作空间中已有的特性连接起来。不需要SQL知识。非阻塞的变压器。 |
匹配器 | 几何和/或属性 | 没有 | 是的 | 特性 |
|
检测彼此匹配的功能。当特征具有匹配的几何体、匹配的属性值或同时具有这两个值时,将声明为匹配。还可以指定特性之间必须不同的属性列表。 如果仅在属性(而不是几何体)上进行匹配,则使用FeatureMerger或其他方法将提供更好的性能。 |
配置
输入端口
用于匹配的功能。将所有功能与所有其他功能进行比较。
输出端口
所有与另一个特征匹配的特征都输出到匹配的港口。
每一组匹配特征的单个副本将发送到单配港口。这些特性的属性将合并到单个输出特性中。
将所有不匹配的特性发送到不匹配港口。
参数
几何匹配 | 控制是否二维或三维(或否)在声明匹配之前,几何体必须相同。满的确保3D、测量和几何特征完全匹配。 比较光栅几何图形时:
比较曲面和实体几何图形时:二维行为方式与三维,也就是说,还将比较z值。 比较点云几何图形时:
|
属性匹配策略 | 与选定属性,此参数控制在声明匹配之前,输入要素的哪些属性必须具有相同的值。
|
选定属性 | 适用时属性匹配策略设置为匹配选择的属性或匹配除选定属性之外的所有属性,并指定要匹配或从匹配中排除哪些属性,具体取决于所选择的匹配策略。 |
必须不同的属性 | 控制作为输入特性一部分的哪些属性在声明匹配之前必须具有不同的值。将匹配正则表达式的所有属性的值连接在一起并进行比较,以确定是否匹配。 |
区分空、缺失和空属性 | 不:空、缺少和空属性将被视为等效属性。 对:空、缺失和空属性将被视为成对不同。此参数也适用于属性几何特征是的。 |
仁慈的几何匹配 | 如果是的,则将忽略直线和区域要素中点的顺序。 路径和线条之间的构图差异将被忽略。在聚合、多边形、甜甜圈、路径和所有其他multi中,将忽略真正的弧和椭圆及其笔划多边形等价物。比较光栅几何图形时,只比较范围。 |
内部顶点宽容 | 此参数确定内部顶点之间的距离,以便将它们声明为匹配。注意,特性的起始点和结束点应该小于参数值。也就是说,如果两个顶点相距2米,而参数设置为2,它们将不匹配。这个值是可选的。 |
额外的顶点宽容 | 当匹配几何图形时,额外的顶点宽容可以允许额外的顶点沿线段。值为0表示不允许这样的额外顶点。非零值控制任何额外顶点与连接相邻匹配顶点的线的距离。 |
注意:对于平面和立体几何,内部顶点宽容和额外的顶点宽容被忽略,并假设为0.0。此变压器不支持输入中的表面或固体仁慈的几何匹配设置为是的是的。
匹配ID输出属性 | 将ID添加到每一组匹配的特性中,以便在需要时可以在它们之间建立关系。 |
单匹配输出上的匹配计数属性 | 如果提供了此名称,则将向每个属性添加此名称单配输出,设置为贡献的输入特性的数量。 |
生成列表(仅SingleMatched)
当启用时,添加列表属性对每一个单配输出特性,由所有匹配特性的属性组成。
注意:属性列表不能从工作台中的输出模式进行访问,除非首先使用对其进行操作的转换器(如ListExploder或ListConcatenator是的。另外,AttributeExposer可以使用。
单匹配输出上的列表名 | 输入列表属性的名称。 |
添加到列表 | 所有属性:所有属性都将添加到输出特性中。 选定属性:启用“选定属性”参数,其中可以选择要包含的特定属性。 |
选定属性 | 启用时间添加到列表设置为选定属性是的。指定要包含的属性。 |
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来指定变压器参数。一些转换器中还提供了更高级的功能,如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击在适用参数旁边。有关详细信息,请参见变压器参数菜单选项是的。
定义值
有几种方法可以定义要在变压器中使用的值。最简单的方法是简单地输入一个值或字符串,它可以包括各种类型的函数,如属性引用、数学和字符串函数以及工作区参数。有许多工具和快捷方式可以帮助构造值,通常可以从值字段旁边的下拉式上下文菜单中获得。
使用文本编辑器
文本编辑器提供了一种方便的方法来构造来自各种数据源(如属性、参数和常量)的文本字符串(包括正则表达式),其中直接在参数中使用结果。
使用算术编辑器
算术编辑器提供了一种方便的方法来从各种数据源(如属性、参数和特性函数)构造数学表达式,其中结果直接在参数中使用。
有条件的值
根据通过或失败的一个或多个测试条件设置值。
内容
表达式和字符串可以包含许多函数、字符、参数等—无论是直接输入参数还是使用某个编辑器构造。
参考
处理行为 |
|
功能持有 |
是的 |
依赖关系 | 没有一个 |
FME授权级别 | 基本版及以上 |
别名 | |
历史 | |
类别 |
FME社亚搏国际在线官网区
fme社区是演示亚搏国际在线官网、操作指南、文章、常见问题解答等的场所。获取问题的答案,向其他用户学习,并对新功能进行建议、投票和评论。
搜索关于匹配器的所有结果在FME社区。亚搏国际在线官网
示例可能包含根据开放式政府许可证获得许可的信息-温哥华