The easy-to-use OpenStreetMap editor in JavaScript.
Clone or download
bhousel Merge pull request #5499 from RudyTheDev/more-fill-patterns
Add fill patterns for various areas
Latest commit 107f669 Nov 18, 2018
Failed to load latest commit information.
.tx Change imagery Transifex to YAML, use translated name and description Jun 16, 2017
css Add water waves fill pattern and pond-specific pattern Nov 18, 2018
data Updates terms for Mobile Phone Mast and Television Mast presets Nov 13, 2018
dist Add water waves fill pattern and pond-specific pattern Nov 18, 2018
docs Updated screenshot of editing modes buttons. Dec 25, 2013
modules Add water waves fill pattern and pond-specific pattern Nov 18, 2018
scripts Fix shellbang Aug 1, 2018
svg Adds presets for common cuisines Nov 10, 2018
test Partition viewport by tiles, not by pixels Nov 14, 2018
.eslintrc Remove babel-eslint parser (not needed since we removed flow) Apr 2, 2018
.gitattributes Add fixWinSymlinks.bat and instructions to README Apr 5, 2016
.gitignore Remove pannellum streetside files from `dist/` Jul 27, 2018
.npmignore pacify linter, gitignore vscode settings Jun 22, 2018
.travis.yml Test Node 10 on travis matrix build May 7, 2018 Rename scaleExtent to zoomExtent, slightly simplify getTiles() Jul 22, 2018 WIP merge 'gpx' and 'mvt' layers into single 'data' layer Aug 17, 2018 changelog: fix typo Sep 29, 2018 Add Code of Conduct Mar 27, 2016 Fix typo in URL ( Aug 27, 2018 Add info about customizing colors with Stylish to the FAQ Sep 18, 2017 Update date Jul 7, 2017 Add support for FontAwesome icons as preset icons Jun 6, 2018 Remove pannellum streetside files from `dist/` Jul 27, 2018
build_css.js Pacify eslint Sep 29, 2017
build_data.js Upgrade fontawesome libraries Sep 6, 2018
build_src.js Merge matching polygons across tile boundaries Aug 24, 2018
development_server.js Upgrade 'std/esm' to 'esm', fixing the build issues on Node 10 May 11, 2018
index.html Don't disable boundries when disable_features list is present Oct 23, 2017
package.json Update rollup dependency Nov 14, 2018

iD - friendly JavaScript editor for OpenStreetMap

Build Status Greenkeeper badge


  • iD is a JavaScript OpenStreetMap editor.
  • It's intentionally simple. It lets you do the most basic tasks while not breaking other people's data.
  • It supports all popular modern desktop browsers: Chrome, Firefox, Safari, Opera, Edge, and IE11.
  • iD is not yet designed for mobile browsers, but this is something we hope to add!
  • Data is rendered with d3.js.


Come on in, the water's lovely. More help? Ping bhousel on:


  • Node.js version 6 or newer
  • git for your platform
    • Note for Windows users:
      • Edit $HOME\.gitconfig:
        Add these lines to avoid checking in files with CRLF newlines
        autocrlf = input


Note: Windows users should run these steps in a shell started with "Run as administrator". This is only necessary the first time so that the build process can create symbolic links.

To run the current development version of iD on your own computer:

Cloning the repository

The repository is reasonably large, and it's unlikely that you need the full history. If you are happy to wait for it all to download, run:

git clone

To clone only the most recent version, instead use a 'shallow clone':

git clone --depth=1

If you want to add in the full history later on, perhaps to run git blame or git log, run git fetch --depth=1000000

Building iD

  1. cd into the newly cloned project folder
  2. Run npm install
  3. Run npm run all
  4. Run npm start
  5. Open http://localhost:8080/ in a web browser

For guidance on building a packaged version, running tests, and contributing to development, see


iD is available under the ISC License. See the file for more details.

iD also bundles portions of the following open source software.

Thank you

Initial development of iD was made possible by a grant of the Knight Foundation.