Skip to content

Commit

Permalink
Simplify, boldify
Browse files Browse the repository at this point in the history
  • Loading branch information
tmcw committed Dec 4, 2012
1 parent 22fe357 commit ce4c6c4
Showing 1 changed file with 12 additions and 53 deletions.
65 changes: 12 additions & 53 deletions README.md
@@ -1,34 +1,24 @@
# iD - friendly JavaScript editor for OpenStreetMap # iD - friendly JavaScript editor for [OpenStreetMap](http://www.openstreetmap.org/)

[![Build Status](https://secure.travis-ci.org/systemed/iD.png)](https://travis-ci.org/systemed/iD)


[![](https://raw.github.com/systemed/iD/master/screenshot.jpg)](http://geowiki.com/iD/) [![](https://raw.github.com/systemed/iD/master/screenshot.jpg)](http://geowiki.com/iD/)


[Try the online demo of the most recent code.](http://geowiki.com/iD/) [Try the online demo of the most recent code.](http://geowiki.com/iD/) and
[open issues for bugs and ideas!](https://github.com/systemed/iD/issues)


## Basics ## Basics


* iD is a JavaScript-based [OpenStreetMap](http://www.openstreetmap.org/) editor. * iD is a JavaScript [OpenStreetMap](http://www.openstreetmap.org/) editor.
* It's intentionally simple. This is not a 90% editor - * It's intentionally simple. It lets you do the most basic tasks while
not even a 70% editor. It should let you do the most basic tasks while not breaking other people's data.
not breaking other people's data. Nothing more. (Same goes for the code, * We support modern browsers. Data is rendered with [d3](http://d3js.org/).
so go easy on the abstraction. :) )
* We're aiming to support modern desktop browsers and mobile browsers. The map
rendering uses [SVG](http://en.wikipedia.org/wiki/Scalable_Vector_Graphics) via
[d3](http://d3js.org/).

## Architecture


* iD uses [d3](http://d3js.org/) for graphics & managing databindings to the ## Participate!
map. There's a tiny tiled-map core, but the majority of the action is in
dynamic rendering of the editable map data.
* This project aims to create a usable object model of [OpenStreetMap data](http://wiki.openstreetmap.org/wiki/Tags)
in Javascript that can be transformed by actions and serialized back into
[changesets](http://wiki.openstreetmap.org/wiki/Changeset)

## Getting started


* [Read NOTES.md, our ongoing dev journal](https://github.com/systemed/iD/blob/master/NOTES.md)
* Fork this project. We eagerly accept pull requests. * Fork this project. We eagerly accept pull requests.
* See [open issues in the issue tracker if you're looking for something to do](https://github.com/systemed/iD/issues?state=open) * See [open issues in the issue tracker if you're looking for something to do](https://github.com/systemed/iD/issues?state=open)
* All the code is in js/iD.


To run the code locally, just fork this project and run it from a local webserver. To run the code locally, just fork this project and run it from a local webserver.
With a Mac, you can enable Web Sharing and drop this in your website directory. With a Mac, you can enable Web Sharing and drop this in your website directory.
Expand All @@ -37,38 +27,7 @@ If you have Python handy, just `cd` into `iD` and run


python -m SimpleHTTPServer python -m SimpleHTTPServer


## How it works Come on in, the water's lovely. More help? Ping RichardF, tmcw, or jfire on IRC

The code inherits many elements from the [Potlatch 2](http://wiki.openstreetmap.org/wiki/Potlatch_2)
and [JOSM](http://josm.openstreetmap.de/) editors.

We store technical notes in [NOTES.md](https://github.com/systemed/iD/blob/master/NOTES.md). The
basic architecture is as follows:

* Map: vector rendering, panning behaviors & zoom/center state
* Tiles: receives map centers & draw tiles as a background for iD
* Connection: requests `/map` data from osm, parses this data and delivers it to the Graph
* Graph: stores a javascript object of `id -> osm object`
* History: stores multiple graphs which represent undo states

Relationships:

* Map has-a Tiles
* Map has-a Connection
* Map has-a History
* History has-many Graphs

## Coding tips

This project has a few basic guidelines for incoming code. The cardinal rules are:

1. Soft tabs only
2. Everything should pass [jshint](http://www.jshint.com/) without warning
3. Never write bugs

(you can write bugs). If you need a style guide, [AirBNB has a decent one.](https://github.com/airbnb/javascript)

Come on in, the water's lovely. More help? Ping RichardF or tmcw on IRC
(`irc.oftc.net`, in `#osm-dev` or `#osm`), on the OSM mailing lists or at (`irc.oftc.net`, in `#osm-dev` or `#osm`), on the OSM mailing lists or at
richard@systemeD.net. richard@systemeD.net.


Expand Down

0 comments on commit ce4c6c4

Please sign in to comment.