Isochrone maps are commonly used to depict areas of equal travel time. Build isochrones using OSRM, Turf and concaveman.
npm install osrm isochroneThis package consumes preprocessed OSRM graph as an input. To build such a graph you have to extract it from your OSM file with one of profiles and build it using one of the algorithms (Contraction Hierarchies or Multi-Level Dijkstra).
To build OSRM graph using isochrone package, you can clone the source code and install dependencies
git clone https://github.com/stepankuzmin/node-isochrone.git
cd node-isochrone
npm iHere is an example of how to extract graph using foot profile and build it using contraction hierarchies algorithm.
wget https://s3.amazonaws.com/mapbox/osrm/testing/monaco.osm.pbf
./node_modules/osrm/lib/binding/osrm-extract -p ./node_modules/osrm/profiles/foot.lua monaco.osm.pbf
./node_modules/osrm/lib/binding/osrm-contract monaco.osrmSee API for more info.
const OSRM = require("osrm");
const isochrone = require("isochrone");
const osrm = new OSRM({ path: "./monaco.osrm" });
const startPoint = [7.42063, 43.73104];
const options = {
osrm,
radius: 2,
cellSize: 0.1,
intervals: [5, 10, 15]
};
isochrone(startPoint, options).then(geojson => {
console.log(JSON.stringify(geojson, null, 2));
});