JOSM can comfortably load 100MB of OSM XML data, but larger extracts will have severe performance issue.

Features:

  • Command line tool: download by bounding box or URL; search; open OSM file;
  • Graphic interface: main menu, toolbars (main, edit), status bar, dialogs; map view.
    • Download (small amount of) OSM data by bounding box: use slippy map, search by name, or tile number;
    • Map paint styles: custom MapCSS styles;
    • Cursor symbols are informative.
    • Preset: tag templates grouped in a hierarchy; apply to the currently selected objects.
    • Validator: check and fix invalid data.

JOSM writes files in a non-standard OSM format, which is both a data format and a change file format. Osmosis and osm-c-tools (osmconvert, osmfilter) support this format.

  • element bounds for bounding boxes of the downloads, with attribute origin for name of the server;
  • new objects have negative id attribute, which are placeholders for OSM ID.
  • attribute action indicates type of change ("modify" or "delete");
  • attribute upload sets upload preference;

Keyboard Shortcuts

A perhaps outdated list of default shortcuts; and Mapbox's list of shortcuts.


Figure: JOSM Keyboard Shortcuts. Original

† denotes customized shortcuts.

C, search actions. C⇧↑, upload to OSM. (DO IT OFTEN!)

Interface

F3, preset list; F11, fullscreen (toggle); F12, preferences;

TAB, dialogs (toggle); M⇧l, layers; M⇧t, tags/memberships†; M⇧s, selection†; M⇧r, relations; M⇧o, command stack; M⇧f, filter: ENTER toggles Enable, SPACE toggles Hide; M⇧m, map styles;

Cw, wireframe view (toggle);

Viewport

+, zoom in about center of map view; -, zoom out about center of map view; C,, zoom in about mouse; C., zoom out about mouse; 1, zoom to data; 2, zoom to layer; 3, zoom to selection;

C←↑→↓, move viewport; RightMouse, drag to move viewport;

8, previous viewport; 9, next viewport;

Select

s, select mode (rectangle / lasso);

Ca, select all;

e, adjacent nodes;

Cf, search objects; ⇧F3, search objects by preset;

DEL, delete selection.

Edit

a, add/draw mode (standard nodes and ways / snap to angle). Modifiers: C, disable snapping; M, disable continuing; , disable auto-connect.

x, extrude mode (stretch / dual alignment). Modifiers: C, move along/parallel; M, create new way; , always create nodes.

w, improve way accuracy mode.

⇧p, parallel copy mode. ⇧n, align ways mode (plugin). ⇧f, fast drawing mode (plugin).

Ma, add tag to selection. Ms, edit tag of selection.

C⇧, drag to rotate objects around their geometrical centre; CM, drag to scale objects around their geometrical centre;

Cm, merge layers (downwards layer-by-layer); C⇧m, merge selection;

p, split a way at the selected nodes;

Productivity

Filter:

  • filter lines are evaluated from top down;
  • reverse filtering exclude every entity without a specific tag -highway:;
  • parts of a highway child (type:way & highway:);
  • only roads for public transport -((highway | child highway | untagged | public_transport) & -(highway=footway | highway=path | highway=steps | highway=track));
  • aggressive clean up natural: | waterway: | boundary: | landuse: | building: | leisure: | amenity:;
  • all natural and land use areas formed by relations child (type:relation & (natural:|landuse:));
  • disable tagless nodes type:node untagged;
  • using tag count to disable fully tagged objects;
  • disable/highlight recently modified objects to visualize progress new modified, (modified | user:CartoRD);
  • highlight stale data timestamp:2009-08-15/;

Map paint styles: Address Validator for street addresses; Modified for modified objects;

Plugins:

  • TurnRestrictions: select the from and to way in viewer, Turn Restriction Toggle Dialog (list of turn restrictions ) CMt (C⇧2), Turn Restriction Editor 1-9;
  • turnlanes by Ben Schulz;
  • FastDraw: tracing curves t;
  • Utilsplugin2: Add nodes at Intersections;
  • Reverter: reverting accidental changeset uploads C⇧t;

🏷 Category=Geographic Information System