Build hierarchy of landuse polygons.
A lot of the time, it's not possible to have a "static" hierarchy (e.g: all parks draw on top of all forests) between landuse polygons. Instead, we can use their geometry to determine their relationship; a featyre that is fully within another should probably draw on top of it.
We can build a "dynamic" hierarchy per-tile to produce a per-tile order value for each polygon which respects these relationships.
Note that there might be drawbacks to this approach; for example it would be possible for a polygon which crosses tile boundaries to get a different order in each tile, making it more likely that seaming artefacts would be visible. Many polygons won't have a simple within/contains relationship, and will have something more complex (crossing / mostly-overlapping). For those, there won't be a unique order, and we'll still have to tie-break to some arbitrary values.
Water that needs to displayed on top of landuse also needs to be in the mix (either with a data value set on export, or a conventional value communicated in a backchannel to the stylesheet).
We should also consider landuse versus nature (landcover) here.
Yup, and I'm sure there's lots of cases where nature and landcover are very different. We'll have to take a look over what data is available and sort out a sensible set of defaults with various overrides if we want to start a landcover layer (or, rather, separate out landcover from the existing landuse layer).
This is also affecting the landuse_kind road intersection – discovered when setting up Tailgate Mania targeted editing post, where should be parking lot, but is getting university instead.
#18/37.43733/-122.17039
Related: The grass areas in the SFO Airport south of San Francisco show up green "park". It'd be nice to know this "landcover" natural feature is "in" an airport and downplay it:
- https://whosonfirst.mapzen.com/lampzen/maps/359
