[mkgmap-dev] [patch v3] reverse oneways
From Felix Hartmann extremecarver at gmail.com on Wed Apr 30 10:35:50 BST 2014
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 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20140430/d1210382/attachment-0001.html>
- 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