Hello. Say, for example, I have some points and overlapping zone polygons. What would be the most effective way to find the intersecting zones for each point and combine the zone names into one field on the point feature class? See example below: if the X point falls within three zones, and I'd want the Zone field for the point to list those zones as comma separated.
I'm sure I could write something in python, but this feels like there may be a simpler solution with geoprocessing tools that I'm overlooking. I tried a Spatial Join, but it outputs a new point for each overlapping zone feature (even though I tried to set it to concatenate values in the field mappings). Intersect does the same thing.
Solved! Go to Solution.
The spatial join tool should work. I just tried it and it worked for me.
Make sure to set the join operation as one to one, then create a new field in the field map section.
From there, select your polygon table, select Concatenate as the action, and specify your zone field.
Then run the join and it should work.
End result:
Most effective is a one-to-one Spatial Join and set the zone-name field’s Field Map merge rule to Concatenate.
Try these steps:
1. Run Spatial Join (Analysis) or Add Spatial Join (Data Management).
- Target features = Points
- Join features = Zone polygons
- Join operation = Join one to one
- Match option = Within (common for points-in-polygons)
2. Expand Field Map.
- Find the polygon field that has the zone name (e.g., `ZoneName`)
- Set Merge rule/Action = Concatenate
- Set Delimiter = `, `
Output: each point gets a single field like `ZoneA, ZoneB, ZoneC` when it falls in multiple overlapping zones.
I tested this on data setup exactly as your screen graphic and it worked for me. Yes, it does create a new feature class but I guess you could copy/paste it to another point feature class?
Might the Identity tool work here.
While Spatial Join worked when set up correctly as the other suggested, I did give this a try out of curiosity too. It returns a new point for every possible combination of zone pairs. So in my example I would've got nine points with zone fields that said: A, A | A, B | A, C | B, A, | B, B | B, C | C, A | C, B | C, C .
The spatial join tool should work. I just tried it and it worked for me.
Make sure to set the join operation as one to one, then create a new field in the field map section.
From there, select your polygon table, select Concatenate as the action, and specify your zone field.
Then run the join and it should work.
End result:
Most effective is a one-to-one Spatial Join and set the zone-name field’s Field Map merge rule to Concatenate.
Try these steps:
1. Run Spatial Join (Analysis) or Add Spatial Join (Data Management).
- Target features = Points
- Join features = Zone polygons
- Join operation = Join one to one
- Match option = Within (common for points-in-polygons)
2. Expand Field Map.
- Find the polygon field that has the zone name (e.g., `ZoneName`)
- Set Merge rule/Action = Concatenate
- Set Delimiter = `, `
Output: each point gets a single field like `ZoneA, ZoneB, ZoneC` when it falls in multiple overlapping zones.
I tested this on data setup exactly as your screen graphic and it worked for me. Yes, it does create a new feature class but I guess you could copy/paste it to another point feature class?
Thank you both @RyanUthoff and @Robert_LeClair , the issue was the "Join one to one" setting, I was using "one to many". Sort of confusing in this instance.