[josm-dev] Making JOSM even more modeless

Chris Morley c.morley at dsl.pipex.com
Sat Oct 13 08:44:37 BST 2007


I like the new JOSM interface: the differentiation between
tagged and untagged ways and nodes, and the reduction in the number of 
modes. But this could go further. There still is uncertainty about which 
way is being added to, and still quite a lot of swithing back and forth 
between "Draw Node" and "Select" mode, even for routine operations.

I think it would be possible to do most routine adding of roads and 
areas in the "Draw nodes" mode only, without the mouse pointer leaving 
the drawing surface and without modifier keys. This extended interface 
is described below in horrific detail below because I am not
able to program it myself. Some common procedures are worked through to 
check that they are convenient. You only need to change nodes or use 
keys when deleting/combining/splitting ways etc or adding POi nodes.

The features are:
- Nodes are only added to selected ways - this removes uncertainty about
which way has been or will be added to, which is a problem at present.

- Clicking a selected node deletes it - click a mistaken node again to
correct. Most routine node deletion would be done this way, so that the
"Delete" mode could be removed and replaced by a "Delete Selection"
button at the top. This properly differentiates modes and action buttons.

- Ways are already selected when made, ready for tagging. This needs 
only ways to be tagged when both ways and nodes are selected. (I've 
recently ended up with unexpectedly tagged nodes.)


    Click on:        With selected: Action          Selection after

1  Empty space       Nothing       Make new node   New Node
2  Empty space       Node          Make new node,
                                     new 2-node way New node,new way
3  Empty space       Way,          Make new node,
                      terminal node  add to way     New node, way
4  Terminal selected               Remove node
    node              Node, way      from way and   New terminal
                                     delete if not
                                     used by another
                                     way            Node, way
5  Selected node                   Remove node
    in way            Node (way)    from way and    Nothing
                                    delete
6  Selected node     Node          Delete node     Nothing
7  Non-terminal
    unselected node
    in selected way   (Node), way   Deselect way    Clicked node
8  Terminal
    unselected node   Node, way     Close way
    in selected way                  (if >2 nodes)  New node,way
9  Unselected node   Node (way)    Make new
                                     2-node way     New node,new way
10 Unselected node   Way,
                      terminal node Add to way      Node,way
11 Unselected node   (Way)         Deselect way    Node
12 Selected way      Way, (node)   Insert node
                                     in way         New node
13 Unselected way    (Node),       Deselect other
                      (other way)    nodes, ways    Way,nearest
                                                     terminal node


Make new way
Click to make new nodes (1+2+3+...), way is selected ready for tagging.

Correct a mistaken new node
Click on it (4)

Add a side road
Click on the node which is to be the junction(7)
   or click between nodes to insert a node (12)
Continue clicking to make new way (2+ 3+...)

Add an area bounded by a road
Click on unselected node to deselect way (7)
Click on the next nodes along the road to make new way(9+10+...)
Click off road (3+...)
Click on first node again (8)

Continue a road as a different way
Click on an unselected node in the selected way (11)
Click on the terminal node (11)
Click to make new nodes (2+3+...)

Delete middle nodes from a way
Deselect the way if necessary by clicking on one of its non-terminal 
nodes (7)
Select a node for removal (11) and click it again (5)...

Extend an existing non-selected way
Select the way (13)
Click to add new nodes (3+...)

Correct where one way ends and the next begins
First way ABCD, second way DEF to be changed to:
First way ABC , second way CDEF
Deselect any selected way by clicking on one of its non-terminal nodes (7)
Select way ABCD (13)
Click node D to disconnect it from ABC(6)
Click node B to deselect ABC (7)
Click way DEF to select it (13)


The following needs mode changes or use of other buttons

Add a POI
Click Deselect All button or ESC key
Click to make new node
Tag it
Click Deselect All button or ESC key

Chris





More information about the josm-dev mailing list