I am used to drawing maps in QGIS and overlaying on top them a road network map showing the distance between places, its a useful way of showing information about roads.

But I am aware that its not showing everything, some classes of road allow much faster travel e.g. 10 minutes driving on a single track country road and I might cover two miles, were as on a motorway I might cover 10 miles.

Is there anyway I can use this information do distort either a shapefile or raster image of a generic to map to show the faster areas compared to the slower areas? I have a set of X/Y coordinates and the time to travel between them.

I am using QGIS to display my data. I normally keep my data in a PostGIS database.


The usual way is to use visualise drive time is Isochrones, but this won't distort your map geographically.

I don't think there's any way to do this in a way which works all over the map, but it's possible from a central point of interest like.a town or city - I've tried this on the road network itself, but have not attempted to distort any other vector or raster layers alongside it. (However, you could use Georeferencing for rasters)

One way to do this is to use something like pgRouting to assign a cumulative drive time to each node in the network from the centre. You already have time as cost.

You then choose a centre point, and make a custom projection centred on it.

You then work out the azimuth/bearing from the centre point to each node, and project out along that line by a distance in proportion to the drive time.

This means that the overall structure of the network is recognisable, but that points an equal distance from the centre are the same drive time away from the centre.

This is what it looks like for Scotland...

enter image description here

Note that it only works from the centre, not from any other point.

original here

EDIT: just remembered I blogged about the technique here

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.