-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow to continue drawing of area #2272
Comments
I'm not sure I understand this issue. After an area is completed, you can still expand the area by selecting any point or midpoint on the perimeter and dragging it to where you need it. This isn't as fast as clicking around the first time (say if you are tracing a lake or building), but the user isn't really stuck with no way to resize the area. |
I think this is a request for a way to re-enter draw mode for an area -- via placing points rather than dragging midpoints. |
Exactly. The "midpoint" method is way too tedious for drawing large areas. So for now I rather delete the accidentally finished area and start drawing new from scratch. |
Wouldn't an approach as in #760 solve this ("unfinished" areas) and also the case of "overly coarsely" drawn ways in an elegant manner? @Mashin6 For the time being, you could also split the area (thus creating a multipolygon out of it), disconnect the two ways and then continue drawing one of the lines. |
That's it. I am no longer identifying areas until they sort out this issue. I spent 10 minutes drawing a lake then accidentally closed its polygon. I could have used my time playing Solitaire like everyone else. |
For reentering draw mode, how about a UI analogous to the continue line UI, where the option appears in the context menu if two adjacent points are selected? I guess it is an obscure feature, but I think it is also something more ambitious users will want to occasionally do. (took a look for issues after seeing https://www.reddit.com/r/openstreetmap/comments/7snh9c/i_accidentally_prematurely_completed_an_area_that/ ) |
Preferably, the UI should specify where and in which direction to start redrawing, but a selection of multiple elements doesn't seem to be able to do so. At least the user needs to know the drawing direction to place the correct new vertex first.
Yes, we do only need more efficient replacement for multiple (midpoint) drags. Therefore, I came up with the idea to use a midpoint drag gesture as the UI: The video is faked for demonstration of the UI, the code doesn't exist yet, but I might do it if desired.
|
@slhh I like the midpoint idea, but the drag gesture seems not fitting to GUI style of iD. I personally would prefer a context menu option, which would activate 'drawing mode' from one of the neighboring nodes. |
I think I'd prefer to just use a modifier key to extend the area, this seems simpler: Midpoint dragging onto an adjacent node to enter a new mode seems really complicated (and you're not guaranteed that that nearby node is even nearby or onscreen) |
Just another idea: Select two adjacent nodes in an area, and do something--press A? context menu?--and iD would go into area-expansion mode, with the new node being added between the two selected nodes. This would be relatively simple, and unambiguous as to where the new node would be created. |
You seem to propose the following workflow:
Is that correct? I see the following issues:
|
The user is not aware of the ids, it would appear as a random behaviour.
At least you need to know the drawing direction, e.g. when you want to insert two nodes 1 and 2 between the existing nodes a and b, you need to know wheather drawing starts from a or b to place 1 or 2 first. You want to specify the direction, when you use that segment as a start to redraw multiple segments. |
We could offer a context menu and shortcut reshape operation based on the selection a an area/line and one of its vertexes. The operation lets the user draw a line starting from selected vertex and to be finished at a vertex or edge of the selected area/line. The user would be aware of the (intended) drawing direction with regards to the area/line, but iD would not be aware of this, at least not before finishing, consequeces of which are:
We can address 1. by forcing the user in this case to draw one more edge coincident with one of the original area befeore finishing. We can address 1 and 3 if we allow the user to start one node earlier and place a coincident edge first. |
@slhh @bhousel @bborkmiller Ok, so how I would imagine it:
|
Could also use the node closest to the pointer as the starting point. That way it is possible to to control it. |
@maxerickson Yes, we might use the current mouse position at the time of right clicking, pressing the spacebar (to open context menu), or pressing the shortcut key. I see the following variants of using this information:
The operation should not only be available for closed ring areas, but also for lines and multipolygons. I would prefer 1 or 3. |
As a partial solution, how about temporarily adding the “finished drawing an area” operation to the undo stack? Users are already used to undoing when they accidentally add a vertex in the wrong place while drawing a line or area. To avoid cluttering the undo stack overall, maybe we could remove the command from the undo stack as soon as anything else is added onto the stack. This half-measure wouldn’t address the situation where the user wants to modify an area after the fact, but I think that case could be addressed by making it easier to split and merge areas: #4866 #435. |
Here’s a workaround, in case anyone needs it in the meantime:
|
Another workaround:
Until #8750 is fixed, this workaround can get frustrating if the old area connects to other lines or areas. |
This gesture would be undiscoverable and surprising, in my opinion. I think a context menu operation would be fine. After all, unlike Potlatch, iD also lacks a gesture for continuing to draw a line. Right-clicking on one of the area’s edges and selecting Continue would enter draw mode for replacing that edge with an arbitrary number of vertices, until you press Enter or click twice on an existing vertex. Similarly, right-clicking on one of the area’s vertices could delete that vertex in favor of the vertices added in draw mode. The way’s direction would determine the order of progression, just like when continuing a line from the end. Actually, this operation would be useful not only for reentering draw mode after an accidental exit, but also for extending the area in general, so the Continue operation could be renamed to something else like Extend. |
(Sorry if there is already a thread for this, but I just couldn't find one.)
Currently there is no way how to continue drawing of a finished area. After selecting node that belongs to area, the radial menu option to continue drawing is disabled saying "No line can be continued here". This is pretty annoying when you accidentally click on a node while trying to draw a large area.
The text was updated successfully, but these errors were encountered: