iD - visibility of relations

Another example of one of these problems. I can see that there is a gap in a relation but do not know which relation it is:

The way that is selected is https://www.openstreetmap.org/way/1409636119/history. The mouse was hovering over the middle relation in the list. Note that:

  • No relation IDs are displayed anywhere
  • No hover text is displayed (it is only are when I click in the window header first)
  • Two of the names are identical

Only by going to the many OSM site and going through the candidates in turn can I see a gap.

If the routes are concurrent at this location, then you can select the shorter way, search for “London cycle”, then hover over the search results until you find one that highlights the gap in red as opposed to blue. Route 0 is a member of this superrelation, so both of these relations technically have a gap in them, thus the same exact highlight:

We already have an issue about visually distinguishing an indirect membership on hover.

The from=*, to=*, and via=* tags on the latter relation cause it to have a different label. Since the two relations have different labels, iD isn’t disambiguating them with relation IDs. This wouldn’t be a problem if iD appends “(super)” to the generated labels of superrelations or omits superrelations from the list when editing a node or way.

You wouldn’t know this, but the relation list is sorted in ascending order by relation ID. Generally the superrelation would be further down, but there’s no guarantee. iD could sort the list by something smarter than relation ID, such as (downloaded) distance or most recently used. Even better, if the adjacent ways are members of a given relation, it should sort higher than any other relation in the list.

Not sure what you’re referring to. Do you mean iD was in an unfocused window? Whether a tooltip appears will depend on your operating system. I don’t think a Web application would have much if any control over that.

Is that documented anywhere? If so, what buttons do I press in the iD editor to view that documentation?

No they do not. As can be seen from the screenshot above, what is displayed on screen is identical. What you might be saying is that iD has pretended that the “from” and “to” tags are part of the name and has extended the name off-screen in a way that I can’t see. Thus it knows the names are different but I do not, since it has not shown me the parts of the names that are different.

Agreed, and that is why “only displaying information in a tooltip” is a bad idea.

Edit: can → can’t

Potlatch has two keypresses here. “W” selects the parent way; it doesn’t cycle. “/” is used on junction nodes, and cycles among ways. If you press “/” on a non-junction node it won’t do anything.

On reflection maybe a single keypress could have covered both scenarios. :smiley:

Yep. Potlatch’s selection state is “way+node” (controller/SelectedWayNode.as), so there is always the concept of “I have selected node x as part of way y".

Originally originally, as in my very early prototype of iD, it was a fairly standard popup menu rather than a pie menu, I think. But that was a very long time ago!

There is some documentation under in the Relations section of the Help panel (accessible from the right side of the map), but it doesn’t explicitly discuss the colors on hover and what they mean. That would be a reasonable change request.

I think we’re talking past each other. You’re focusing on the list of current parent relations, while I’m trying to point out that what you actually want to look at is the dropdown menu when clicking in the “Choose a parent relation” combo box. In that dropdown menu, long items wrap onto multiple lines. Instead, the main list truncates long items, showing an ellipsis to indicate that you can see more text by hovering over the item or resizing the sidebar. This design keeps the row heights regular, avoiding mishaps when repeatedly clicking the :wastebasket: button to remove members. But maybe line-wrapping the labels would be a better tradeoff.

Tooltips are an established element of Web applications and webpages, and tooltips are also an established affordance for expanding truncated text on most desktop operating systems. Granted, they aren’t perfect for every situation. In order to weigh the alternatives constructively, you need to elaborate on your reason for disfavoring tooltips. Do you juggle multiple windows including applications other than your browser? Do you use a touch input device that can’t hover over anything? Does the delay before showing a tooltip try your patience? Do you use an older browser that autohides the tooltip before you have a chance to memorize the long number in it?

@SomeoneElse meant “only by tooltips”. I do agree with him. “also by tooltips” is fine.

1 Like

Hence the rest of the sentence that you quoted. Tooltips are a standard approach for overflow content when truncating a preview. I disagree that iD relies solely on a tooltip to expose the full label to the user. The full label is visible in the relation chooser dropdown menu as well as the various fields when you click on the relation to select it. It just isn’t as convenient. Web applications always have to make compromises because they can’t scroll like ordinary webpages.

The request here is to make the full label visible upfront at all times and never show it partially. The motivation is to optimize around a workflow that has never been fully described, so I can only guess as to whether it would be a worthwhile improvement. What I do know is that replacing truncation with line wrapping would make the list rows irregular, making it more difficult to download a series of relations or remove the selected feature from a series of relations without accidentally changing relation roles to random values.

Then again, knowing the history behind this conversation, it’s clear that just showing the full label would only lead to more complaints from the same individual. The underlying request is still to show relation IDs everywhere. It’s a fairly common request, but it only comes from a small group of mappers who don’t use iD as their main editor (probably for completely valid reasons). If the color-coded highlights are unintuitive, imagine what an eight-digit-long ID would mean to the vast majority of users.

This is just my opinion. But as someone who does use iD as the main editor, I would like to think I have an interest in iD continuing to be iD and not turning into a poor imitation of another editor. As much as I truly miss Potlatch and its elegant modeless paradigm, you wouldn’t want me to blindly implement its UX design in iD, since I can’t even get AIR to run on my computer anymore.

I also regularly tutor newcomers in making their first contributions to iD. This gives me some insight into how normal people experience the project as a whole. Last week my students asked me to explain how to map bus and trail routes, and I obliged. I only mentioned element IDs later, as part of explaining the raw data model so that they’d be prepared to write their own Overpass queries. If we take the stance that they need to know how OSM works under the hood before they can touch the map, then we’ve lost as soon as they set their eyes on the toolbar with those three fake element types, Point, Line, and Area.

1 Like

I’m genuinely not seeing this - can you explain what buttons I need to press to see it? In the example above (now fixed) there was a gap in a relation. I don’t know the relation number, I just know that iD displays it as “GB:London Cycle Network”, and that that label is not unique. You explained above that I can search by [whatever iD is displaying as a label - I actually don’t know what fields that can be composed of] and find a relation with a gap in it, and add the way to that.

The next questions are:

  • How do I know if that way should be a part of that relation? The only thing that I know about the relation is that the way that I have selected is not part of it, and it is [presumably?] nearby. I have no idea whether it needs a role of inner or outer if appropriate (not here) or a route-specific role (also not needed here as it turns out).
  • How do I see what the various tags on that relation are set to?
  • How do I view that relation in an OSM browse window to look at the rest of it (maybe it is complete, maybe it is just a work-in-progress and maybe it should be deleted because it is a duplicate of a “correct” relation)

If I decide to just guess and add one, I see an extra relation in the list for the way, but have no idea which was the one that I just added because all the labels that iD displays here are basically the same (and I don’t know what OSM fields they correspond to).

I can click on the various relations for the way to see the fields in each but without knowing which one I just added that isn’t helpful.

The dependency on AIR makes it extremely difficult, and iD does a lot that Potlatch doesn’t do (and not all of what iD does is a step backwards). However you really would benefit from seeking out somewhere that you can run P3 and look at the relation editor in there. From a UI point of view it is vastly superior to iD’s undocumented flashing colours. Things like “load relation by ID” work reliably (in iD, tat does not). Switching between single-line and multi-line display of object details occurs at sensible times and doesn’t rely on wasting screen space. You have actual fields with actual tags in them for relations, not labels composed of who knows what - such as in this example bizarrely the label is the cycle_network tag(!).

Indeed - that is a perfectly sensible approach for someone who is absolutely new to OSM, but as you say they will need to know more as time goes on. iD should allow them to see object IDs, perhaps in a similar way to how JOSM does - off by default, but able to be turned on.

Underneath the list of parent relations, there’s a combo box for adding the selected feature to another parent relation. If you click into that combo box, a dropdown menu appears. You can type in something to filter the dropdown menu by any text that appears in the label, regardless of the raw key that the label is based on, or alternatively the relation ID. By typing in “London cycle”, you’d see a menu that includes a few different routes that belong to the London Cycle Network.

By hovering over the menu items – I know, I know – you can see at a glance whether the way is a member of the relation yet. There are some bugs with this display that we’ve already hashed out in the issue tracker ad nauseam. You may have also seen that there’s work in progress toward more explicit relation validation, including for detecting and fixing gaps in route relations. Notably, this does not depend on displaying relation IDs so prominently.

For your awareness, the label is currently based on the preset name, name=*, network=*, cycle_network=*, ref=*, direction=*, from=*, to=*, and via=*. This is intentionally not documented as anything to do with relation memberships, because it’s actually part of a global heuristic for labeling any feature.

The set of keys may change, especially as networks get their own dedicated presets. For example, someday the LCN will have its own preset, at which point the label will become “London Cycle Network 0”. This will be especially helpful for network=* and cycle_network=* values that are abbreviated, and for mappers who don’t speak English.

So does iD, of course, but the catch is that selecting a relation is mutually exclusive of selecting any of its members. iD doesn’t use a modal window to manage relations. This has the downside of limiting your ability to poke around before “committing” to a change in relation membership. On the other hand, other workflows become possible, like copying tags from a node to a relation through multiple selection, or visually inspecting a relation on a zoomed-out map. These are the things I missed whenever I would switch back to Potlatch 1 or 2 for some small task, but I don’t know if Potlatch 3 has improved in these areas.

If you’ll excuse one more workaround: if you can get ahold of a standalone instance of iD that isn’t running inside an iframe on the main website, you can use your browser’s Back and Forward buttons to navigate through the selection history.

Am I mapping wrong? I count myself as a power user of iD, but I rarely need to see a relation ID in the UI, even when I’m mapping route relations or, worse, chronology relations. I’ll grant that relation IDs can be useful if you’re fixing up a tangled mess of relations and don’t want to lose your focus, but there’s already work towards more direct support for that workflow.

I’m guessing that you’re just mapping in a different sort of place? Compare here with here. If I look part of the only trail name that I can remember from that area, it’s part of exactly one relation; one on Lambeth Bridge is part of five. At the extreme end of that with other sorts of relations this part of the River Liffey in Dublin is part of 110 (and yes, it’d be great if we could get some of those into OHM, but it hasn’t happened yet).

My bad: this feature hasn’t been implemented yet. Serves me right for trying to do customer service for iD from the confines of my phone and my recollection.

Yes, where I’m from, eight is already a meal.

Regrettably, I’ve given in and switched to JOSM for boundary mapping in OHM, mostly to fix boundary breakage by other JOSM users. Even JOSM struggles mightily to handle boundary ways that routinely belong to thousands of relations, challenging the field of graph theory. Whenever you feel like taking it out on iD’s customer support team, remember that the historical boundary mappers have it so bad that they fantasize about destroying the evidence.

1 Like