I am using ArcGIS Pro 2.9.0

I'm attempting to run a spatial join

  • Join one to one
  • Keep all target features
  • Closest

I have multiple target features in the same locations, and when I run spatial join, it picks up the closest join feature twice or more. I'd like for it to pick up the next available join feature so that all my joins are unique.

Is spatial join the correct tool or should I be running another processing tool?

  • 1
    Please edit your question and explain what you mean by "to pick up the next available join feature"? An image would help.
    – Hornbydd
    Commented Dec 6, 2021 at 17:57
  • If you swap the target and join feature classes, that would result in unique target features in the join feature class. (But you may still end up with non-unique join features, which may or may not solve the problem, depending on your actual requirements.) Commented Dec 6, 2021 at 22:02

1 Answer 1


Not really an answer, but too long for a comment...

To pick up the "next available" join feature, as you say, you would have to eliminate the already-joined features. This means that you would have to run the join one feature at a time, eliminating the joined features after each single feature has been joined.

Then after each join, append the resulting one feature to the final join feature class.

However, I assume that you'd want to be very careful about the order in which your selected the individual feature to join each time, as you'd probably want the closest joins to be done first, otherwise they may never happen at all - ie, if they were otherwise also closest (but not as close) to another feature.

So you may want to to a reverse spatial join first, to determine the distances between each join, then order the features by distance, then select each feature one-at-a-time, doing a (forward/normal) spatial join on just the one selected feature, then append the results each time (or merge all the results at the end).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.