The Spatial Match agent allows you to compare two geospatial datasets and return records based on their spatial relationship. It works like a spatial join, where matches are determined by how geometries relate to one another rather than by standard field equality.
Configuration Options
Inputs
Connect the two datasets to the Spatial Match agent:
Universe Dataset
Target Dataset
These datasets appear as the two incoming paths to the Spatial Match agent on the flow canvas.
Main Path Configuration
Use the Main Path selector to configure the output. The current UI shows the following options:
Left: Includes all records from the Universe Dataset and matching records from the Target Dataset.
βInner: Includes only records that satisfy the spatial match condition between both datasets.
βOuter: Includes all records from both datasets, whether matched or unmatched.
βCross: Returns records across both datasets for cross-comparison scenarios.
These options are displayed directly in the Spatial Match configuration panel.
Rules Setup
Use the Rules section to define how records from the two datasets should be matched spatially.
Choose how multiple rules interact:
AND: All conditions must be met for a match.
OR: Any condition met will qualify as a match.
For each rule, select:
A field from the Universe Dataset
A spatial predicate
A field from the Target Dataset
In the UI example, the rule compares Metadata from the Universe Dataset to Metadata from the Target Dataset using the intersects predicate. You can add multiple rules using the Add option.
Include Unmatched Paths
Optionally, include unmatched records by selecting the available unmatched output paths:
Universe Dataset
Target Dataset
This is useful when you want to review records that did not find a spatial match in the opposite dataset.
Spatial Predicates
Spatial predicates define how geometries from the Universe Dataset and Target Dataset are compared during matching. These predicates evaluate the spatial relationship between points, lines, and polygons to determine whether two records should be treated as a match.
Spatial Predicate | Description | Common Use Cases |
intersects | Returns a match when two geometries share any portion of space. This includes partial overlap, edge contact, or point contact. | Find roads crossing, administrative boundaries, or service regions overlapping customer locations. |
within | Returns a match when the geometry from one dataset is completely inside the geometry from the other dataset. | Find stores within a city boundary, assets within a district, or incidents within a response zone. |
contains | Returns a match when one geometry completely contains the other. This is the inverse of within. | Find regions containing sales territories, districts containing schools, or polygons containing point locations. |
overlaps | Returns a match when two geometries partially cover the same area, but neither fully contains the other. | Identify overlapping delivery zones, land-use conflicts, or partially overlapping project areas. |
touches | Returns a match when two geometries meet at the boundary but do not overlap internally. | Detect adjacent parcels, neighboring administrative units, or polygons sharing an edge. |
crosses | Returns a match when one geometry passes through another. This is commonly used with lines crossing lines or lines crossing polygons. | Find roads crossing rivers, pipelines crossing districts, or routes crossing restricted zones. |
equals | Returns a match when two geometries are spatially identical. | Validate duplicate boundaries, compare reference layers, or confirm exact geometry matches between datasets. |
disjoint | Returns a match when two geometries do not share any space. | Identify uncovered areas, assets outside service coverage, or records that fall completely outside expected boundaries. |
nearest / within distance | Returns a match when two geometries are within a specified distance threshold. | Find customers within a defined distance of a branch, assets near a pipeline, or incidents close to a service center. |
Best Practices
Use intersects when you want broad spatial match behavior.
Use within or contains when strict containment is required.
Use touches when adjacency matters but overlap should not count.
Use AND when all configured spatial conditions must be satisfied.
Use OR when any one rule should qualify as a match.
Enable unmatched outputs when you want to inspect records that did not spatially match.

