Current rendering order makes some bugs or problems with displaying data.
Examples:
http://www.openstreetmap.org/#map=19/52.40698/16.96147 (piece of landuse=forest missing on landuse=grass)
http://www.openstreetmap.org/#map=19/52.38318/16.95716 (piece of landuse=residential area protrudes over landuse=meadow)
I took and concider all tags from landuse=* , leisure=* , natural=* and tourism=* keys, which are allowed to map as areas, and analyze them, trying to order logically as layers.
Main assumptions:
*Waters and rock/ stones above green landcovers
*Higher plants above lower plants
*Physical coverage areas above areas describing terrain usage
*Treating parks and village greens as groups of unspecified plants
Problem to solve:
An unavoidable direction which is OSM moving towards is more, and more precision. This means eg. covering an amenity=* areas by physical elements like buildings, grass or pitches. Then this cultural amenity=* or tourism=* areas becomes unvisible, and the only thing left is a label text. The same thing happens with parks overdrawn by certain types of plants, what causes loss of area park-status information, and loss of park borders information.
Examples:
http://www.openstreetmap.org/way/66266360 (barely visible amenity=hospital)
http://www.openstreetmap.org/#map=19/52.38752/16.94985 (amenity=kindergarden with grass pieces missing)
http://www.openstreetmap.org/way/336645782 (barely visible amenity=school)
http://www.openstreetmap.org/way/257507437 (barely visible leisure=park)
http://www.openstreetmap.org/way/4685998 (barely visible leisure=park)
In my opinion, way_area key works good only between physical man-made landcover areas (group 5 on my list) and physical natural landcover areas (group 6). For example: small amenity=parking is rendered above large landuse=forest in the suburbs, but on the other hand, small landuse=grass pieces are rendered above larger amenity=parking area in the cities.
I very like the way, how landuse=military is rendered. That half-transparent color overlay (even without skew stripes) allows to show both things - physical landcover and area usage information - at once (example: http://www.openstreetmap.org/way/236175277 ). I think we should discuss using this method for all areas from groups 3 and 4, or, at least, discuss darker outlines like there are now around amenity=zoo areas (example: http://www.openstreetmap.org/way/480832184 )
List description:
I divided all of tags (treated only as areas, not points or labels) to 8 main groups. If something is listed in one string, it means that this elements are equal, and shouldn’t be mapped one on another. Proposed layers list begins from the highest to lowest level.
1) Waters:
1.1) Natural=wetland
1.2.) Landuse=basin, Landuse=salt_pond, Leisure=swimming_pool, Natural=hot_spring, Natural=water
2) Rocks, stones etc.:
2.1) Natural=rock, Natural=stone
2.2) Natural=sinkhole
2.3) Natural=scree, Natural=shingle
2.4) Natural=bare_rock
2.5) Landuse=quarry
2.6) Natural=glacier
3) Partly-physical, man-made areas:
3.1) Amenity=* (all amenity areas excluding 5.2. group), Landuse=cemetery, Landuse=military, Leisure=dog_park, Leisure=golf_course, Leisure=miniature_golf, Leisure=sports_centre, Tourism=*
4) Partly-physical, natural areas (unspecified type of landcover/ plants):
4.1) Landuse=village_green, Leisure=park
5) Physical, man-made landcovers:
5.1) Landuse=landfill, Leisure=fitness_station, Leisure=pitch, Leisure=playground, Leisure=stadium, Leisure=track
5.2) Amenity=bicycle_parking, Amenity=motorcycle_parking, Amenity=parking, Amenity=shelter, Amenity=taxi
In case of collision between groups 5 and 6: way_area key, taking the highest one tag from each group (if there are more than 2 areas overlapping)
6) Physical, natural landcovers (certain types of landcover/ plants):
6.1) Landuse=forest, Natural=wood
6.2) Landuse=orchard, Landuse=vineyard
6.3) Landuse=farmland
6.4) Natural=heath, Natural=scrub
6.5) Landuse=meadow, Natural=grassland
6.6) Landuse=plant_nursery, Leisure=garden
6.7) Landuse=grass
6.8) Natural=mud
6.9) Natural=beach, Natural=sand
7) Non-physical landuses:
7.1) Landuse=allotments, Landuse=brownfield, Landuse=commercial, Landuse=construction, Landuse=depot, Landuse=farmyland, Landuse=garages, Landuse=greenfield, Landuse=greenhouse_horticulture, Landuse=industrial, Landuse=port, Landuse=railway, Landuse=recreation_ground, Landuse=religious, Landuse=residential, Landuse=retail
8) Geographical regions:
8.1) Natural=bay, Natural=cape, Natural=fell
Some of these tags are not rendered now, but I included them on a list, because they could be rendered in a future (eg. Leisure=fitness_station). I’m not sure is it everything, so if I missed some rendered tag - let me know in a comment.