Does anyone know if it's possible to do a 'one to many' spatial join based on distance in QGIS? The "Join Attributes By Location" under ->Vector->Data Management Tools is very limited...
Just to be clear, below is how it's done in ArcGIS. 
Does anyone know if it's possible to do a 'one to many' spatial join based on distance in QGIS? The "Join Attributes By Location" under ->Vector->Data Management Tools is very limited...
Just to be clear, below is how it's done in ArcGIS. 
Have a look at the Hub Distance tool which is part of the MMQGIS plugin documented here: http://michaelminn.com/linux/mmqgis/
The hub distance tool iterates through each feature on the source points layer and finds the closest "hub" from the destination hubs layer based on Ellipsoidal distance. The output is a shapefile containing all the attributes from the source layer along with a distance field and the name of the hub based on an attribute selected in the Hub Layer Name Attribute box.

In QGIS, there is the option to concatenate the attributes via virtual layers and SQL. Not really handy but gets the job done. Hopefully someone will implement concatenate functionality in tools such as dissolve or spatial join soon.