Zverik / every_door

A dedicated app for collecting thousands of POI for OpenStreetMap
https://every-door.app
ISC License
403 stars 34 forks source link

Snapping points to the lines should be switchable #541

Open deevroman opened 1 year ago

deevroman commented 1 year ago
  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)
mnalis commented 1 year ago

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.

gdabski commented 11 months ago

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 :(

mnalis commented 4 months ago

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

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.

deevroman commented 4 months ago

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.

mnalis commented 4 months ago

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:

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).

Zverik commented 3 months ago

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