Skip to content
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

Accept osm ids in the relation member / membership dropdowns #3487

Closed
yaugenka opened this issue Oct 8, 2016 · 16 comments
Closed

Accept osm ids in the relation member / membership dropdowns #3487

yaugenka opened this issue Oct 8, 2016 · 16 comments
Assignees
Labels
usability An issue with ease-of-use or design
Milestone

Comments

@yaugenka
Copy link

yaugenka commented Oct 8, 2016

Currently the list of suggested relations contains only the ones which are quite near the object you are editing. It would be nice to have an ability to select a relation by id.

@bhousel
Copy link
Member

bhousel commented Oct 14, 2016

Thinking about this more.. We already support in the search box:

  • names of places (via nominatim)
  • lat/lng coordinates (in decimal or sexagesimal)

That box should recognize osm ids too.

@bhousel bhousel added the good first issue Best for first-time contributors. No experience necessary! label Oct 14, 2016
@bhousel bhousel changed the title Add ability to select a relation by id Accept osm id in search box Oct 14, 2016
@jfirebaugh
Copy link
Member

It does already, if you prefix the ID with n, w, or r for the type of object.

@bhousel
Copy link
Member

bhousel commented Oct 14, 2016

It does already, if you prefix the ID with n, w, or r for the type of object.

Nice! I didn't know that.

Thought about it more and realized that this doesn't actually address the original issue - adding a member to a relation by typing in the relation id. Probably not impossible, but would involve tricky stuff in d3combo.

@bhousel bhousel removed the good first issue Best for first-time contributors. No experience necessary! label Oct 14, 2016
@bhousel bhousel changed the title Accept osm id in search box Accept osm ids in the relation member / membership dropdowns Oct 14, 2016
@bhousel bhousel added usability An issue with ease-of-use or design and removed enhancement labels Nov 1, 2016
@slhh
Copy link
Contributor

slhh commented Nov 18, 2016

Currently the list of suggested relations contains only the ones which are quite near the object you are editing.

I'd agree, that this is insufficient.

It would be nice to have an ability to select a relation by id.

This doesn't seem to be the real user requirement, but just the request for a dirty workaround.
The real user requirement seems to be able to members to relations which are far away. I see two possible solutions:

  1. An asymmetric multiselect operation ( Multiselect list: Tool menu for asymmetric multiselect operations. #2951 ) to add objects as members of a relation.
  2. A copy to member section paste control, which could either be:
  • A paste button in the members section
  • With a relation selected: A Ctrl-V followed by a special key aborting the placement of the copy, but adding the copied objects as members.
  • A radial menu paste operation when at least one relation is selected.

The source of such a paste operation could just be a normal Ctrl-C copy from the map. In addition being able to copy from the members section of another relation would have some other usecases.

@1ec5
Copy link
Collaborator

1ec5 commented Nov 26, 2016

Currently the list of suggested relations contains only the ones which are quite near the object you are editing.

Potlatch 2 has a text field that accepts a relation ID, but it also keeps loaded relations in the list for the entire editing session, which mitigates the need for this text field: #3622.

@mfogel
Copy link

mfogel commented Jan 10, 2018

A workaround that allows you to add a feature to a relation that is offscreen in iD:

  • find an existing or draw a temporary new way from the relation to the feature
  • mark that way as part of the relation
  • then add the feature to the relation
  • then remove the temporary way from the relation (and delete it if you added it, obviously)

@NopMap
Copy link
Contributor

NopMap commented Mar 10, 2018

See #3622 for a proposed solution.

@quincylvania
Copy link
Collaborator

I added the ability to filter the relation list by ID, but this still doesn't let you add to a relation that's not in the nearby list. Are we sure we want to enable that behavior? I can imagine scenarios where users type the wrong ID and accidentally connect to relations thousands of miles away.

@quincylvania
Copy link
Collaborator

I made it so you can specify IDs of loaded relations. This is simpler and safer than trying to fetch arbitrary relations for any ID a user types.

@slhh
Copy link
Contributor

slhh commented Aug 10, 2019

@quincylvania
I think you should also support entering ids of

  • any relation which was visited (selected) during the current editing session, even if it got unloaded.
  • any relation in the viewport, even if it isn't downloaded due to editing at a low zoom level.

Currently the real usecases aren't supported.

@BjornRasmussen
Copy link
Contributor

Those sound like very rare cases. The first case doesn't seem possible... unloaded? The second seems quite difficult as well, since iD can only know if something is in the viewport if it's downloaded.

@slhh
Copy link
Contributor

slhh commented Aug 10, 2019

@BjornRasmussen
Example usecases:

  • Assume Hawaii isn't mapped as part of the US and you want to add it to the boundary relation.
    Exclaves and enclaves are frequent for any type of boundary.
  • Assume you have surveyed a part of a route, and the and there is a far distant part already mapped.

The first case doesn't seem possible... unloaded?

iD doesn't keep all the downloaded data when panning to a different location.
Assume you have selected the incomple boundary of the US. After panning to Hawaii it isn't in the graph anymore.

The second seems quite difficult as well, since iD can only know if something is in the viewport if it's downloaded.

iD has two options here:

  • make a full relation request to the normal API, check whether it is the viewport, discard if not
  • make a request for the relation to the Overpass API using the extend of the viewport as bbox.

@quincylvania
Copy link
Collaborator

any relation which was visited (selected) during the current editing session, even if it got unloaded.

Entities don't get unloaded once loaded. You can easily start in California then navigate to Hawaii. California will still be loaded and available to reference as a relation.

any relation in the viewport, even if it isn't downloaded due to editing at a low zoom level.

This is essentially the same as the ability to connect to any relation in OSM, since the user could zoom all the way out so the whole world is in the viewport. This seems like an easy way to make mistakes without many added benefits.

@dhimmel
Copy link

dhimmel commented Jan 21, 2021

I came to this issue via this question and #1906. I am trying to add a section to the Schuylkill River Trail relation. This trail is only partially complete and I am looking to add a section which is in between a big gap.

I can't get the desired relation to show up in the the add relation menu in iD. Have tried some of the methods of moving the viewport and zooming in and out to no avail. Would be really nice to be able to add by relation id, perhaps requiring some sort of extra confirmation.

I've also hit this problem while editing the Long Trail relation. Understand that it's important to avoid spurious relations, but currently it seems like there is major missing functionality in terms of way relations that are not entirely contiguous (like many long distance trails).

Update: I used the workaround to create a temporary connecting way with the desired relation that's described in #3487 (comment). This was a dirty workaround and opened up lot's of opportunity to make inadvertent edits.

@NopMap
Copy link
Contributor

NopMap commented Jan 21, 2021

See my post in #3622 for a proposed solution.

My fork of ID at www.wanderreitkarte.de would allow you to fill the gap easily. However, you would need to set the coordinates in the URL to navigate there as my map does not cover the US.

@quincylvania
Copy link
Collaborator

@dhimmel If the relation is already downloaded, then you can now type the exact ID to get it to show up in the dropdown.

Screen Shot 2021-01-21 at 2 21 20 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
usability An issue with ease-of-use or design
Projects
None yet
Development

No branches or pull requests

10 participants