-
Notifications
You must be signed in to change notification settings - Fork 51
Becoming a power mapper
The easiest way to fix common mapping issues is to use the inbuilt validator in JOSM. All edits made in a session are automatically validated and a warning will be displayed before upload if any suspicious data is found.
- Select the data you want validated and press
Shift+V
or hitValidate
from the Validator panel. If no data is selected, the Validator will run on all the data in the active layer. - A Validation errors layer will be added to your Layers to highlight features with errors.
- The Validation Results panel will display all the detected errors. Select any of the detected errors to fix. You can right click an entry and zoom to the location if needed.
The Validation Results have several buttons activated to navigate and fix errors:
- Select – Select the objects of the selected error.
- Lookup – Looks up the selected primitives in the error list.
- Validation – Start validation process for current selection or all objects (when nothing selected).
- Fix – Fix an error (only when automatically fixable).
- Ignore – Ignore an error or a group of errors in future tests.
By default the validator checks against a wide range of data issues, many of which may not be important or may contain false positives. You can customize the settings from Preferences > Data Validator
For more details check the OSM Wiki and the LearnOSM Guide
You can quickly query and visualize OSM data live using Overpass Turbo.
- Browse the map to the area of interest or alternatively set a bounding box using the map tool on the left.
- Write an Overpass Query in the query editor or use the Wizard for simple tag queries like
highway=motorway or highway=trunk
- Optionally add a MapCSS style to visualize the results
- Hit
Run
to execute the query on the OSM data and display the results. Tip: By default small ways are rendered as circles. To fix this check theDon't display small features as POIs
option fromSettings > Map
For more details check the OSM Wiki, Learn Overpass or some common example queries.
As you draw using the JOSM editor, or correct map errors on to-fix, keyboard shortcuts can save help you save a great deal of time and increase the quality of your mapping [strokes replaced] if used correctly. Here we'll cover keyboard shortcuts on JOSM - default settings, how you can customize these to suit your preferences, and shortcuts most popular with the data team.
Use the JOSM cheatsheet by user:baditaflorin
By default, the JOSM editor comes pre-loaded with approximately 100+ shortcuts which cover everything from downloading/uploading map data from the OpenStreetMap server, adding/editing/deleting tags, validating results, and working with nodes, ways, and polygons. See the Common Keyboard Shortcuts on the JOSM wiki for more details.
Under Tools on the menu bar, you can see some of the basic default shortcuts on JOSM
The default shortcuts on JOSM are a great way to get started, but once you are familiar and start speed mapping, you may want to consider customizing the JOSM shortcuts to fit your mapping preferences. For example, you can customize shortcuts to allow you to map quickly without having to take your right hand off the mouse.
Action | Keyboard Shortcut |
---|---|
Uploading the edit | </kbd><!-- --> |
Downloading data | Q |
Deleting data | D |
To access the Shortcuts Menu, go to Preferences on the JOSM menu bar. Within Preferences, click Options on the left (seventh button).
Here is a comprehensive categorized list of shortcuts everyone should be familiar with.
ACTION | DESCRIPTION | Mac | Win/Linux |
---|---|---|---|
OPEN | open a file | Cmd+O |
|
SAVE | save current data | Cmd+S |
|
DATA DOWNLOAD | download map data from OSM server | Cmd+Shift+Down |
|
DATA UPLOAD | upload all changes in the active data layer to the OSM server | Cmd+Shift+Up |
ACTION | DESCRIPTION | Mac | Win/Linux |
---|---|---|---|
SELECTION | select, move, scale, and rotate objects | S |
S |
NODES | draw nodes | A |
A |
BUILDINGS | draw building | B |
B |
DRAW | fast drawing mode | Shift + F |
|
ZOOM | zoom and move map | Z |
Z |
DELETE | delete nodes or ways | Cmd + D |
|
SPLIT WAY | split a way at a selected node | P |
P |
COMBINE WAY | combine several ways into one | C |
C |
REVERSE WAY | reverse the direction of all selected ways | R |
R |
SIMPLIFY WAY | delete unnecessary nodes from a way | Shift+Y |
|
ALIGN NODES IN CIRCLE | move the selected nodes into a circle | O |
O |
ALIGN NODES IN LINE | move the selected nodes into a line | L |
L |
MIRROR | mirror selected nodes and ways | Shift+M |
|
FOLLOW LINE | continues drawing a line that shares nodes with another line | F |
F |
ADD NODE | add a node by adding latitude/longitude or easting/northing | Shift+D |
|
CREATE CIRCLE | create a circle from three selected nodes | Shift+O |
|
MERGE NODES | merge nodes into the oldest one | M |
M |
JOIN NODE TO WAY | include a node into the nearest way segment | J |
J |
MOVE NODE INTO WAY | move node into the nearest way segments and include it | N |
N |
DISCONNECT NODE FROM WAY | disconnect nodes from a way they currently belong to | Alt+J |
|
UNGLUE WAYS | duplicate nodes that are used by multiple ways | G |
G |
JOIN OVERLAPPING AREAS | join areas that overlap each other | Shift+J |
|
CREATE MULTIPOLYGON | create a multipolygon | Cmd + B |
|
UPDATE MULTIPOLYGON | update a multipolygon | Cmd+Shift+B |
ACTION | DESCRIPTION | SHORTCUT |
---|---|---|
PARALLEL WAYS | make parallel copies of ways | Shift+P |
WAY ACCURACY | improve the accuracy of ways | W |
ORTHOGONALIZE SHAPE | move nodes so all angles are 90 or 180 degrees | Q |
DISTRIBUTE NODES | distribute the selected nodes to equal distances along a line | Shift+B |
EXTRUSION | create areas | X |
BUILDING SIZE | set building size | Cmd+Alt+B |
ACTION | DESCRIPTION | SHORTCUT |
---|---|---|
SEARCH PRESETS | show preset search dialogue | F3 |
ACTION | DESCRIPTION | SHORTCUT |
---|---|---|
PREFERENCES | open a preferences dialogue for global settings | Cmd + , |
LAYERS WINDOW | open a list of all loaded layers | Alt+Shift+L |
TAGS/MEMBERSHP WINDOW | open tags window for selected objects | Alt+Shift+P |
SELECTION WINDOW | open a selection list window | Alt+Shift+T |
RELATIONS WINDOW | open a list of all relations | Alt+Shift+R |
WIREFRAME VIEW | enable/disable rendering the map as wireframe only | Cmd+W |
ACTION | DESCRIPTION | SHORTCUT |
---|---|---|
IMAGERY OFFSET | download offset for current imagery from a server | Cmd+Alt+I |
ACTION | DESCRIPTION | SHORTCUT |
---|---|---|
CHECK AUTHOR | open list of people working on a selected object | Alt+Shift+A |
RESOLVE CONFLICT | resolve a conflict | Alt+Shift+C |
ACTION | DESCRIPTION | SHORTCUT |
---|---|---|
CHANGESET MANAGER | toggle visibility of changeset manager window | Cmd+Alt+C |
VALIDATION WINDOW | open validation window | Alt+Shift+V |
VALIDATE | performs data validation | Shift+V |
FILTERS | filter objects and hide/disable them | Alt+Shift+F |
HISTORY JOSM | check history of an object | Ctrl+H |
HISTORY WEB | check the history of object on web | Cmd+Shift+H |
It is possible to save a JOSM session similar most GIS software (in QGIS we call it a project file). The JOSM session saves your current map view, OSM data and loaded layers such as imagery.
The JOSM session is available in File menu. You need to be in Expert mode to access this feature.
To activate Expert mode, go to JOSM Preferences, activate Expert mode by clicking the checkbox.
Load any of your preferred layers in JOSM.
Save the JOSM session file clicking, File > Session > Save session as ...
Select any layers you want loaded when you start a new JOSM session.
To load a previously saved JOSM session, click File > Session > Load session.
Select the .jos
you saved.
NOTE: Do not save any OSM data within your .jos
file. Always load new data to avoid data conflicts.
Examples of session files we use in the /mapping repo.
- https://help.openstreetmap.org/questions/731/how-can-i-revert-a-changeset
- http://wiki.openstreetmap.org/wiki/JOSM/Plugins/Reverter
Hidden settings in JOSM can be configured directly from the advanced preferences panel. This also gives you access to export and import your configuration profiles.
The panel is hidden by default and is shown as the last option when Expert mode
is enabled.
Note JOSM will need to be restarted for any changes to take effect.
Neighborhood grid
Residential buildings are usually located on a residential
or living_street
and has access to a road only on one side, and optionally on the backside via a service alleyway
. A building with residential roads on multiple sides is a sign of mistaking building shadows for streets. The street grid in an an area will have repeating patterns that make it easy to guess how the roads are laid even if they are obscured by trees.
Using Fast draw plugin
- Install and use Fast draw plugin (
shift + F
). - Press down arrow to simplify way, up arrow to add more complexity and then
Enter
. -
Q
to simplify straight segments of roads. - Shortcuts to tag each type of road classification Preferences > Customize the icons in the toolbar > Presets > highways/ features that require shortcut > highways/streets > select the road you want to add as shortcut > right click on the shortcut and add a shortcut.
Video Faster draw in JOSM
-
Parallel buildings can be traced using the building tools plugin (
B
). Select a building and using the tool align subsequent buildings to the first one in one step. -
You can use the Area extrude tool (
x
), to quickly add details to the outlines by creating new nodes (double click) and then dragging the faces. -
Compound buildings To combine overlapping buildings, select both building and click Join overlapping Areas (
Shift + J
). For several intersecting buildings, useI > Shift+J
. Or, use the Auto Tools > Combine LA buildings.
- In Extrusion mode (
X
), doCtrl + Cmd
to redraw/reshape buildings for irregularly shaped buildings.
- In Extrusion mode (
X
), add four nodes in a segment, hold theCtrl + Cmd
key, and drag the middle segment to create pyramidal extrusions.
- Double tap
A
to draw buildings with irregular sized extrusions. Or create several smaller buildings
- For buildings sharing the same wall, draw buildings (
B
) and, select intersecting node and click Join Node to a Way (J
) or Move Node unto Way (N
).
- To split a single building into two, select two nodes and select Split Object (
Alt + X
)
- Use Terracer plugin for multiple same shaped buildings sharing the same wall (
Shift + T
)
-
For circular features, draw the diameter, select the way, and click Tools > Create Circle (
Shift + O
). -
Use Resize tool (
Ctrl + Alt
) to re-size shape.
Videos
Individual parking spaces
Draw a box enclosing the parking spaces and use the terracer plugin to create a grid. Replace the default building=yes
tag with amenity=parking_space
. If you created adjacent grids, you would want to use the validator to automatically merge the overlapping nodes.
Tagging driveway through a building
Relevant tagging option for building would be
building=roof
and layer=1
Highway road under the roof tagging options
covered=yes
highway=footway
highway=residential
highway=service
Tagging stadium tracks
Relevant tagging option for Stadium would be
- trace centerline of track as line (
leisure=track;area=no
) - connect centerlines with surrounding foot paths or streets where possible
Identifying common mistakes made by mappers for road network and knowing how to fix them is important to improve the quality of the map. If you spot mistakes which needs major fixing, send a friendly message on the users' changeset on what is wrong and how it could be fixed. You can use this guide as a reference while fixing data errors in JOSM.
Issue | Whats wrong | How to fix it | Tips |
---|---|---|---|
Overlapping ways | A highway which run over itself or another way with the exact same road classification. (Note the arrows on the selected way) | Run validator shift+V —> Among validator errors/warnings select Overlapping ways —> Delete the overlapping way, make sure there are no gaps or missing pieces left behind. |
|
Untagged Ways | Ways with no tags associated with the geometry | Run validator shift+V —> Among validator errors/warnings select Untagged ways —> Select individual ways and add appropriate highway tags |
Refer OpenStreetMap wiki on highway tagging schema |
Crossing ways | The ways (with highway/railway/waterway tags) that crosses in same layer with no crossing/intersecting node | Run validator shift+V —> Among validator errors/warnings select Crossing ways —> shift+I to add the intersecting node |
Install utilsplugin2 to get advanced intersection modeling features. Refer to this guide for JOSM shortcuts. |
Self-intersecting ways | A highway which intersects itself, possibly sharing same nodes at intersection. | Run validator shift+V —> Among validator errors/warnings select Self-intersecting way —> Split using shortcut (P ) at the intersection (common node) and delete the segment which is intersecting the highway |
|
Way end node near other highway | A highway node which ends near to other highways but dont connect each other. | Run validator shift+V —> Among validator errors/warnings select Way end node near other highway —> Select individual node and press shift+J to form the connection. |
|
Add layer=1 for bridges |
If there is a lot bridges without layer=1 tag, you can filter bridges easily. |
Go to every bridge and look into imagery for it's layers (layer=1, layer=2 etc) and add | OSM Wiki on bridge |
Add junction=roundabout | Add junction=roundabout for circle |
OSM Wiki for roundabout | |
Possibility to improve alignment | Use W to align the lines/polygons to the imagery |
{% raw %}
[out:xml][timeout:600];
(
way["highway"](newer:"2015-05-30T07:00:00Z")({{bbox}});
);
out body;
>;
out skel qt;
{% endraw %}
{% raw %}
[out:xml][timeout:600];
(
way["highway"](changed:"2015-05-14T07:00:00Z","2015-05-30T07:01:00Z")({{bbox}});
);
out body;
>;
out skel qt;
{% endraw %}
{% raw %}
[diff: "2015-06-30T15:00:00Z","2015-09-21T15:00:00Z"][out:xml][timeout:25];
(
way["highway"]({{bbox}});
);
out body;
>;
out skel qt;
{% endraw %}
{% raw %}
[out:json][timeout:25];
(
node(user:"ramyaragupathy")({{bbox}});
way(user:"ramyaragupathy")({{bbox}});
relation(user:"ramyaragupathy")({{bbox}});
);
out body;
>;
out skel qt;
{% endraw %}
{% raw %}
[out:json][timeout:25];
(
node["amenity"="hospital"]({{bbox}});
way["amenity"="hospital"]({{bbox}});
relation["amenity"="hospital"]({{bbox}});
);
out body;
>;
out skel qt;
{% endraw %}
{% raw %}
[out:json][timeout:25];
(
node["amenity"]({{bbox}});
way["amenity"]({{bbox}});
relation["amenity"]({{bbox}});
);
out body;
>;
out skel qt;
{% endraw %}
{% raw %}
[out:json][timeout:25];
(
node["highway"="footway"]["footway"!~"."]({{bbox}});
way["highway"="footway"]["footway"!~"."]({{bbox}});
relation["highway"="footway"]["footway"!~"."]({{bbox}});
);
out body;
>;
out skel qt;
{% endraw %}
{% raw %}
[out:json][timeout:250];
(
(
way({{bbox}})[highway='primary'];
relation({{bbox}})[highway='primary'];
)->.a;
node.a[name='Sand Hill Road'];
);
out body;
>;
out skel qt;
{% endraw %}
{% raw %}
[out:json][timeout:250];
(
area[name="Palo Alto"];
way(area)["building"];
relation(area)["building"];
);
out body;
>;
out skel qt;
{% endraw %}
The OSM ecosystem has an array of tools that you can use to extract, modify, visualize data, and contribute to!
- Fieldpapers for paper based surveying
- Mapillary for crowdsourcing streetview imagery
- To-fix
- Map Roulette
- Map tasking manager for coordinating mapping in a continuos area
- Awesome GeoJSON - list of some awesome tools around GeoJSON
- Overpass Turbo for querying OSM by properties
- GeoJSON.io for creating / editing GeoJSON data
- Dropchop for GIS based actions
- Flatten GeoJSON attributes Converter
- Merge GeoJSONs
- Minjur for converting large OSM data to GeoJSON
- tippecanoe Builds vector tilesets from large collections of GeoJSON features
- Collection of useful GeoJSON tools
- toGeoJSON toGeoJSON turns KML & GPX into GeoJSON
- OSM Inspector
- WHODIDIT OpenStreetMap Changeset Analyzer
- Heatmap
For full list check the OSM Wiki
- Use the history tab on the map to find and message active mappers nearby
- Write on your OSM Diaries to bring up issues for community discussion
- Join your local community mailing list for discussions on various topics
- Who is around me? Find local mappers
- To the OSM Homepage
- To the development of the OSM map style and cartography
- By publishing your tool on osmlab
- OSM wiki: Contribute