You are here: Calculators > SpatialRelator


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 Requestor features. If you only need to determine if the features are related and you only have a few Requestor features, the SpatialFilter transformer is more efficient.

All Requestor features are output through the Output port, with a new list attribute appended. Each input Supplier feature is compared against the Requestor 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 Requestor’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 Supplier will be added to the list.

As well, each Requestor receives the attributes of the Suppliers that passed the relationship, resulting in an operation referred to as a Spatial Join  When attributes are merged down from Supplier to Requestor features, existing attributes are not replaced. Therefore if the Suppliers and Requestors 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.

Input Ports

Output Ports





Usage Notes

Spatial relations are based on the OGC specification and are undefined for geometries that are not OGC valid or aggregate geometries.

See Spatial Relations Defined for more information on spatial predicates and an illustration of spatial relationships.

Editing Transformer Parameters

Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.

Transformer Categories


FME Licensing Level

FME Professional edition and above

Search FME Knowledge Center

Search for samples and information about this transformer on the FME Knowledge Center.