Hi Gerd, the patch doesn't work correctly (in so far that mkgmap version October 2013 or older worked)  - but I think consistent at least now.

If a way is tagged incline=down or incline=negative number (copy=99 further in the style)- it seems to work for the area I checked.
If however a way is tagged incline=up (copy=98 further down in the style) - the way ends up in the opposite direction (because I add oneway=-1???).

Now - that could be style related, or not... I actually don't really reverse the ways for layout. So far I just use opposing arrows. If a way is copy=99 - the arrows point to the right (equals in the direction of the way), if a way is copy=98 - then the arrows point to the left and I add a onway=-1.
If there would be a command to actually reverse ways (not only set oneway) - then I would not need left/right pointing arrows but just right pointing arrows.

I made the important part bold. I assume mkgmap now actually changes the direction of the way if I manually set oneway=-1....

It's okay for me (will require 10-12 hours checking my style, but actually save me lines in the typfile If I can be sure that mkgmap now actually reverses all ways where I add oneway=-1).
However - please tell me for which keys mkgmap now reverses ways? Only oneway=-1? Or are there other keys where mkgmap reverses the way. I do have more direction dependent types than downhill arrows...



Heres all lines of my style that are related to this - In 2013 theese lines worked perfectly consistent (yes they are complicated, but they should work correctly).:

incline >5 & incline  <11  & highway=* & mtb:scale:uphill=1 & mtb:scale>0 {set copy=198; set copy1=yes}
incline <-5 & incline >-11 & highway=* & mtb:scale:uphill=1 & mtb:scale>0 {set copy=199; set copy1=yes}
incline >10 & incline  <30  & highway=* & mtb:scale:uphill=1 {set copy=198; set copy1=yes}
incline <-10 & incline >-30 & highway=* & mtb:scale:uphill=1 {set copy=199; set copy1=yes}
### maybe make it for all scale:uphill if very light color possible
incline >30  & highway=* & mtb:scale:uphill=1 {set copy=98; set copy1=yes}
incline <-30  & highway=* & mtb:scale:uphill=1 {set copy=99; set copy1=yes}
incline >8  & highway=* & mtb:scale:uphill=2 {set copy=98; set copy1=yes}
incline <-8  & highway=* & mtb:scale:uphill=2 {set copy=99; set copy1=yes}
incline >30  & highway=* & mtb:scale:uphill=2 & length()>300 {set oneway=-1; set copy=98; set copy1=yes}
incline <-30  & highway=* & mtb:scale:uphill=2 & length()>300 {set oneway=yes; set copy=99; set copy1=yes}
incline >20  & highway=* & mtb:scale:uphill!=0 & mtb:scale:uphill!=1 & mtb:scale:uphill!=2 {set oneway=-1;     set copy=98; set copy1=yes} 
incline <-20 & highway=* & mtb:scale:uphill!=0 & mtb:scale:uphill!=1 & mtb:scale:uphill!=2 {set oneway=yes;    set copy=99; set copy1=yes}


# Make steep pathes downhill only
mtb:scale=0 & incline>20 & mtb:scale:uphill!=1 & mtb:scale:uphill!=2 {set oneway=-1; set copy=98; set copy1=yes}
mtb:scale=1 & incline>15 & mtb:scale:uphill!=1 & mtb:scale:uphill!=2 {set oneway=-1; set copy=98; set copy1=yes}
mtb:scale=1 & incline>20 & mtb:scale:uphill!=1 {set oneway=-1; set copy=98; set copy1=yes}
mtb:scale=2 & incline>10 & mtb:scale:uphill!=1 & mtb:scale:uphill!=2 {set oneway=-1; set copy=98; set copy1=yes}
mtb:scale=2 & incline>15 & mtb:scale:uphill!=1 {set oneway=-1; set copy=98; set copy1=yes}
mtb:scale=3 & incline>10 & mtb:scale:uphill!=1 {set oneway=-1; set copy=98; set copy1=yes}
mtb:scale=4 & incline>10 & mtb:scale:uphill!=1 {set oneway=-1; set copy=98; set copy1=yes}
mtb:scale=5 & incline>10 & mtb:scale:uphill!=1 {set oneway=-1; set copy=98; set copy1=yes}

mtb:scale=0 & incline<-20 & mtb:scale:uphill!=1 & mtb:scale:uphill!=2 {set oneway=yes; set copy=99; set copy1=yes}
mtb:scale=1 & incline<-15 & mtb:scale:uphill!=1 & mtb:scale:uphill!=2 {set oneway=yes; set copy=99; set copy1=yes}
mtb:scale=1 & incline<-20 & mtb:scale:uphill!=1 {set oneway=yes; set copy=99; set copy1=yes}
mtb:scale=2 & incline<-10 & mtb:scale:uphill!=1 & mtb:scale:uphill!=2 {set oneway=yes; set copy=99; set copy1=yes}
mtb:scale=2 & incline<-15 & mtb:scale:uphill!=1 {set oneway=yes; set copy=99; set copy1=yes}
mtb:scale=3 & incline<-10 & mtb:scale:uphill!=1 {set oneway=yes; set copy=99; set copy1=yes}
mtb:scale=4 & incline<-10 & mtb:scale:uphill!=1 {set oneway=yes; set copy=99; set copy1=yes}
mtb:scale=5 & incline<-10 & mtb:scale:uphill!=1 {set oneway=yes; set copy=99; set copy1=yes}



( mtb:scale:uphill=1 ) & ( incline=negative | incline=down | incline=- ) & mtb:scale>0     {add mkgmap:taxi=no; set copy=99; set copy1=yes}
( mtb:scale:uphill=1 ) & ( incline=positive | incline=up | incline=+ )     & mtb:scale>0 {add mkgmap:taxi=no; set copy=98; set copy1=yes}
( mtb:scale:uphill=2 ) & ( incline=negative | incline=down | incline=- | incline<0 )     {add mkgmap:taxi=no; set copy=99; set copy1=yes}
( mtb:scale:uphill=2 ) & ( incline=positive | incline=up | incline=+ | incline>0 )     {add mkgmap:taxi=no; set copy=98; set copy1=yes}
( mtb:scale:uphill=3 | mtb:scale:uphill=4 | mtb:scale:uphill=5 ) & ( incline=negative | incline=down | incline=- | incline<0 )     {add mkgmap:taxi=no; set oneway=yes; set copy=99; set copy1=yes; add mkgmap:unpaved=1}
( mtb:scale:uphill=3 | mtb:scale:uphill=4 | mtb:scale:uphill=5 ) & ( incline=positive | incline=up | incline=+ | incline>0 )     {add mkgmap:taxi=no; set oneway=-1; set copy=98; set copy1=yes; add mkgmap:unpaved=1}

copy=99 & highway=* & mtb:scale:uphill=5 & mtb:scale=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10f0a resolution 21 continue with_actions]
copy=98 & highway=* & mtb:scale:uphill=5 & mtb:scale=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10406 resolution 21 continue with_actions]
copy=99 & highway=* & mtb:scale:uphill=4 & mtb:scale=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10405 resolution 21 continue with_actions]
copy=98 & highway=* & mtb:scale:uphill=4 & mtb:scale=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10407 resolution 21 continue with_actions]
copy=99 & highway=* & mtb:scale:uphill=3 & mtb:scale=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10409 resolution 21 continue with_actions]
copy=98 & highway=* & mtb:scale:uphill=3 & mtb:scale=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x1040a resolution 21 continue with_actions]
copy=199 & highway=* & mtb:scale:uphill=1 & length()>150 {add mkgmap:taxi=no; set dontadd=oneway}    [0x10016 resolution 21 continue with_actions]
copy=198 & highway=* & mtb:scale:uphill=1 & length()>150 {add mkgmap:taxi=no; set dontadd=oneway}    [0x10019 resolution 21 continue with_actions]
copy=99 & highway=* & mtb:scale:uphill=2 & mtb:scale=* & mtb:scale!=5     & length()>30 {add mkgmap:taxi=no; set dontadd=oneway}    [0x10016 resolution 21 continue with_actions]
copy=98 & highway=* & mtb:scale:uphill=2 & mtb:scale=* & mtb:scale!=5     & length()>30 {add mkgmap:taxi=no; set dontadd=oneway}    [0x10019 resolution 21 continue with_actions]
copy=99 & highway=* & mtb:scale:uphill=1 & mtb:scale=* & mtb:scale!=5     & length()>60 {add mkgmap:taxi=no; set dontadd=oneway}    [0x10016 resolution 21 continue with_actions]
copy=98 & highway=* & mtb:scale:uphill=1 & mtb:scale=* & mtb:scale!=5     & length()>60 {add mkgmap:taxi=no; set dontadd=oneway}    [0x10019 resolution 21 continue with_actions]
copy=99 & highway=* & mtb:scale:uphill=5 & mtb:scale!=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10f0a resolution 22 continue with_actions]
copy=98 & highway=* & mtb:scale:uphill=5 & mtb:scale!=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10406 resolution 22 continue with_actions]
copy=99 & highway=* & mtb:scale:uphill=4 & mtb:scale!=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10405 resolution 22 continue with_actions]
copy=98 & highway=* & mtb:scale:uphill=4 & mtb:scale!=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10407 resolution 22 continue with_actions]
copy=99 & highway=* & mtb:scale:uphill=3 & mtb:scale!=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x10409 resolution 22 continue with_actions]
copy=98 & highway=* & mtb:scale:uphill=3 & mtb:scale!=* & mtb:scale!=5    {add mkgmap:taxi=no; set dontadd=oneway}    [0x1040a resolution 22 continue with_actions]
copy=99 & highway=* & mtb:scale:uphill=2 & mtb:scale!=* & mtb:scale!=5     & length()>30 {add mkgmap:taxi=no; set dontadd=oneway}    [0x10016 resolution 23 continue with_actions]
copy=98 & highway=* & mtb:scale:uphill=2 & mtb:scale!=* & mtb:scale!=5     & length()>30 {add mkgmap:taxi=no; set dontadd=oneway}    [0x10019 resolution 23 continue with_actions]
dontadd=oneway & highway=* & copy=99                                    {set oneway=-1; set mkgmap:toll=yes; add mkgmap:taxi=no; set mkgmap:unpaved=1; set mkgmap:set_unconnected_type=none}        [0x13 road_class=0 road_speed=0 resolution 24 continue]
dontadd=oneway & highway=* & copy=98                                    {set oneway=yes; set mkgmap:toll=yes; add mkgmap:taxi=no; set mkgmap:unpaved=1; set mkgmap:set_unconnected_type=none}        [0x13 road_class=0 road_speed=0 resolution 24 continue]

# make reverse steep climb pathes/tracks
( copy=99 | copy=98 ) & ( mtb:scale:uphill=2 | mtb:scale:uphill=1 | mtb:scale:uphill=0 ) & dontadd!=oneway & highway=* {set oneway=no; set mkgmap:set_unconnected_type=none} [0x13 road_class=0 road_speed=1 resolution 24 continue]
( copy=99 | copy=98 ) & mtb:scale:uphill!=2 & mtb:scale:uphill!=1 & mtb:scale:uphill!=0  & dontadd!=oneway & highway=* {set oneway=no; set mkgmap:set_unconnected_type=none} [0x13 road_class=0 road_speed=0 resolution 24 continue]




Note for Gerd:
Lines further down, then respect the oneway=yes or oneway=-1...



On 28.04.2014 08:03, Gerd Petermann wrote:
Hi Felix,

attached is a patch that may help to solve your problems with reversed oneways.

It may not work without --ignore-turn-restrictions. I'd first like to make sure
that I understand what you are doing.

I've added a few lines to the default style to produce additional lines for
ways with highway=* & incline=up
If I got you right, you create one oneway for the uphill direction and another
one with reverse direction for downhill, and also overlaying lines with
types that are direction dependent. The result is in switch_oneway.zip.

The attached reverse-oneway-v3.patch changes mkgmap to keep the order of
points in each way. That means, points are reversed after style processing if
tag oneway=-1 is found, and this order is then maintained in the rest of the program.

Gerd
P.S. I think we can drop the idea of reversing ways with "oneway=-1" before style processing.
This will not help in your case, as you add the tag in the style.



_______________________________________________
mkgmap-dev mailing list
mkgmap-dev@lists.mkgmap.org.uk
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

-- 
keep on biking and discovering new trails

Felix
openmtbmap.org & www.velomap.org