openstreetmap / iD

🆔 The easy-to-use OpenStreetMap editor in JavaScript.
https://www.openstreetmap.org/edit?editor=id
ISC License
3.37k stars 1.21k forks source link

Allow editing both lines and points at the same time #9717

Open jidanni opened 1 year ago

jidanni commented 1 year ago

Description

Say we are making a long long footway.

Also say every now and then we cross over a road via a marked crossing.

Well, we could make our long long footway first, and then move the map backwards and make each crossing into a marked crossing.

Or we could first make our marked crossings, then move the map back to draw our footway.

But wouldn't it be great if there was some way to do two things at once?

OK, let's think about it. The footway is a line, and the marked crossings are nodes.

So perhaps add a way, that a user could, while editing a line, also edit nodes too, without stopping the fact that he is editing a line.

That way he could do all the work he needed to do, without ever needing to move the map back, or having to interrupt whatever task he was doing.

Yes, I know what you are going to say.

You are going to say "Just use the 'append' right click to go back to editing the line each time."

Sure, that would close this bug, but that wouldn't achieve the miracle breakthrough I'm asking in this long-term (no big hurry) feature request here.

I'm saying after I install a marked crossing, I should be able to continue with my footway lengthening, with out needing to especially click anything to get back doing what I was doing before I edited the marked crossing, and vice versa.

So I guess I am asking for a way to edit both lines and points at the same time.

Or in general allowing doing two things at the same time.

(No, I'm not talking about multi-select either.)

Sure, you might say "you can do so-and-so for your crossings". OK, never mind crossings. I'm talking about the general case:

E.g., making a trail and adding nearby bird feeders without having to exit "making the trail mode" etc.

Dimitar5555 commented 1 year ago

To put it simply, you want a hotkey to continue the last line that was drawn/extended. Is that correct?

jidanni commented 1 year ago

Hotkey? That still sounds like even one single additional keypress.

Maybe for adding the crossings, the program could be smart enough to know "oh, this node is special, not just a turn in the pathway. That's because this node is shared with a second line. OK, let's let him do more work on this node."

But for birdhouses near a path, I guess there is no easy way for the program to know that we are not just making a sharp turn in the path, but trying to put a node independent of the path, nearby. (Unless of course if the program were also looking at our air photo, or if we made the path first go a little "beyond" where we wanted to put the birdhouse....)

nickrsan commented 1 year ago

I understand generally the feature you asking for, but for clarification, without a hotkey or something else like it, how are you imagining that iD will know that you intend to stop editing the point and continue editing the line?

Given that you might take numerous actions on the point including moving its location or editing multiple tags or presets, I can't imagine that the program will know that you intend to resume the line without some input from you. What do you imagine this would look like?

Dimitar5555 commented 1 year ago

Hotkey? That still sounds like even one single additional keypress.

The only other option currently is to double click, press 1, click on the position of the bird house. Instead you could press E (for example) and click on the position of the bird house. That is 2 actions less which is an improvement.

jidanni commented 1 year ago

Indeed, CTRL+V pasting of birdhouses could be also be "fixed" to not deselect the line we are editing, as an adjunct to #9718.

jidanni commented 1 year ago

without some input from you. What do you imagine this would look like?

Hmm, maybe some checkbox that would turn on a Lock Icon, 20230630T121344

Yeah, when locking-on Line, or Area, mode, one could still insert nodes...

nickrsan commented 1 year ago

That part makes sense to me, but to clarify my question, I mean that while you're editing the line, you want to start editing the point on the line without any keystrokes, and then you want to switch back to editing the line without any keystrokes. I don't know how iD will know that you're intending to switch from extending/adjusting the line to editing tags on the point without some input from you to signal the intent. Otherwise, clicks on the map could also be interpreted as moving the node on the line around, and tags added could (and should) be interpreted as applying to the line, not a single point. There'd need to be some way for you to signal to iD that you're temporarily switching to edit the point on the line, and some way for you to signal that you're going back to editing the line when you're done editing the point (otherwise, the same class of problems applies - clicks on the map can be interpreted in relation to the point, tags get added to the point and not the line). I think a keystroke would be a good way to do that, as @Dimitar5555 suggested - I don't know how you can do this without input at the moment you want iD to switch contexts. Do you have a vision for that part, as opposed to how to signal to iD that you want to enter the mode you're suggesting more broadly (as you suggested with the checkbox).

jidanni commented 1 year ago

All I know is when I click to make the node where I need to tag the crossing, the panel doesn't change yet, 20230630T141740 When instead it could, well, temporarily select the node for me, 20230630T141817 and then after I finish picking out the kind of crossing I want, and start clicking elsewhere on the map, it should know that I want to continue making my line.

But that is the case where somebody has already put the roads in, and I am just adding the footpath (sidewalk.)

But how about the general case where I am putting in the sidewalk, and will latter put in the crossroads, but would like to tag the crossings now.

So we see in fact, for each node we insert while making a path, the panel ought to temporally select that node for us, in case we want to add some tags!

jidanni commented 1 year ago

Ah ha! Being that we are on Desktop, where the question is how much space do we have, not how little ☻, how about a second side panel, the first side panel would be for the line, the second for the point. They could be side by side panels, or top/bottom. The important thing is, while we are making a line, we are also making points, so we might as well be able to edit both at the same time. And we could, but with only one side panel, we can't.

So, no need for any fancy hot or cold keys or AI looking at air photos, etc. Just expose both panels instead of just one.

OK, that covers the footpath, but not the bird houses, but that's already "one small step for man, one giant leap for mankind" for this year.

Yes, "some users" might not have super wide monitors, but for those that do...