Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have several hundred vehicular routes within a city from which I wish to create shapefiles. These take the form of directions such as "From Green Street, turn left into Brown Street, Right into Blue Street".

I first wrote a program to change them into the form "Corner of Green and Brown; Corner of Brown and Blue" and then geocoded them using the Google geocoding service. I now have sets of coordinates as csv files, each file (route) has between 20 and 50 points. I then plotted the route using and where the roads are straight it has worked very well. However, roads are not straight, and I wish to constrain these paths to follow roads, I'm supposing by interpolating points between the coordinates I have.

I'm using QGis and Open Street Map data (I'd be prepared to try something else if this is not adequate). Using the RoadGraph plugin I can find routes between two points, but it is very resource intensive, and as I have several hundred sets of points and thousands of pairs of points, I need to find a better way.

The question was asked and answered by a now-inactive user in Shortest Path using interpolated OSM points, however he provided his answer as a link to his blog, which I was disappointed to find is now defunct.

If there is no simple way to do this I will need to do it manually. If that is the case, is there a simple way to "snap" a line that I draw in QGis to an underlying polyline layer (the OSM data)? I may need to do some of them manually anyway, as I'm sure the data I have generated is not perfect.

share|improve this question

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.