Opened 7 years ago

Last modified 7 years ago

#4280 new enhancement

P2 does not correctly add nodes

Reported by: tom.davie@… Owned by: potlatch-dev@…
Priority: minor Milestone:
Component: potlatch2 Version:
Keywords: Cc:


If you slightly missclick a way while adding a node to an edge which appears in many ways, the node can end up added only to some of the ways.

steps to reproduce:

  1. create a polygon with a landuse tag
  2. create a polygon with a highway=primary tag sharing an edge with it
  3. shift-click the way to add a node, but slightly miss so that you only click the highway, not the landuse edge.

Expected behaviour:
P2 finds all ways that have an edge running between the two nodes, and inserts the new node into all such ways.

Actual behaviour:
P2 only inserts a node into the ways that were actually under the mouse.

Change History (4)

comment:1 Changed 7 years ago by stevage

My preference: P2 notices there are multiple ways and offers you the choice.
Alternative: P2 notices there are multiple ways and tries to guess which one you mean. (Still much better than the current situation, which is it basically picks at random.)

One obvious heuristic would be to link "like with like": if your way has a highway=*, it should connect with a highway=* rather than a boundary=* or a landuse=*.

The current behaviour can be irritating (and worse, lead to the wrong result) when you have something like an administrative boundary running almost parallel with a road). I sometimes end up having to physically move the admin boundary out of the way so I can work on a road, then move it back afterwards. That ends up slightly moving those nodes, of course...

comment:2 Changed 7 years ago by tom.davie@…

To me, if the two ways are already sharing the edge, then they clearly are intended to run along the same series of nodes. It's very rare for you to create two ways with identical nodes, and then want to add a point in the middle where they diverge. If you do, it could be simply done by splitting one way and adding a node away from the shared section, then rejoining.

The heuristic proposed also breaks down even in the example given. Many boundaries for example are defined as running down the centre of a road; or along the edge of an area of land use.

comment:3 Changed 7 years ago by Rogerc

I think it would be extremely helpful to be able to choose one of the ways. I have encountered two situations in particular:

  1. Two almost identical ways with identical tags were superimposed. One was closed, the other was not. (I have found a significant number of such cases; presumbly an inexperienced mapper did this without knowing). Deleting one of them would be very hard without being able to select.
  2. Many areas (woodlands, lakes etc) have been entered in a rather blocky outline form, perhaps being traced from a public domain background. They often share boundaries with each other or with another way. More detailed mapping may show that they actually diverge and come back again from place to place. I do not agree that this is very rare. I recently found a place where a stream ran along the edge of a forest. The stream was split into sections and one section shared all its nodes with the forest. It was not possible to separate them - there was no unshared section. I had to delete the whole shared boundary and then regenerate both ways.

comment:4 Changed 7 years ago by tom.davie@…

Case 1 is not described by this bug report at all. The behaviour of selecting a way, or nodes on a way would not be changed by it. Only the behaviour of inserting nodes on a pair of ways that share a sequence of nodes.

Case 2 is covered, but easily worked around as I stated earlier. Select one way, select a node on it, press the split button, click the node at the split, then away from the forrest, then back to where you want the ways to rejoin. Remerge the ways. Done.

Note: See TracTickets for help on using tickets.