Determines topological (spatial) relationships between sets of features. It tags – but does not otherwise change – features when they have certain relationships, such as touches, overlays, intersects, and so forth. Use this transformer when you need to determine the relationships between features or if you have many BASE features. If you only need to determine if the features are related and you only have a few BASE features, the SpatialFilter transformer is more efficient.
All BASE features are output through the OUTPUT port, with a new list attribute appended. Each input CANDIDATE feature is compared against the BASE features, based on the spatial tests specified in the Tests to Perform parameter. When one of the comparisons is true, an entry is added to the BASE’s list attribute as follows:
<LIST_NAME>{i}.de9im = [DE9IM string]
<LIST_NAME>{i}.pass{0} = [true PREDICATE 1]
<LIST_NAME>{i}.pass{1} = [true PREDICATE 2]
...
<LIST_NAME>{i}.pass{n} = [true PREDICATE n+1]
Additionally, all attributes of the matching CANDIDATE will be added to the list.
As well, each BASE receives the attributes of the CANDIDATEs that passed the relationship, resulting in an operation referred to as a Spatial Join When attributes are merged down from CANDIDATE to BASE features, existing attributes are not replaced. Therefore if the CANDIDATEs and BASEs have attributes with the same name, then the values will not be transferred down. This can be worked around by renaming (AttributeRenamer), prefixing (AttributeExpressionRenamer), or removing (AttributeRemover) attributes to avoid name collisions.
This parameter is used to indicate that only BASEs and CANDIDATEs that have the same value for certain attributes should be compared. That is, if Group By attributes are specified, candidates are only compared to bases that have the same values in these attributes.
This parameter lists the spatial predicates that will be used for comparisons between the base and candidate features. These can either be selected directly from the list, or taken from attribute values.
In addition to the predefined predicates, you may also test relationships using arbitrary 9-character masks. Such masks consist of the rows of a Dimensionally Extended 9 Intersection Matrix. Note that in order use these masks with the SpatialRelator, you must assign them to an attribute on the CANDIDATE features, and include the value of that attribute in the "Tests to perform" clause (you cannot specify them directly).
For more information about predicates, see Spatial Relations Defined.
This parameter specifies the name of the list attribute that will be added to the BASE features.
This attribute specifies the name of an attribute that will be added to each base, which stores the number of candidates with which the base had at least one true relationship.
This attribute controls which attributes must have different values before a match is declared.
This parameter specifies how to determine the boundary of curve and multicurve geometries. The Default Rule is that any curve endpoints that occur an odd number of times in the geometry as a whole, will be considered its boundary – that is, a linear loop (a line whose start point equals its endpoint) will not have any boundary. The other rule specifies that the curve or multicurve's boundary is the set of all its endpoints.
If this parameter is specified, then for each candidate that matches a base, three attributes will be added to the corresponding list entry: card_point, card_line, and card_area. These count the number of points, lines, and areas that comprise the intersection of the base and candidate. For instance, a point is counted if two polygons touch at a vertex, a line is counted if they touch at an edge, and an area is counted if they overlap.
See Spatial Relations Defined for more information on spatial predicates and an illustration of spatial relationships.
If the Geometry Handling Advanced setting is set to Enhanced in the workspace, arcs, and ellipses are stroked prior to the testing of any relationship predicates; they are otherwise regarded as points located at their respective center points.
About Transformer Parameter Options
FME Professional edition and above
Search for samples and information about this transformer on FMEpedia.