every_door icon indicating copy to clipboard operation
every_door copied to clipboard

Snapping points to the lines should be switchable

Open deevroman opened this issue 2 years ago • 6 comments

  1. Snapping is sometimes unnecessary. For example, if the entryway is inside the archway of a house, it will stick to the outline of the house. Also relate to this #471
  2. As long as sticking points to multi-polygons does not work #210, you may have the following situation: two adjacent buildings, one multi-polygon, the other polygon. Every Door in this case could snap a point to the building drawn by the line.
  3. it is not clear which points snap to which ones. For example: If there is a footpath and a road next to each other, which one will the barrier stick to?
  4. Snapping is not obvious. As a new user, you can only find this out if you examine your changes after downloading. (or someone will tell you about it)

deevroman avatar Feb 11 '23 21:02 deevroman

Yeah, 4th point is especially confusing, and it seems node is (invisibly to the user) snapped to way during upload, and not during placing it on the map, so it always looks as not snapped.

mnalis avatar Feb 14 '23 02:02 mnalis

It would indeed be great to do something about it. Another example I have struggled with is snapping gates to highways. There were cases I intended to mark a gate on an already-mapped fence or wall. Instead the gate got snapped to the road that the fence was running along. We've even had navigation over a primary road broken for this reason after an unaware editor made an edit with EveryDoor :(

gdabski avatar Sep 30 '23 17:09 gdabski

Would it perhaps be possible so EveryDoor, at the time the element is being added to the map:

  • asks the user "Do you want to snap node type to way type" (e.g. "Do you want to snap barrier=gate to highway=residential") and acts accordingly?

  • Or, alternatively, somehow visually indicate where the element is going to be snapped (like e.g. in StreetComplete Street Parking overlay, when it displays separate pin at exact location on a way where it is going to snap on, and does not show the pin if no snapping is going to take place because it is too far from the road)?

Because doing it invisibly to the user in the background at the time of upload is problematic as it breaks not only "do not surprise the user" but also "user should be in control what is being added to the map" maxims, and thus sometimes leads to unintended bad data.

mnalis avatar May 22 '24 09:05 mnalis

I don't think we need an additional step in the form of a dialog. A switch (or icon for entrance mode) in the object card would be enough.

deevroman avatar May 22 '24 09:05 deevroman

I don't think we need an additional step in the form of a dialog

I agree that it sounds somewhat clunky if it pops up too often, but might be easiest to implement. I would much prefer the direct visual indication mode instead, which I mentioned earlier:

  • like in StreetComplete "parking overlay": small_Screenshot_20240522_121557_StreetComplete small_Screenshot_20240522_121545_StreetComplete

  • or like SCEE "insert node into way" long-press functionality: small_Screenshot_20240522_121637_SCEE small_Screenshot_20240522_121627_SCEE

I however suspect that it is (maybe significantly) harder to implement, so that is why I suggested that only is second place (even if I would much prefer such solution, as such approach has already shown to work quite nicely and is easy to use)

A switch (or icon for entrance mode) in the object card would be enough.

I'm afraid manual snap on/off switch (or button like "door" icon in entrance mode) IMHO would not be good enough though, if I understood correctly what you meant there @deevroman ?

See example above by @gdabski or your point 3. in original report. It would still leave it up to the heuristics (instead of the user) whether the gate would end on barrier or on the highway, which is a serious routing-breaking issue. And if you disabled snapping completely via some switch, then adding the gate would be quite useless.

Having a separate switch for each type of a way (e.g. "snap on a footway", "snap on a road", "snap on the barrier", ...) would not work either, not only because it sounds like an overkill (and usability issue), but also because it would not work on e.g. two highway=residential crossing and similar situations.


TL;DR: Visual indication when and on what exactly the snapping will occur would work best IMHO (as evidenced in StreetComplete/SCEE), and allow the user to opt-out of snapping by moving an element a little away.

While adding additional manual switch to fully disable snapping might be an useful addition (as it would allow for little more precise positioning without snapping), it is not suitable as a replacement for such visual indication (or some other solution putting user in charge of what exactly is being editing).

mnalis avatar May 22 '24 10:05 mnalis

Note to self: re-enable snapping plaques after I do this.

Zverik avatar May 25 '24 16:05 Zverik