Index: resources/styles/default/inc/access_country
===================================================================
--- resources/styles/default/inc/access_country	(revision 4258)
+++ resources/styles/default/inc/access_country	(working copy)
@@ -4,19 +4,26 @@
 
 # Belgium (BEL)
 
-highway=trunk & mkgmap:country=BEL	{ add bicycle=no; add foot=no }
-highway=cycleway & mkgmap:country=BEL	{ add foot=yes }
-highway=bridleway & mkgmap:country=BEL	{ add foot=yes }
+highway=trunk     & mkgmap:country=BEL {add bicycle=no; add foot=no}
+highway=cycleway  & mkgmap:country=BEL {add foot=yes}
+highway=bridleway & mkgmap:country=BEL {add foot=yes}
 
 # The Netherlands (NLD)
 
-highway=trunk & mkgmap:country=NLD	{ add bicycle=no; add foot=no }
-highway=cycleway & mkgmap:country=NLD	{ add foot=yes }
-highway=bridleway & mkgmap:country=NLD	{ add foot=yes }
+highway=trunk     & mkgmap:country=NLD {add bicycle=no; add foot=no}
+highway=cycleway  & mkgmap:country=NLD {add foot=yes}
+highway=bridleway & mkgmap:country=NLD {add foot=yes}
 
 # Spain (ESP)
 
-highway=trunk & mkgmap:country=ESP	{ add bicycle=yes; add foot=yes }
-highway=bridleway & mkgmap:country=ESP	{ add bicycle=yes; add foot=yes }
+highway=trunk     & mkgmap:country=ESP {add bicycle=yes; add foot=yes}
+highway=bridleway & mkgmap:country=ESP {add bicycle=yes; add foot=yes}
 
+# United Kingdom (GBR)
 
+highway=cycleway  & mkgmap:country=GBR {add foot=yes}
+highway=bridleway & mkgmap:country=GBR {
+    add bicycle=yes;
+    add foot=yes;
+    add motor_vehicle=private
+    }
Index: resources/styles/default/lines
===================================================================
--- resources/styles/default/lines	(revision 4258)
+++ resources/styles/default/lines	(working copy)
@@ -10,9 +10,12 @@
 
 addr:housenumber=* {set mkgmap:execute_finalize_rules=true}
 
-aeroway=runway & highway!=* & is_closed()=false {name '${ref}'} [0x27 resolution 20]
-(aeroway=taxiway | aeroway=taxilane) & highway!=* & is_closed()=false {name '${ref}'} [0x27 resolution 24]
+abandoned=yes {deletealltags}  # old, depreciated, ambiguous, method of handling abandoned
 
+# do these as lines regardless of being closed unless explicity marked as area. continue in case also a highway
+aeroway=runway & area!=yes {name '${ref}'} [0x27 resolution 20 continue]
+(aeroway=taxiway | aeroway=taxilane) & area!=yes {name '${ref}'} [0x27 resolution 24 continue]
+
 # Assign the street name for house number search
 highway=* & name=* {set mkgmap:street='${name}'}
 
@@ -19,22 +22,22 @@
 # Mark highways with the toll flag
 highway=* & (toll=yes | toll=true) {set mkgmap:toll=yes}
 
-# mark multipolygons as area
-highway=* & mkgmap:mp_created=true {add area=yes}
-
 # Hide proposed ways
 highway=proposed | highway=proposal | highway=planned | highway~'.*proposed.*' {delete highway; delete junction}
 # Hide removed ways
-highway=razed | highway=dismantled {deletealltags}
+highway=razed | highway=dismantled | highway=disused | highway=demolished {delete highway; delete junction}
 # Hide abandoned ways. Abandoned highways have some evidence of their former existence but are no longer used. These
 # abandoned highways could be useful in topographical maps.
 # https://wiki.openstreetmap.org/wiki/Key:abandoned:
-(abandoned:highway=* & highway!=*) | highway=abandoned {deletealltags}
+(abandoned:highway=* & (highway!=* | highway=yes)) | highway=abandoned {delete highway; delete junction}
 # Hide other non-existent ways
 highway=unbuilt | highway=neverbuilt | highway=rejected | highway~'x-.*' {delete highway; delete junction}
 # Remove highway tag from ways which are not suitable for routing
-highway=traffic_signals | highway=junction | highway=island | highway=centre_line | highway=traffic_island | highway=stopline
+highway=traffic_signals | highway=junction | highway=island | highway=centre_line | highway=traffic_island | highway=stopline |
+    highway=bus_stop | highway=bus_guideway | highway=escape | highway=emergency_bay | highway=emergency_access_point |
+    highway=ohm:military:Trench
     {delete highway}
+highway=via_ferrata {delete highway}  # this shouldn't show as routable on default map: path only for specialists
 highway=piste | highway=ski {delete highway}
 highway=no | highway=none {delete highway}
 
@@ -89,7 +92,7 @@
 (highway=bridleway | highway=path | highway=track) & mkgmap:unpaved!=0 {add mkgmap:unpaved=1}
 (highway=unsurfaced | highway=via_ferrata) {set mkgmap:unpaved=1}
 
-highway=* & mkgmap:unpaved!=1 & smoothness~'.*(bad|horrible|impassable)' {add mkgmap:road-speed='-2'}
+highway=* & mkgmap:unpaved!=1 & smoothness~'.*(bad|horrible|impassable)' {add mkgmap:road-speed=-2}
 
 # Good ways without relation
 highway=* & mkgmap:fast_road!=* & (int_ref=* | network=e-road | network=AH | network=TAH | network=US:I | network=US:US)
@@ -98,16 +101,25 @@
 highway=* & (access=hov | hov=designated | oneway=reversible)
     {set mkgmap:road-class=-2; set mkgmap:road-speed=-2; delete mkgmap:fast_road}
 
+# convert some specific to generic with restrictions (platform is in a bus station)
+highway=steps | highway=corridor | highway=stepping_stones | highway=elevator | highway=escalator | highway=platform
+    {set highway=footway; add bicycle=no; add horse=no}
+# virtual seems to be a way across a pedestrian area
+highway=crossing | highway=virtual
+    {set highway=path}  # following logic may change
+
 # Convert generic path to most specific
-highway=footway & snowplowing!=no & (bicycle=yes | bicycle=designated | bicycle=permissive | bicycle=official)
-    {set highway=cycleway; set bicycle=yes; set foot=yes}
-highway=path & snowplowing!=no & (bicycle=designated | bicycle=permissive | bicycle=official)
-    {set highway=cycleway; set bicycle=yes}
-highway=path & (horse=designated | horse=permissive | horse=official)
-    {set highway=bridleway; set horse=yes}
+highway=path & (designation=permissive_bridleway | designation=public_bridleway)
+    {set highway=bridleway; add horse=designated}
+highway=path & (designation=permissive_footpath | designation=public_footpath)
+    {set highway=footway; add foot=designated}
+highway=path & snowplowing!=no & (bicycle=designated | bicycle=permissive | bicycle=official | cycleway=lane)
+    {set highway=cycleway; add bicycle=yes}
+highway=path & foot=designated
+    {set highway=footway}
 
 leisure=track & area!=yes {add highway=footway; name '${name} (${sport})' | '${name}'}
-(man_made=pier | man_made=piste:halfpipe) & area!=yes {add highway=footway; name '${ref} ${name}' | '${ref}' | '${name}'}
+man_made=pier | man_made=piste:halfpipe {add highway=footway; name '${ref} ${name}' | '${ref}' | '${name}'}
 
 # Roundabouts
 junction=roundabout & (highway=trunk | highway=trunk_link) [0x0c road_class=4 road_speed=2 resolution 24 continue]
@@ -128,7 +140,7 @@
 junction=roundabout & (highway=tertiary | highway=tertiary_link) [0x0c road_class=1 road_speed=1 resolution 24 continue]
 junction=roundabout & (highway=tertiary | highway=tertiary_link) [0x10804 resolution 21]
 
-junction=roundabout & (highway=unclassified | highway=minor ) [0x0c road_class=1 road_speed=1 resolution 21]
+junction=roundabout & (highway=unclassified | highway=minor) [0x0c road_class=1 road_speed=1 resolution 21]
 junction=roundabout & highway=* [0x0c road_class=0 road_speed=1 resolution 22]
 
 # Ways that may or may not be useable
@@ -167,31 +179,58 @@
 highway=minor [0x06 road_class=1 road_speed=3 resolution 21]
 highway=unclassified [0x06 road_class=0 road_speed=3 resolution 21]
 
-# Some countries allow, others disallow bicycling on pedestrian streets.
-# To allow bicycling, add 'add bicycle=yes'
-highway=pedestrian & area!=yes [0x16 road_class=0 road_speed=0 resolution 22]
+highway=yes {set highway=footway}  # fix common bad tagging - little bits of path to join other routable ways
+
+# Some countries allow, others disallow bicycling on pedestrian streets. See inc/access_country
+
+# highway=pedestrian could be closed polygon to represent a 'square', add route regardless and continue for polygon processing
+highway=pedestrian {set tmp:stopMopUp=yes} [0x16 road_class=0 road_speed=0 resolution 22 continue with_actions]
+
 highway=living_street [0x06 road_class=0 road_speed=1 resolution 22]
 highway=residential [0x06 road_class=0 road_speed=2 resolution 22]
 highway=bridleway [0x07 road_class=0 road_speed=0 resolution 23]
 highway=byway [0x16 road_class=0 road_speed=0 resolution 23]
 
+highway=driveway {set highway=service; add service=driveway}  # fix common bad tagging
+highway=access | highway=access_ramp {set highway=service}  # fix common bad tagging
+
 highway=service & service=parking_aisle [0x07 road_class=0 road_speed=1 resolution 24]
-highway=service & (service=alley|service=driveway) [0x07 road_class=0 road_speed=0 resolution 23]
+highway=service & (service=alley | service=driveway) [0x07 road_class=0 road_speed=0 resolution 23]
 highway=service [0x07 road_class=0 road_speed=2 resolution 22]
 
 highway=cycleway [0x07 road_class=0 road_speed=1 resolution 23]
 
-highway=footway | highway=path | highway=steps [0x16 road_class=0 road_speed=0 resolution 23]
+highway=footpath | highway=foot {set highway=footway}  # fix common bad tagging
+
+# highway=footway is often an area as well, continue for polygon processing
+highway=footway {set tmp:stopMopUp=yes} [0x16 road_class=0 road_speed=0 resolution 23 continue with_actions]
+
+highway=trail {set highway=path; add bicycle=no}  # fix common bad tagging
+
+highway=path [0x16 road_class=0 road_speed=0 resolution 23]
 highway=track [0x0a road_class=0 road_speed=1 resolution 22]
 highway=unsurfaced [0x0a road_class=0 road_speed=1 resolution 22]
 highway=road {add mkgmap:dead-end-check=false} [0x06 road_class=0 road_speed=1 resolution 22]
 
+# handle some rarer bits of road. Do just in case joining paths or bits of one-way roads
+highway=turning_loop | highway=turning_circle | highway=layby [0x07 road_class=0 road_speed=0 resolution 24]
+
+# These are too specialized to have routing, so shouldn't drop into the mop-up, but, maybe needing TYP, can be shown on the map
+highway=raceway | highway=gallop {add name='${highway}'} [0x30 resolution 23]
+
+# Don't have routable for either of these:
+# most 'rest_area' don't connect to the main road
+# 'services' is normally a big area that covers the whole complex
+highway=rest_area | highway=services {set tmp:stopMopUp=yes}
+
 # Mop up any unrecognised highway types
-highway=* & area!=yes [0x07 road_class=0 road_speed=0 resolution 23]
+#highway=* & tmp:stopMopUp!=yes {echotags 'mop-up highway'}  # mostly actual road names
+highway=* & area!=yes & tmp:stopMopUp!=yes [0x07 road_class=0 road_speed=0 resolution 23]
 
 natural=coastline [0x15 resolution 12]
 power=line [0x29 resolution 21]
 
+# following really should be removed, but see: http://www.mkgmap.org.uk/pipermail/mkgmap-dev/2016q3/025104.html
 railway=abandoned [0x0a road_class=0 road_speed=1 resolution 22]
 railway=platform [0x16 road_class=0 road_speed=0 resolution 23]
 # Railway lines, note that many devices display type 0x14 only at resolution 24
@@ -225,6 +264,10 @@
 waterway=rapids|waterway=waterfall [0x1f resolution 22]
 waterway=stream | waterway=drain [0x18 resolution 22]
 
+# mop up any remaining water lines
+waterway=* & waterway!=no & (area=no | (is_closed()=false & mkgmap:mp_created!=true))
+    {add name='${waterway|subst:"_=> "}'} [0x26 resolution 24]
+
 include 'inc/contour_lines';
 
 <finalize>
@@ -243,8 +286,8 @@
 mkgmap:bicycle=yes & (mkgmap:foot=no & mkgmap:car=no & mkgmap:street!=* | mkgmap:synthesised=yes) {set mkgmap:numbers=false}
 
 # Display highway shield for mayor roads if they have a ref and make them searchable by their name
-(highway=motorway | highway=trunk) & ref=* {name '${ref|highway-symbol:hbox}'; addlabel '${name}'}
-highway=primary & ref=* {name '${ref|highway-symbol:box}'; addlabel '${name}'}
+(highway=motorway | highway=trunk)     & ref=* {name '${ref|highway-symbol:hbox}'; addlabel '${name}'}
+highway=primary                        & ref=* {name '${ref|highway-symbol:box}' ; addlabel '${name}'}
 (highway=secondary | highway=tertiary) & ref=* {name '${ref|highway-symbol:oval}'; addlabel '${name}'}
 
 name=* {name '${name}'}
Index: resources/styles/default/points
===================================================================
--- resources/styles/default/points	(revision 4258)
+++ resources/styles/default/points	(working copy)
@@ -64,32 +64,33 @@
 
 include 'inc/name';
 
-place=city & population > 999999 &                 name=* {set tmp:city=yes} [0x0100 resolution 12 continue with_actions]
-place=city & population > 799999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0200 resolution 14 continue with_actions]
-place=city & population > 399999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0300 resolution 15 continue with_actions]
-place=city & population > 299999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0400 resolution 16 continue with_actions]
-place=city & population > 199999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0500 resolution 16 continue with_actions]
-place=city & population >  99999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0600 resolution 17 continue with_actions]
-place=city & population >  49999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0700 resolution 17 continue with_actions]
-place=city & population >   9999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0800 resolution 18 continue with_actions]
+place=city & population > 999999 & name=* [0x0100 resolution 12]
+place=city & population > 799999 & name=* [0x0200 resolution 14]
+place=city & population > 399999 & name=* [0x0300 resolution 15]
+place=city & population > 299999 & name=* [0x0400 resolution 16]
+place=city & population > 199999 & name=* [0x0500 resolution 16]
+place=city & population >  99999 & name=* [0x0600 resolution 17]
+place=city & population >  49999 & name=* [0x0700 resolution 17]
+place=city & population >   9999 & name=* [0x0800 resolution 18]
 
-place=city & population >      0 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0800 resolution 18 continue with_actions]
-place=city                       & tmp:city!=yes & name=* {set tmp:city=yes} [0x0700 resolution 18 continue with_actions]
+place=city & population >      0 & name=* [0x0800 resolution 18]
+place=city                       & name=* [0x0700 resolution 18]
 
-place=town & population >  69999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0600 resolution 17 continue with_actions]
-place=town & population >  19999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0700 resolution 18 continue with_actions]
-place=town & population >   9999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0800 resolution 19 continue with_actions]
-place=town & population >   4999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0900 resolution 19 continue with_actions]
-place=town & population >    999 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0a00 resolution 19 continue with_actions]
-place=town & population >      0 & tmp:city!=yes & name=* {set tmp:city=yes} [0x0b00 resolution 20 continue with_actions]
-place=town                       & tmp:city!=yes & name=* {set tmp:city=yes} [0x0800 resolution 19 continue with_actions]
+place=town & population >  69999 & name=* [0x0600 resolution 17]
+place=town & population >  19999 & name=* [0x0700 resolution 18]
+place=town & population >   9999 & name=* [0x0800 resolution 19]
+place=town & population >   4999 & name=* [0x0900 resolution 19]
+place=town & population >    999 & name=* [0x0a00 resolution 19]
+place=town & population >      0 & name=* [0x0b00 resolution 20]
+place=town                       & name=* [0x0800 resolution 19]
 
-place=island                     & tmp:city!=yes          {set tmp:city=yes} [0x650c resolution 20 continue with_actions]
-place=islet                      & tmp:city!=yes          {set tmp:city=yes} [0x650c resolution 22 continue with_actions]
-place=village                    & tmp:city!=yes          {set tmp:city=yes} [0x0900 resolution 22 continue with_actions]
-place=suburb                     & tmp:city!=yes          {set tmp:city=yes} [0x0a00 resolution 22 continue with_actions]
-place=hamlet                     & tmp:city!=yes          {set tmp:city=yes} [0x0b00 resolution 24 continue with_actions]
+place=village                    & name=* [0x0900 resolution 22]
+place=suburb                     & name=* [0x0a00 resolution 22]
+place=hamlet                     & name=* [0x0b00 resolution 24]
 
+place=island & name=* [0x650c resolution 20]
+place=islet  & name=* [0x650c resolution 22]
+
 #aeroway=airport [0x5900 resolution 22]
 aeroway=airport [0x2f04 resolution 22]
 aeroway=aerodrome [0x2f04 resolution 22]
@@ -123,12 +124,7 @@
 amenity=embassy & country!=* [0x3003 resolution 24 default_name 'Embassy']
 amenity=emergency_phone [0x2f12 resolution 24 default_name 'Emergency Phone']
 amenity=ferry_terminal [0x2f08 resolution 22]
-
-amenity=fast_food & cuisine=grill [0x2a03 resolution 24]
-amenity=fast_food & cuisine~'.*pizza.*' [0x2a0a resolution 24]
-amenity=fast_food & cuisine=* {add name='${cuisine|subst:"_=> "}'} [0x2a07 resolution 24]
-amenity=fast_food [0x2a07 resolution 24]
-
+# handle amenity=fast_food rules later in file
 amenity=fire_station [0x3008 resolution 24]
 amenity=food_court [0x2a13 resolution 24]
 amenity=fuel & fuel:HGV_diesel=yes [0x2f16 resolution 23]
@@ -149,36 +145,7 @@
 amenity=pub [0x2d02 resolution 24]
 amenity=public_building [0x3007 resolution 24]
 amenity=recycling [0x2f15 resolution 24 default_name 'Recycling']
-
-amenity=restaurant & cuisine=american [0x2a01 resolution 24]
-amenity=restaurant & cuisine=asian [0x2a02 resolution 24]
-amenity=restaurant & cuisine=bagel [0x2a0d resolution 24]
-amenity=restaurant & cuisine=barbecue [0x2a03 resolution 24]
-amenity=restaurant & cuisine=british [0x2a11 resolution 24]
-amenity=restaurant & cuisine=chinese [0x2a04 resolution 24]
-amenity=restaurant & cuisine=curry [0x2a02 resolution 24]
-amenity=restaurant & cuisine=deli [0x2a05 resolution 24]
-amenity=restaurant & cuisine=french [0x2a0f resolution 24]
-amenity=restaurant & cuisine=fish_and_chips [0x2a11 resolution 24]
-amenity=restaurant & (cuisine=german | cuisine=bavarian) [0x2a10 resolution 24]
-amenity=restaurant & cuisine=grill [0x2a03 resolution 24]
-amenity=restaurant & cuisine=indian [0x2a02 resolution 24]
-amenity=restaurant & cuisine=international [0x2a06 resolution 24]
-amenity=restaurant & cuisine=italian [0x2a08 resolution 24]
-amenity=restaurant & cuisine=japanese [0x2a02 resolution 24]
-amenity=restaurant & cuisine=korean [0x2a02 resolution 24]
-amenity=restaurant & cuisine=mexican [0x2a09 resolution 24]
-amenity=restaurant & cuisine~'.*pizza.*' [0x2a0a resolution 24]
-amenity=restaurant & cuisine=sea_food [0x2a0b resolution 24]
-# often "seafood" is used instead of official tag "sea_food"
-amenity=restaurant & cuisine=seafood [0x2a0b resolution 24]
-amenity=restaurant & cuisine=spanish [0x2a09 resolution 24]
-amenity=restaurant & cuisine=speciality [0x2a12 resolution 24]
-amenity=restaurant & cuisine=steak [0x2a0c resolution 24]
-amenity=restaurant & cuisine=thai [0x2a02 resolution 24]
-amenity=restaurant & cuisine=* {add name='${cuisine|subst:"_=> "}'} [0x2a13 resolution 24]
-amenity=restaurant [0x2a00 resolution 24]
-
+# handle amenity=restaurant rules later in file
 amenity=school [0x2c05 resolution 24]
 # amenity=shelter is ambiguous; when possible, consider using other tags:
 #  tourism=lean_to or tourism=picnic_site
@@ -217,13 +184,13 @@
 leisure=marina [0x4300 resolution 24]
 leisure=nature_reserve & name=* [0x6612 resolution 24]
 leisure=park [0x2c06 resolution 24]
-leisure=pitch {name '${name} (${sport})' | '${name}'} [0x2c08 resolution 24]
+leisure=pitch {name '${name} (${sport})' | '${sport}'} [0x2c08 resolution 24]
 leisure=playground [0x2c06 resolution 24 default_name 'Playground']
 leisure=recreation_ground [0x2c08 resolution 24 default_name 'Rec.']
-leisure=sports_center | leisure=sports_centre {name '${name} (${sport})' | '${name}'} [0x2d0a resolution 24]
-leisure=stadium {name '${name} (${sport})' | '${name}'} [0x2c08 resolution 24]
+leisure=sports_center | leisure=sports_centre {name '${name} (${sport})' | '${sport}'} [0x2d0a resolution 24]
+leisure=stadium {name '${name} (${sport})' | '${sport}'} [0x2c08 resolution 24]
 leisure=swimming_pool [0x2d09 resolution 24]
-leisure=track {name '${name} (${sport})' | '${name}'} [0x2c08 resolution 24]
+leisure=track {name '${name} (${sport})' | '${sport}'} [0x2c08 resolution 24]
 leisure=water_park [0x2d09 resolution 24]
 
 man_made=tower | man_made=mast | landmark=chimney [0x6411 resolution 24]
@@ -306,6 +273,62 @@
 tourism=* & tourism!=yes & tourism!=no {add name='${tourism|subst:"_=> "}'}
 tourism=* & tourism!=no [0x2c0d resolution 24]
 
+# amenity=restaurant/fast_food/cafe/pub and shop=* can use cuisine, so have cuisine section later than where the others
+# should take precedence
+# Have the following 2 lines here rather than after cuisine=... so that, for amenity=fast_food, cuisine is ignored
+amenity=fast_food & cuisine=* {add name='${cuisine|subst:"_=> "}'} [0x2a07 resolution 24]
+amenity=fast_food [0x2a07 resolution 24]
+
+# "Food & Drink" Search has categories as follows, corresponding to 0x2a00 - 0x2a13:
+#   All, American, Asian, Barbeque, Chinese, Deli/Bakery, International, Fast Food, Italian, Mexican, Pizza,
+#     Seafood, Steak/Grill, Bagel/Donut, Cafe/Diner, French, German, British Isles, Speciality Food Products, Other
+amenity=restaurant & cuisine!=*
+    [0x2a00 resolution 24]
+cuisine=american | cuisine=burger
+    [0x2a01 resolution 24]
+cuisine=asian | cuisine=japanese | cuisine=indian | cuisine=curry | cuisine=thai | cuisine=sushi | cuisine=korean
+    [0x2a02 resolution 24]
+cuisine=barbecue | cuisine=bbq | cuisine=kebab | cuisine=chicken
+    [0x2a03 resolution 24]
+cuisine=chinese | cuisine=vietnamese
+    [0x2a04 resolution 24]
+cuisine=deli | cuisine=sandwich
+    [0x2a05 resolution 24]
+cuisine=international
+    [0x2a06 resolution 24]
+cuisine=fast_food
+    [0x2a07 resolution 24]
+cuisine=italian | cuisine=pasta
+    [0x2a08 resolution 24]
+cuisine=mexican | cuisine=spanish | cuisine=tapas
+    [0x2a09 resolution 24]
+cuisine~'.*pizza.*'
+    [0x2a0a resolution 24]
+cuisine=seafood | cuisine=sea_food | cuisine=fish
+    [0x2a0b resolution 24]
+cuisine=steak | cuisine=grill | cuisine=steak_house
+    [0x2a0c resolution 24]
+cuisine=bagel | cuisine=donut
+    [0x2a0d resolution 24]
+cuisine=cafe | cuisine=diner | cuisine=coffee_shop
+    [0x2a0e resolution 24]
+cuisine=french
+    [0x2a0f resolution 24]
+cuisine=german | cuisine=bavarian
+    [0x2a10 resolution 24]
+cuisine=british | cuisine=fish_and_chips
+    [0x2a11 resolution 24]
+cuisine=speciality | cuisine=local | cuisine=regional
+    [0x2a12 resolution 24]
+amenity=restaurant {add name='${cuisine|subst:"_=> "}'}
+    [0x2a13 resolution 24]
+#common ones not handled:
+# ice_cream,greek,turkish,noodle,portugese,pasties,lebanese,brazilian,mediterranean,oriental,caribbean,vegetarian
+
+# Have the following 2 lines here rather than before cuisine=... so that, for amenity=fast_food, cuisine is respected
+#amenity=fast_food & cuisine=* {add name='${cuisine|subst:"_=> "}'} [0x2a07 resolution 24]
+#amenity=fast_food [0x2a07 resolution 24]
+
 barrier=bollard | barrier=bus_trap | barrier=gate [0x660f resolution 24]
 barrier=block | barrier=cycle_barrier | barrier=stile | barrier=kissing_gate [0x660f resolution 24]
 
@@ -315,6 +338,7 @@
 natural=glacier [0x650a resolution 24]
 natural=spring [0x6511 resolution 24]
 natural=stream [0x6512 resolution 24]
+natural=water & (water=canal | water=lock) & name=* [0x6505 resolution 24]
 natural=water & name=* [0x6603 resolution 24]
 natural=waterfall | waterway=waterfall [0x6508 resolution 24]
 natural=wetland & name=* [0x6513 resolution 24]
Index: resources/styles/default/polygons
===================================================================
--- resources/styles/default/polygons	(revision 4258)
+++ resources/styles/default/polygons	(working copy)
@@ -17,13 +17,14 @@
 
 aeroway=airport [0x07 resolution 20]
 aeroway=aerodrome [0x07 resolution 20]
-aeroway=runway {name '${ref}'} [0x0e resolution 20]
-aeroway=taxiway | aeroway=taxilane {name '${ref}'} [0x0e resolution 24]
+aeroway=runway & area=yes {name '${ref}'} [0x0e resolution 20]
+(aeroway=taxiway | aeroway=taxilane) & area=yes {name '${ref}'} [0x0e resolution 24]
 aeroway=heliport [0x07 resolution 20]
 aeroway=helipad [0x0e resolution 22]
 
 amenity=kindergarten [0x0a resolution 22]
-amenity=cafe | amenity=fast_food | amenity=restaurant | amenity=food_court [0x08 resolution 22]
+amenity=cafe | amenity=fast_food | amenity=restaurant [0x08 resolution 24]
+amenity=food_court [0x08 resolution 22]
 amenity=college [0x0a resolution 22]
 parking=underground | parking=multi-storey [0x06 resolution 22]
 amenity=parking | parking=surface [0x05 resolution 22]
@@ -51,25 +52,35 @@
 leisure=water_park [0x09 resolution 21]
 
 place=village [0x03 resolution 19]
+place=suburb [0x02 resolution 19]
 
-shop=* {add name='${shop|subst:"_=> "}'} [0x08 resolution 22]
+shop=* {add name='${shop|subst:"_=> "}'} [0x08 resolution 24]
 
 # squares and plazas
-highway=pedestrian & (area=yes | mkgmap:mp_created=true) [0x17 resolution 22]
-# other highways that have area=yes set must be parking lots
-highway=* & (area=yes | mkgmap:mp_created=true) [0x05 resolution 22]
+place=square [0x17 resolution 22]
+# squares/plazas are mapped as closed highway=pedestrian; assume square unless explicly marked as not area
+highway=pedestrian & area!=no [0x17 resolution 22]
+# footways areas are similar, but should be explicity marked as such
+highway=footway & area=yes [0x25 resolution 24]
 
-historic=museum | historic=memorial [0x1e resolution 21]
-historic=archaeological_site | historic=ruins [0x1e resolution 21]
+# other highways that have area=yes are probably parking lots, eg services/rest_area
+(highway=services | highway=rest_area) & area!=no [0x05 resolution 22]
 
+historic=* {add name='${historic|subst:"_=> "}'} [0x1e resolution 21]
+
 landuse=basin [0x3f resolution 20]
 landuse=reservoir | (natural=water & water=reservoir) [0x3f resolution 20]
 
+dock=drydock [0x4c resolution 22]  # might also have natural=water
+
 natural=bay [0x3d resolution 18]
 natural=glacier [0x4d resolution 18]
 natural=marsh [0x51 resolution 20]
 natural=mud [0x51 resolution 20]
 natural=wetland [0x51 resolution 20]
+natural=water & water=canal [0x48 resolution 22]
+natural=water & water=lock [0x4c resolution 22 default_name 'Lock']
+natural=water & area_size() < 100000 [0x41 resolution 22]  # Small Lake
 natural=water [0x3c resolution 18]
 natural=waterfall | waterway=waterfall [0x47 resolution 21]
 natural=sea {add mkgmap:skipSizeFilter=true; set mkgmap:drawLevel=2} [0x32 resolution 10]
@@ -76,6 +87,9 @@
 
 waterway=riverbank [0x46 resolution 20]
 
+# mop up any remaining water areas
+waterway=* & waterway!=no & area!=no {add name='${waterway|subst:"_=> "}'} [0x3b resolution 22]
+
 landuse=allotments [0x4e resolution 21]
 landuse=cemetery | landuse=cemetary | amenity=grave_yard [0x1a resolution 21]
 landuse=commercial [0x0c resolution 19]
@@ -110,13 +124,8 @@
 tourism=* & area!=no & waterway!=* {add name='${tourism|subst:"_=> "}'} [0x1f resolution 24]
 
 # man_made can be used on areas or lines
-man_made=* & area!=no & (
-    man_made!=door & man_made!=embankment & man_made!=breakwater & man_made!=cable_line & man_made!=cutline &
-    man_made!=cutting & man_made!=levee & man_made!=trench & man_made!=groyne & man_made!=reinforced_slope)
-    {add name='${man_made|subst:"_=> "}'} [0x13 resolution 24]
+man_made=* & area!=no {add name='${man_made|subst:"_=> "}'} [0x13 resolution 24]
 
-man_made=* & area=yes {add name='${man_made|subst:"_=> "}'} [0x13 resolution 24]
-
 # render small named islands
 place=island & name=* & area_size() < 1000000 [0x53 resolution 19]
 place=islet & name=* [0x53 resolution 20]
