is there a tool in QGIS which is able to perform a spatial join with the possibility of define a snapping radius? For better understanding:

I have 2 point shapes with attributes I need to join by location. The problem is that I want to define the radius (max distance between related points). Is there a solution for my problem or a workaround?

  • Would it be acceptable to buffer the points to your max radius before the spatial join? – Sorbus Oct 25 '14 at 22:43
  • In a first step it would be acceptable find the closest point. – Pimpel Oct 27 '14 at 9:47

I would try one of two methods:

Assuming your layers have an unique ID attribute, perform a 'distance matrix' between the layers searching for only the 1st nearest points. Sort the resulting CSV file (in Excel or similar) by the 'Distance' column and remove any entries over your chosen maximum distance. The edited CSV file can be imported into QGIS as a delimited layer with 'no geometry' and 'joined' to your first point layer using the 'InputID' as the join field. The second point layer can now be joined to the first using the 'TargetID' as the join layer.

The other method would be to buffer one of the layers and carry out 'join attributes by location'. You could run a 'point in polygon' analysis first to flag up where you have more than one point within the buffered layer.


The solution for my problem was the Nearest Neighbor Join Plugin.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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