Opened 12 years ago

Last modified 11 years ago

#1313 new enhancement

Highlight "nodes on the same spot"

Reported by: Nybbler Owned by: cbro@…
Priority: minor Milestone:
Component: merkaartor Version:
Keywords: Cc:


Often nodes are on the same spot (errors easily introduced by potlatch users). By highlighting nodes which are at the exact same position or very close to each other could help to find and solve at lot of errors.

The same could be helpful for streets. Some inexperienced users double streets or this error is introduced by potlatch (even possible with Merkaator I think), so highlighting could help a lot.

One further idea: highlight streets which cross eachother but don't share a point. This is often ok (bridges) but also very often an error (crossings).

Attachments (1)

MoveTrackPointInteraction.cpp.diff (2.7 KB) - added by LonelyPixel 11 years ago.
Patch of my proposed implementation

Download all attachments as: .zip

Change History (5)

comment:1 Changed 12 years ago by Chris Browet

I suggest to add Maplint as background image provider. It highlights common mistakes pretty well.

comment:2 Changed 12 years ago by Nybbler

I think adding Maplint is a good idea. But I have found many nodes-on-the-same-spot errors which where not detected by Maplint, maybe because they where not exactly on the same spot, but very close. The only way to detect them was looking at the rendered tile at z17 searching edgy looking connections. Or by looking really hard in Merkaartor, cause due to the opacity things get darker if they lay on top of each other.

comment:3 Changed 11 years ago by LonelyPixel

Another suggestion to avoid "duplicate node" situations: When I correct roads that are not connected on the map, I remove nodes from the road or move end points onto other nodes to establish a connection. When I drop one node onto another node, I'd wish for Merkaartor to ask me whether I want to merge both nodes. Right now I need to know that and then go select both nodes by area (two or more nodes are then in the selection list) and use the menu command "Nodes, Merge".

comment:4 Changed 11 years ago by LonelyPixel

This is the implementation of my comment to this bug. When you move nodes, they snap to other existing nodes, which is a comfortable thing if you want to connect roads at existing nodes. Currently, when you do this, you end up keeping both nodes at the same position and no real connection between the roads.

This patch comes into action when you are done moving a single node. It scans the document for other visible* nodes at the same position. If there are any, it shows a message box asking whether the nodes shall be merged. If you say yes, all nodes found at that exact position are merged into the first node that was found that has already been there. Usually this is one node and you're merging two nodes then. (But if there have already been multiple nodes, it will be corrected silently.) The merging is adapted from the existing Merge Nodes command and gets its own undo item.

*) It only checks for visible nodes. So for the check to work, you need to have the relevant layers enabled. I assume this is always the case as you won't be editing the map blindly. OTOH it will ignore GPX nodes if that layer is hidden. The snapping code also only takes visible nodes, and so does my patch. (Code adapted from there.)

Changed 11 years ago by LonelyPixel

Patch of my proposed implementation

Note: See TracTickets for help on using tickets.