Feature Description
Join features can associate the attributes of one dataset with another dataset (which can be spatial data or attribute data) based on spatial, temporal, attribute relationships, or the aggregation of these three. This process first filters all input objects that meet the connection conditions based on specified criteria, and then connects the qualified input objects with corresponding objects in the source data. Finally, the returned result is a feature dataset (FeatureRDD), and only features with successful connections are retained.
This tool can transfer and append information from one layer to another, and you can choose to connect features based on spatial relationships, attribute relationships, temporal relationships, or a combination of these three as needed. The details are as follows:
Spatial relationships
To determine the spatial relationships between features, the available relationships depend on the geometry type (point, line, or polygon) of the layers being joined. The provided spatial relationships are as follows: proximity, containment, being contained, crossing, intersection, overlap, adjacency, disjoint, and identity. For detailed explanations, please refer to:
| Spatial relationships | Illustration | Description |
|---|---|---|
| Contain | ![]() |
The source object contains the join object. |
| Within | ![]() |
The source object is contained by the join object. |
| Intersected | ![]() |
The source object intersects with the join object. |
| InnerIntersected | ![]() |
Join objects that have internal overlap (not boundary contact) with the source object, i.e., excluding objects that only touch at the boundary from the intersection result. |
| Overlap | ![]() |
The source object partially overlaps with the join object. |
| Identical | ![]() |
Objects of the same type coincide, such as point with point, line with line, or polygon with polygon. |
| Disjointed | ![]() |
Objects in the two datasets have no intersection. |
| Touch | ![]() |
Objects in the two datasets share common points or edges. |
| Cross | ![]() |
The source object crosses the join object. |
| Near | ![]() |
If the join object is within a specified distance radius from the source object, the condition is met. |
Temporal Relationships
To determine the temporal relationships between objects, the available relationships depend on the time type (instant or interval) of the layers being joined. For detailed explanations, please refer to:
| Temporal Relationships | Illustration | Description |
|---|---|---|
| Near | ![]() |
If the time interval between the source time period and the join time period is less than the time distance, the proximity relationship is satisfied. |
| After | ![]() |
When the source time is after the join time. |
| Before | ![]() |
When the source time is before the join time. |
| Contains | ![]() |
The source time contains the join time when the join time occurs between the start and end points of the source time interval. |
| During | ![]() |
The source time is during the join time when it occurs between the start and end points of the join time interval. |
| Finishes | ![]() |
The source time ends at the same time as the join time, and the source time starts after the join time. |
| Meets | ![]() |
The end time of the source data equals the start time of the join data. |
| MetBy | ![]() |
The start time of the source data equals the end time of the join data. |
| Overlaps | ![]() |
The source data start time is before the join data start time, and the source data time ends before the join data time. |
| OverlappedBy | ![]() |
The source data start time is after the join data start time, and the source data time ends after the join data time. |
| Starts | ![]() |
The source time starts at the same time as the join time, and the source time ends before the end point of the join time interval. |
| StartedBy | ![]() |
The source time starts at the same time as the join time, and the source time ends after the end point of the join time. |
| Equals | ![]() |
If the source data time interval and the join data time interval are exactly the same, these two times are identical. |
Attribute Relationships
To determine the attribute relationships between objects, if the field values in the join data are equal or not equal to the field values in the source data, the objects that meet the conditions will be matched.
Type
Refers to the matching relationship between source object properties and join objects, providing two join methods: one-to-one and one-to-many. Set using the 'Feature Type' parameter.
- One-to-One Join: If there is one join object that meets the conditions, the attribute values of the join object's connection field will be updated to the source object; if there are multiple join objects that meet the conditions, only the count of qualified objects will be recorded.
- One-to-Many Join: This method retains every qualified multiple object in the result dataset. For example, if one object in the source dataset matches five objects in the join dataset, the result dataset will contain these five objects.
Application Scenarios
- Using the join features tool, additional information from various city districts (such as school districts, police districts, communities, etc.) can be appended to each crime incident, further studying and analyzing the impact of crimes on different districts.
Parameter Description
| Parameter Name | Parameter interpretation | Parameter type |
|---|---|---|
| Target dataset | The target dataset for join features, where the attributes of the join data will be appended to the associated target dataset. | FeatureRDD |
| Join data for join features | The join data for join features, a dataset with attributes offered. | FeatureRDD |
| Feature type | Feature type, including the following two: One-to-One Join: If multiple join objects and one target meet the association conditions, the multiple join objects will be aggregated into one object through attribute statistics. The attribute statistics can be set via stats; if not set, the default is to count the number of join objects. One-to-Many Join: If multiple join objects and one target meet the association conditions, the attributes of all multiple join objects will be connected to the target, forming multiple result objects, and no attribute statistics will be performed. |
JavaJoinOperatorType |
| Retain all target features | If checked, the output result includes all features of the target dataset; if unchecked, only features in the target dataset that meet the specified relationships are retained. | Boolean |
| Join features field | Join features field, when the type is one-to-one join, take the mode of the field values. | String |
| Spatial relationship type (Optional) |
Spatial relationship type, the spatial relationships between feature objects in the target dataset and the join dataset, as described above. At least one of the spatial association condition, temporal association condition, and attribute association condition must be valid. | JavaSpatialRelationType |
| Proximity distance (Optional) |
Proximity distance, when the spatial relationship is "Near", used to determine whether the spatial distance between two objects is within the specified proximity distance range. | JavaDistance |
| Temporal relationship judgment type (Optional) |
Temporal relationship judgment type, as described in the temporal relationships above. At least one of the spatial association condition, temporal association condition, and attribute association condition must be valid. | JavaTimeOperatorType |
| Time distance (Optional) |
When the temporal relationship judgment type is "Near", used to determine whether the minimum time interval between two features is within the specified time distance range. Parameter input format: numerical value + space + unit, e.g., 5 Days, meaning the time interval between two features must be within 5 days to be considered "Near". Supports multiple time units, including: Years, Months, Weeks, Days, Hours, Minutes, Seconds, Milliseconds. |
JavaDuration |
| Attribute connection condition (Optional) |
Attribute connection condition, supporting Equal and NotEqual. Parameter input format: field name to be joined, connection condition, field name for matching join, separated by English commas, e.g., tagField,Equal,joinField. Note: This parameter only takes effect when at least one of the spatial association condition, temporal association condition, and attribute association condition is valid. |
JavaAttributeRelation |
| Specify the field and statistical method of the join data to be counted (Optional) |
Specify the field and statistical method of the join data to be counted, only valid when the type is "One-to-One Join". Parameter input format: field name to be counted, statistical method, result field name, separated by English commas, e.g., YSMJ,sum,YSMJ_SUM. Statistical methods include: sum, min, max, mean, var (sample variance), varpop (population variance), sddev (standard deviation), sdpop (population standard deviation), count (record count), modalvalue (mode). |
JavaFieldStat |
| Fuzzy (Optional) |
The default value for fuzzy is 0.0, meaning that when the dataset's coordinate system is a geographic coordinate system, a fuzzy of 1.0e-8 is used; when the coordinate system is empty or a projected coordinate system, a fuzzy of 1.0e-3 is used. | Double |
| Field in the target feature dataset identifying the start time (Optional) |
Field in the target feature dataset identifying the start time. | String |
| Field in the target feature dataset identifying the end time (Optional) |
Field in the target feature dataset identifying the end time. | String |
| Field in the join feature dataset identifying the start time (Optional) |
Field in the join feature dataset identifying the start time. | String |
| Field in the join feature dataset identifying the end time (Optional) |
Field in the join feature dataset identifying the end time. | String |
Output Result
| Parameter Name | Parameter interpretation | Parameter type |
|---|---|---|
| Result feature dataset | The result dataset needs to be written to a database or local storage by connecting the 【Save Vector Data】 tool. | FeatureRDD |






















