{"id":17288791,"url":"https://github.com/stepankuzmin/node-isochrone","last_synced_at":"2025-04-14T11:20:28.831Z","repository":{"id":21316715,"uuid":"90349808","full_name":"stepankuzmin/node-isochrone","owner":"stepankuzmin","description":"NodeJS isochrone map library","archived":false,"fork":false,"pushed_at":"2023-04-26T14:44:38.000Z","size":4529,"stargazers_count":30,"open_issues_count":19,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T00:41:13.471Z","etag":null,"topics":["geojson","isochrones","library","map","nodejs","osrm"],"latest_commit_sha":null,"homepage":"https://stepankuzmin.github.io/node-isochrone","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stepankuzmin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-05-05T07:34:19.000Z","updated_at":"2025-02-13T09:21:30.000Z","dependencies_parsed_at":"2023-12-16T00:07:31.172Z","dependency_job_id":"0e93e343-8710-4e7e-9371-335c59204aa3","html_url":"https://github.com/stepankuzmin/node-isochrone","commit_stats":{"total_commits":306,"total_committers":7,"mean_commits":"43.714285714285715","dds":"0.28431372549019607","last_synced_commit":"c820621a8ae258069cf66de8c4b03c4e1c75526b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepankuzmin%2Fnode-isochrone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepankuzmin%2Fnode-isochrone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepankuzmin%2Fnode-isochrone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepankuzmin%2Fnode-isochrone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stepankuzmin","download_url":"https://codeload.github.com/stepankuzmin/node-isochrone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650436,"owners_count":21139672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geojson","isochrones","library","map","nodejs","osrm"],"created_at":"2024-10-15T10:30:00.208Z","updated_at":"2025-04-14T11:20:28.784Z","avatar_url":"https://github.com/stepankuzmin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Isochrone\n\n[![npm version](https://img.shields.io/npm/v/isochrone.svg)](https://www.npmjs.com/package/isochrone)\n[![npm downloads](https://img.shields.io/npm/dt/isochrone.svg)](https://www.npmjs.com/package/isochrone)\n[![Build Status](https://travis-ci.com/stepankuzmin/node-isochrone.svg?branch=master)](https://travis-ci.com/stepankuzmin/node-isochrone)\n\nIsochrone maps are commonly used to depict areas of equal travel time.\nBuild isochrones using [OSRM](http://project-osrm.org/), [Turf](http://turfjs.org/) and [concaveman](https://github.com/mapbox/concaveman).\n\n![screenshot](https://raw.githubusercontent.com/stepankuzmin/galton/master/example.png)\n\n## Installation\n\n```sh\nnpm install osrm isochrone\n```\n\n## Usage\n\n### Building OSRM graph\n\nThis package consumes preprocessed [OSRM](http://project-osrm.org/) graph as an input. To build such a graph you have to extract it from your OSM file with one of [profiles](https://github.com/Project-OSRM/osrm-backend/wiki/Profiles) and build it using one of the algorithms (Contraction Hierarchies or Multi-Level Dijkstra).\n\nTo build OSRM graph using `isochrone` package, you can clone the source code and install dependencies\n\n```sh\ngit clone https://github.com/stepankuzmin/node-isochrone.git\ncd node-isochrone\nnpm i\n```\n\nHere is an example of how to extract graph using `foot` profile and build it using contraction hierarchies algorithm.\n\n```sh\nwget https://s3.amazonaws.com/mapbox/osrm/testing/monaco.osm.pbf\n./node_modules/osrm/lib/binding/osrm-extract -p ./node_modules/osrm/profiles/foot.lua monaco.osm.pbf\n./node_modules/osrm/lib/binding/osrm-contract monaco.osrm\n```\n\n### Example\n\nSee [API](https://github.com/stepankuzmin/node-isochrone/blob/master/API.md) for more info.\n\n```js\nconst OSRM = require(\"osrm\");\nconst isochrone = require(\"isochrone\");\n\nconst osrm = new OSRM({ path: \"./monaco.osrm\" });\n\nconst startPoint = [7.42063, 43.73104];\n\nconst options = {\n  osrm,\n  radius: 2,\n  cellSize: 0.1,\n  intervals: [5, 10, 15]\n};\n\nisochrone(startPoint, options).then(geojson =\u003e {\n  console.log(JSON.stringify(geojson, null, 2));\n});\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstepankuzmin%2Fnode-isochrone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstepankuzmin%2Fnode-isochrone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstepankuzmin%2Fnode-isochrone/lists"}