1

I work for an advocacy organisation, running a campaign during a by-election, i.e. contained to a single federal electorate.

I've been using QGIS to interrogate how our supporters are distributed across space - mostly looking at how they are clustered, how many are in given postcodes etc - but am still a bit of a newbie when it comes to spatial queries.

We have ~6,000 supporters in the electorate, and I want to get volunteers to ring them and ask them to host yard signs to make our issues really visible. But in order to prioritise them for contact, I would like to rank these supporters' records in terms of how visible their signs would be.

Supporters in the area. Red circle = on a main road; yellow = at an intersection; green = main rd intersection

In the screenshot above (which is from our database, not QGIS), each dot represents a supporter. If I'm looking for places to put signs, the dots I've drawn a bodgy red line around are good prospects because they're on main roads. The ones I've drawn a yellow line around are good because they're on an intersection. And the ones I've drawn a [edit] green line around are both: they're at the intersection of one or more main roads.

What I'd really like to do is automatically sort all the records (represented by the dots) sort them according to how significant the street/road is they're on and/or whether they are at the intersection of two streets.

Is there a straightforward way to do this in QGIS?

2 Answers2

2

Could you elaborate the case with few screenshots ?

But, if you want to find the nearest distance between the points & road you can use "Distance to nearest hub" tool in QGIS. https://gis4design.wordpress.com/2015/11/13/qgis-distance-to-nearest-hub/

Edit:

1) As for as points nearer to/intersects with main road are concerned, create a buffer for lines (road network type: "Main Road) and do spatial query. Save the selected features alone as a shp file. Prior to this, add a column "Rank" and update the selected features with rank, say "2". This step is exactly what @Devdatta Tengshe has elaborated

2) Use "Vector Overlay Tools -> Line Intersections" which will generate points at intersection of two lines (your yellow line scenario). Create a buffer for this intersection points. Run a spatial query for supporter within intersection_buffer. Save the selected features as a separate shapefile. Update the rank column

3)For the green line scenario, you have to use both the saved shapefile and run the spatial query along with that of the road type "Main Road"

joseph_k
  • 1,441
  • 15
  • 31
  • Thank you! Have added a screenshot and some detail above. Each of the points should be on a street or road; what I'd like to sort them by is how significant that road is, as well as which points are at the intersection of two or more roads. – Michael Pulsford Feb 19 '18 at 03:45
  • Have edited my answer. Hope this helps. – joseph_k Feb 19 '18 at 05:56
1

What I would do is download the Streets data from OSM for your Area from http://download.bbbike.org/osm/bbbike/

Then I would buffer the streets by say 10 meters.

The next step would be to do a a Spatial query, and select all points which fall in this buffer, by using the Vector->Research tools->Select by Location tool

Do note that you may have to project the data to your local coordinate system, in order to do a 10 m buffer.

Devdatta Tengshe
  • 41,311
  • 35
  • 139
  • 263
  • Thanks Devdatta! Just to clarify, all the points should already abut streets, since they're street addresses, and would likely almost all fall within that buffer. What I want to use QGIS to find instead is a) how significant are the streets they abut (which are on main roads, major streets etc), and b) which ones are near the intersections of streets. – Michael Pulsford Feb 19 '18 at 05:11
  • You can always select a subset of the streets, based on the Name, or also on the Type. You can then do the process only on this SubSet. – Devdatta Tengshe Feb 19 '18 at 05:27
  • Thank you! And to find which ones are near intersections I should find intersections, then run a similar process? – Michael Pulsford Feb 19 '18 at 05:54
  • @MichaelPulsford: Yes – Devdatta Tengshe Feb 19 '18 at 05:55