Opened 8 years ago
Last modified 4 years ago
#13740 new enhancement
Should reverse highways by default, instead setting oneway=-1
Reported by: | naoliv | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core | Version: | |
Keywords: | reverse | Cc: | muzirian |
Description
Since we already deal with most (all, maybe?) objects in highways (like #10260), shouldn't we revert highway ways (revert the nodes positions) instead, by default, offer to make it oneway=-1
?
JOSM:
Build-Date:2016-10-01 18:02:53 Revision:11068 Is-Local-Build:true Identification: JOSM/1.5 (11068 SVN pt_BR) Linux Debian GNU/Linux unstable (sid) Memory Usage: 678 MB / 4029 MB (327 MB allocated, but free) Java version: 1.8.0_102-8u102-b14.1-2-b14, Oracle Corporation, OpenJDK 64-Bit Server VM Screen: :0.0 1920x1080 Maximum Screen Size: 1920x1080 Java package: openjdk-8-jre:amd64-8u102-b14.1-2 Java ATK Wrapper package: libatk-wrapper-java:all-0.33.3-9 VM arguments: [-Dawt.useSystemAAFontSettings=on] Dataset consistency test: No problems found Plugins: + AddrInterpolation (32699) + Create_grid_of_ways (32699) + FastDraw (32938) + FixAddresses (32796) + ImportImagePlugin (32699) + OpeningHoursEditor (32699) + PicLayer (32796) + SimplifyArea (32796) + apache-commons (32699) + buildings_tools (32944) + download_along (32946) + editgpx (32699) + ejml (32680) + geotools (32813) + graphview (32796) + jogl (1.0.46) + jts (32699) + kendzi3d (1.0.191) + kendzi3d-resources (0.0.1) + log4j (32699) + measurement (32936) + merge-overlap (32699) + opendata (32898) + pdfimport (32796) + photo_geotagging (32699) + poly (32699) + reverter (32796) + tageditor (33021) + tagging-preset-tester (32869) + todo (30000) + turnlanes-tagging (252) + turnrestrictions (32796) + undelete (32699) + utilsplugin2 (32815)
Attachments (0)
Change History (9)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Sorry :-)
Have this highway:
<way id='1' version='1' visible='true'> <nd ref='1' /> <nd ref='2' /> <nd ref='3' /> <tag k='highway' v='residential' /> <tag k='oneway' v='yes' /> </way>
If we press r
to revert it, by default ("default" here I consider Apply selected changes
in the screenshot), it offers to change oneway=yes
to oneway=-1
, like this (ie, the nodes order is changed, but the direction doesn't actually change since we have oneway=-1
):
<way id='1' action='modify' visible='true' version='1'> <nd ref='3' /> <nd ref='2' /> <nd ref='1' /> <tag k='highway' v='residential' /> <tag k='oneway' v='-1' /> </way>
Shouldn't the default action change the nodes order and keep oneway=yes
, like this?
<way id='1' action='modify' visible='true' version='1'> <nd ref='3' /> <nd ref='2' /> <nd ref='1' /> <tag k='highway' v='residential' /> <tag k='oneway' v='yes' /> </way>
Trying to make it clearer, shouldn't JOSM always use the highway was as oneway=yes
and just revert the nodes order?
Or there are still some cases related with the direction, where JOSM can't properly handle yet?
And I was thinking another thing:
If it's considered that JOSM can handle all the objects that depends on the highway direction, couldn't it just simply revert the way (the nodes order), always keeping oneway=yes
, without asking what we want to do?
If the way is already oneway=yes
, revert the nodes and keep oneway=yes
If the way is oneway=-1
, just change it to oneway=yes
, keeping the nodes order.
comment:3 by , 8 years ago
That doesn't sound like a good idea to me since this will completely change the behavior of the reverse function. Now the direction of a oneway e.g. from east to west stays when you use the function. With your proposed change it will change from east->west to west->east.
follow-up: 5 comment:4 by , 8 years ago
There are use-cases for both cases (reversing a way to correct the oneway direction, reversing a way to merge it with another way, …) Since the current behaviour has been around for several years, I vote to keep the current. All in all (IMO) reversing a way isn't a too common operation such that it would require highest efficiency …
comment:5 by , 8 years ago
Replying to simon04:
reversing a way to correct the oneway direction
For this use case you need to check all the tags manually anyway, because it is not clear if other direction depended tags need to be changed too or if they need to stay.
comment:6 by , 8 years ago
But do we still have cases where we need oneway=-1
in highways (note that it's specific for highways here) and that JOSM can't fix the direction if needed?
I am asking this because:
- this week it was the second time I saw an user asking "Why JOSM is making the way
oneway=-1
and keeping the direction?" (ie, he was wanting to see the "arrow" direction reverted); I had to agree with him that it's not actually easy nor simple to understand how changing the direction works here (specially for new users) - with #10260 I guess that most objects are properly updated when the direction is changed
- JOSM already discourages
oneway=-1
highways with the validador messageoneway=-1 is not recommended. Use the Reverse Ways function from the Tools menu
- most of the time, users want to have the logical (the "arrow") direction reversed, and not the way itself (I can include myself here: I don't remember one time where I needed to use
oneway=-1
or wanted to revert the nodes order but keep the logical direction the same); since a "logical" revert is useoneway=-1
(but it's discouraged), a possible fix would be the logic at the end of comment:2
Or better, could we have another tool to apply the logic from comment:2 (a Ctrl+R
, for example)?
The current behavior from R
won't be touched then and it will be easier (and with less messages, interruptions, clicks, etc) to revert the direction.
A simple Ctrl+R
and the user will see the way changing the direction (as he expects), without any messages.
If this is considered too harmful, it could display something similar to reverting other types of ways, like this:
comment:7 by , 4 years ago
Keywords: | reverse added |
---|---|
Summary: | Should revert highways by default, instead setting oneway=-1 → Should reverse highways by default, instead setting oneway=-1 |
comment:9 by , 4 years ago
Cc: | added |
---|
Replying to naoliv:
I don't understand this part, even after reading 10 times :) What do you want to revert in which situation?