[mkgmap-dev] [patch v3] reverse oneways
From GerdP gpetermann_muenchen at hotmail.com on Wed Apr 30 10:51:11 BST 2014
Hi Felix, ah, that sounds good :-) Yes, the patch doesn't restore the old handling of oneways. If I got that right you have two alternatives: Use two different types for left and right, or use the same type and add tag "oneway=-1" were needed, but should not do both. With the old version you needed both, and that's what I wanted to fix when I decided to apply the reversing also to overlay lines, but only with this last patch it works as I want it. I hope you agree that I should commit the patch as is? Gerd Felix Hartmann-2 wrote > 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 at .org >> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev > > -- > keep on biking and discovering new trails > > Felix > openmtbmap.org & www.velomap.org > > > _______________________________________________ > mkgmap-dev mailing list > mkgmap-dev at .org > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev -- View this message in context: http://gis.19327.n5.nabble.com/patch-v3-reverse-oneways-tp5804371p5804673.html Sent from the Mkgmap Development mailing list archive at Nabble.com.
- Previous message: [mkgmap-dev] [patch v3] reverse oneways
- Next message: [mkgmap-dev] [patch v3] reverse oneways
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list