Opened 10 years ago

Closed 9 years ago

#3242 closed defect (fixed)

natural=mud does not render on the wet side of waterway=riverbank

Reported by: malcolm.herring@… Owned by: mapnik-team@…
Priority: major Milestone:
Component: mapnik Version:
Keywords: Cc:


At the higher zooms where natural=mud renders over the water on the wet side of natural=coastline, the same does not occur for riverbanks. This is particularly noticeable in estuaries where there is an abrupt transition from coastline to riverbank.


Contrast this with the same situation for natural=wetland, which does not exhibit this problem:

Change History (6)

comment:1 Changed 10 years ago by Ldp

There's a bit of a dilemma here.

Mud renders first, then water, so that's why it's hidden(1) in your example. However, if you tag a large mud area and have a stream running through, that will currently show. If the ordering is switched, it would no longer show. Unless you divide the mud area so it's only on either side of that stream, and not occupying the area(2) of the stream(3).

The same handling is currently applied to heath and forest, and rendering those two before water makes sense. Due to the close relation between mud and water, switching the rendering order so mud renders over water might make sense.

1) Coastline is a special case. The 'water' on the wet side is actually the default map background colour. Anything else renders on top of that.

2) There is no issue with linear streams. They would still render on top if the water as area vs mud order is changed.

3) Which seems the right thing to do, of course. Where there is water, there's no mud. Mud makes more sense as a surface property, with the area itself tagged as a waterway=wetland + wetland=tidalflat. Unfortunately, we don't render any surface=* tags yet.

comment:2 Changed 10 years ago by malcolm.herring@…

I see your point. Since my interest is with intertidal areas, the natural=wetland, wetland=tidalflat is appropriate tagging, but the rendering ignores the latter tag giving a rendering pattern that is inappropriate for what is mud with no vegetation.

The answer to this problem is to process the wetland=* tags. So in this case, if wetland=tidalflat were rendered with the same pattern as natural=mud, this would give the desired result.

There is an open ticket on that issue (#1607), so maybe that one should be given some attention. Alternatively, use the tidal=yes tag to override the water.

comment:3 Changed 10 years ago by Ldp

I have the same interest, and have been working extensively with tidalflats lately. I also don't like the pattern and agree wetland=* should be handled. Personally, I'm gearing more towards a darker blue than water for wetland=tidalflat instead of the mud fill, but I'll leave it to our cartographer to decide.

PS: The difference in your example is that natural=mud is a solid fill, and natural=wetland is a transparent overlay with the wetland symbol, and whatever is under it, will show.

comment:4 Changed 10 years ago by malcolm.herring@…

This appears to have been fixed, but the ticket is still open. Is this simply an oversight, or did some other change to the renderer cause this fix as a side effect?

comment:5 in reply to:  4 Changed 10 years ago by seawolff

waterway=wetland & wetland=tidalflat is rendered outside of natural=coastline but not on top of waterway=riverbank. On the north-west part of the river has waterway=riverbank and overwrites wetland=tidalflat.

In my opinion tidalflat should be drawn on top of riverbank areas (tidal parts of a river) but not on top of linear waterways (streams through a tidalflat).

The actual texture ist unsuitable for wetland=tidalflat. I would prefer a colour between blue(water) and grey(mud). A light grey with alpha=40% may be suitable.

comment:6 Changed 9 years ago by Ldp

Resolution: fixed
Status: newclosed

@seawolf: This has been fixed a while ago.

We cannot discern yet between the different types of wetland. We should be able to in the near future. Different styles will come later.

Note: See TracTickets for help on using tickets.