0

I'm intending to calculate the walking distance (not the linear distance, but the "real travelled distance") to several locations (e.g. social infrastructure). Thus I will have to create a routable network.

Most implementations I found are based on a single point only. This would be hell of work, so I hoped there is a possible solution to do the calculation at once for a set of multiple points.

I think the way to go would be PostgreSQL and pgrouting with dijkstra, but I'm not sure. My input layer is a point layer with the given locations, then I have OSM data which has to be made routable. What is the best way to achieve getting isochrone or isodistance (travelled distance) maps?

I also took a look at grapphopper, which seems to be great and easy to configure for an isochrone map of a single point, but I didn't find an implementation for a multipoint isochrones case.

Any hints?

  • graphhopper does multi-point routes graphhopper.com/maps/… – Mapperz Dec 30 '18 at 19:55
  • I know, that is does multipoint routes, but I think it doesn't do isochrones for several locations calculated in one step. I could do the calculation for each point and then merge the isochrone/isodistance polygones, but that isn't my first choice. – Catarina Dec 30 '18 at 20:03
1

With pgRouting you may need a few steps, but the basic function pgr_drivingDistance allows to use an array of start points: https://docs.pgrouting.org/latest/en/pgr_drivingDistance.html#pgr-drivingdistance

SELECT * FROM pgr_drivingDistance( 'SELECT id, source, target, cost, reverse_cost FROM edge_table', array[2,13], 3, equicost:=true );

This will return a list of network nodes with the cost, that is needed to reach each node. You can use other pgRouting functions to create polygons for example: https://docs.pgrouting.org/latest/en/pgr_drivingDistance.html#see-also

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.