[OSM-dev] Mapnik rendering of leisure=park + landuse=* relations
danhomerick at gmail.com
Mon Oct 5 23:38:16 BST 2009
It would be very nice to be able to use landuse tags within parks,
especially large ones. Trying to do so is pretty 'buggy' though. I use
buggy in quotes, because it seems like the rendering order is just
undefined, or at least inconsistent between zoom levels when used with
Ideally, leisure=park areas (which have an alpha transparency less
than 1) would render on top of landuse=* areas (which mostly/all? seem
to have an alpha of 1). This would allow a park to still be visible
even when surrounded by areas of the same landuse, because the park
would overlay the landuse and alter the coloration. As is, the render
order appears to be the other way around, with landuse renderings
overlaying the park and completely hiding it.
While trying to work around this limitation, I noticed that the
rendering order for relations is ... odd. "Buggy."
First, an example:
Both units of Henry Cowell Redwood State Park (the 'Fall Creek' unit
to the NW and the main parkland to the SE) have a multipolygon
relation whose outer member is the park boundary and where the
relation itself is carrying a landuse tag. Some inner members carry
different landuse tags. The park itself is defined by a leisure=park
tag on the boundary way. Note that we want the park boundary to be
separate from the landuse relation, so that 'holes' in the landuse
aren't holes in the park. Also note Wilder Ranch State to the SSE,
which does NOT use a landuse relation. Areas of landuse overlay the
park and obscure it.
Now zoom in and out, and notice that at some zoom levels, the landuse
relation is rendered on top of the park (obscuring it), and at other
zoom levels the landuse relation is rendered below the park, taking on
a coloration that reveals the landuse while still indicating the area
is a park. There are various parks nearby without any landuse that can
help note the color differences. Zoom level doesn't seem to be the
primary causation of the differences in rendering, it just looks like
the different tile sizes are triggering different rendering orders,
since at one zoom level both parks may get rendered differently
(zoom=14 for example).
There's also a hell of a lot of crud left around from somebody's
botched import(s), but that's another story.
Is this inconsistent rendering order a known issue?
Is there a better way, or workaround, to tag an area with both
leisure=park and landuse=*?
More information about the dev