Hi,
attached is a reworked inc/access file.
It now uses a 1:1 assignment between OSM tag and mkgmap access tag:
foot=* { set mkgmap:foot='${foot}' }
bicycle=* { set mkgmap:bicycle='${bicycle}' }
motorcar=* { set mkgmap:car='${motorcar}' }
goods=* { set mkgmap:delivery='${goods}' }
hgv=* { set mkgmap:truck='${hgv}' }
bus=* { set mkgmap:bus='${bus}' }
taxi=* { set mkgmap:taxi='${taxi}' }
emergency=* { set mkgmap:emergency='${emergency}' }
motorcycle is no longer used. There is no clean solution when motorcycle
!= motorcar. The default style supports motorcars. Users that want to
use the cards especially for motorcycling should modify their inc/access
file appropriately.
delivery is no longer used. It is not an access key. The wiki notes:
The key delivery is mostly used with the value yes to indicate that the
restaurant offers delivery of your meal.
More access keys are used. They are taken into account obeying the rules
of vehicle subclasses (set motorcar=no if motor_vehicle=no or vehicle=no
etc.).
The old rule
highway=path { add foot=yes; add access=no }
did not work for the way [highway=path; access=no]. This way should not
be used by foot anyway but the rule above errorneously allowed foot.
This is fixed now.
carpool handling is now disabled. It does not work (as far as I know) so
the rules are not useful.
Many thanks to Mario Hantschke who worked out some problems of the old
access file and provided some good ideas for the new rules.
Please check the new rules. If you are unhappy with some assignements
please post an tagging example of a way and how you think the access
rules should be assigned.
Have fun!
WanMil
# Define the access restrictions
# The following tags define the restrictions:
# mkgmap:bicycle
# mkgmap:foot
# mkgmap:car
# mkgmap:truck
# mkgmap:taxi
# mkgmap:bus
# mkgmap:emergency
# mkgmap:delivery
# A class is not allowed to use the way if its tag is set to 'no'
# First set access settings with high priority.
#
# In case a way is tagged with
# highway=motorway;access=yes
# we assume that foot and bikes are not allowed anyhow.
highway=* { echotags "Before" }
highway=* & motorroad=yes { add bicycle=no; add foot=no; }
highway=motorway | highway=motorway_link { add bicycle=no; add foot=no; }
access=agricultural { set access=no; add foot=yes }
# Now fill the access tree (http://wiki.openstreetmap.org/wiki/Key:access)
# This is required so that subsequent rules do not add a tag (bicycle) which is
already defined by a higher tag (vehicle)
access=* { add foot='${access}'; add vehicle='${access}'; }
vehicle=* { add bicycle='${vehicle}'; add
motor_vehicle='${vehicle}'; }
motor_vehicle=* { add motorcar='${motor_vehicle}'; add
goods='${motor_vehicle}'; add hgv='${motor_vehicle}'; add
psv='${motor_vehicle}'; add emergency='${motor_vehicle}'; }
psv=* { add taxi='${psv}'; bus='${psv}'; }
# Add access rules that are derived from the highway type
highway=steps { add foot=yes; add access=no }
highway=pedestrian & area!=yes { add foot=yes; add access=no }
highway=path { add foot=yes; add bicycle=yes; add
access=no }
highway=bridleway { add access=no }
highway=cycleway { add bicycle=yes; add access=no }
highway=footway { add foot=yes; add access=no }
railway=platform { add foot=yes; add access=no }
# throughroute cannot be handled differently for different vehicle types
# Therefore we have to choose one vehicle type - and the winner is: motorcar
motorcar=destination { set mkgmap:throughroute=no; set motorcar=yes }
access=destination { set mkgmap:throughroute=no; set access=yes }
# Normalize all values that indicate a restriction to 'no'
foot=private | foot=agricultural { set foot=no }
bicycle=private | bicycle=agricultural { set bicycle=no }
motorcar=private | motorcar=agricultural { set motorcar=no }
goods=private | goods=agricultural { set goods=no }
hgv=private | hgv=agricultural { set motorcar=no }
bus=private | bus=agricultural { set bus=no }
taxi=private | taxi=agricultural { set taxi=no }
emergency=private | emergency=agricultural { set emergency=no }
# Copy the OSM access tags to the mkgmap internal tags
foot=* { set mkgmap:foot='${foot}' }
bicycle=* { set mkgmap:bicycle='${bicycle}' }
motorcar=* { set mkgmap:car='${motorcar}' }
goods=* { set mkgmap:delivery='${goods}' }
hgv=* { set mkgmap:truck='${hgv}' }
bus=* { set mkgmap:bus='${bus}' }
taxi=* { set mkgmap:taxi='${taxi}' }
emergency=* { set mkgmap:emergency='${emergency}' }
# The access tag defines all restrictions that are not already set
access=* { addaccess '${access}' }
highway=* { echotags "After" }
# Check for carpool lane (they are not really supported yet so these lines are
commented)
# hov=* { add carpool='${hov}' }
# (carpool=yes | carpool=designated | carpool=permissive | carpool=official)
{ set mkgmap:carpool=yes }
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev