[mkgmap-dev] [PATCH v1] Rework of inc/access
From WanMil wmgcnfg at web.de on Thu Apr 17 23:07:52 BST 2014
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 -------------- next part -------------- # 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 }
- Previous message: [mkgmap-dev] Commit: r3194: improve LineMergeFilter: Don't merge lines for higher levels
- Next message: [mkgmap-dev] [PATCH v1] Rework of inc/access
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list