Toby Speight wrote:
0> In article <4B0AD385.8030305@gmail.com>,
0> Felix Hartmann <URL:mailto:extremecarver@googlemail.com> ("Felix") wrote:

Felix> Toby Speight wrote:
  
I've had a look at assigning access values and now have the following at
the head of my lines file:

/--------
| # Don't route over unsuitable roads
| smoothness=horrible | smoothness=very_horrible | smoothness=impassable
|     { set motorcar=no; set hgv=no; set bicycle=no; }
| smoothness=very_bad
|     { set motorcar=no; set hgv=no; }
|
| # Highway access rules
| highway=bridleway {add access = no; add bicycle = yes; add horse=yes; add foot = yes}
| highway=cycleway {add access = no; add bicycle = yes; add foot = yes}
| highway=footway {add access = no; add foot = yes}
| highway=motorway {add oneway = yes; add bicycle = no; add horse=no; add foot = no }
| highway=motorway_link {add bicycle = no; add horse=no; add foot = no }
| highway=path {add access = no; add bicycle = yes; add foot = yes}
| highway=track {add access = no; add bicycle = yes; add horse=yes; add foot = yes}
| highway=pedestrian & area!=yes {add access = no; add foot = yes}
| highway=steps {add access = no; add foot = yes}
|
| bicycle=dismount { set bicycle = 'yes'; set maxspeed = '5' }
|
| # General access rules
| access=* { add foot='${access}'; add horse='${access}'; add vehicle='${access}'; }
| vehicle=* { add bicycle='${vehicle}'; add motor_vehicle='${vehicle}'; }
| motor_vehicle=* { add motorcycle='${motor_vehicle}'; add motorcar='${motor_vehicle}';
|                   add psv='${motor_vehicle}'; add hgv='${motor_vehicle}'; add goods='${motor_vehicle}';
|                   add taxi='${motor_vehicle}'; }
\--------

Should this be added to the default style?
      

Felix> No IMHO it shouldn't. Why? Because unconditional rules will not
Felix> work as you expect!
Felix>
Felix> If one rule matches, all other unconditional are dropped for the
Felix> line.  So forget about it - or make so many combinations that it
Felix> has to match.  You will then however quickly arrive at over 1000
Felix> rules, just for a few tags.

I'm sorry - I don't understand what you mean by this.  What do you mean
by "If one rule matches, all other unconditional are dropped for the
line"?  Can you give an example of a situation where the rules don't
have the desired effect?  Maybe there's something I can do to improve
them, or to improve mkgmap - or even to create a separate preprocessor,
if necessary.
  
If there is a footway with smoothness=very_bad

Only one of the above rules will be enacted.

If you want that both happens, you have to put a rule:
smoothness=very_bad & highway=footway {add access = no; add foot = yes,......}

As the first rule matches, no other unconditional rule will be enacted on a way/line. Only a condition [0x*...] rule will match again. Rules with more conditions prevail however over rules with fewer conditions.
so


smoothness=very_bad & highway=footway
smoothness=very_bad
highway=footway
no matter in which order they are placed, the rule including both will be chosen

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