Opened 13 years ago

Closed 13 years ago

#401 closed defect (fixed)

[mapnik] natural=wood doesn't render

Reported by: tom@… Owned by: Sebastian@…
Priority: major Milestone:
Component: mapnik Version:
Keywords: Cc:


In the above view, a small wedge of woodland is visible at the top. At the bottom there are a series of wiggly footpaths which go through another bit of woodland, which sits adjacent to a park, but neither of these two features are showing up. They showed up in the last render, and I've checked to confirm that all the tiles are indeed up to date.

I've checked that the data is OK, they are both clearly visible in the Tiles@Home layer, the woodland to the North is also on top of a residential area and still shows up, and they used to show up, so I can't think why they don't this time.

Change History (4)

comment:1 Changed 13 years ago by Sebastian@…

Owner: changed from steve@… to Sebastian@…
Status: newassigned
Summary: Missing wood and park in residential area{mapnik] natural=wood doesn't render

There is a rule in osm.xml but it doesn't work. I suspect the commented out rule a couple of lines above freaks out rendering. Send a mail to the list. Let's see if it's true. If yes, this bug would also fix the landuse=industrial is not rendered bug. Please check that if this is closed.

comment:2 Changed 13 years ago by Sebastian@…

Summary: {mapnik] natural=wood doesn't render[mapnik] natural=wood doesn't render

This should be fixed with r2901. Keep this one open until it is confirmed.

comment:3 Changed 13 years ago by Sebastian@…

Actually, jburgess writes:

I guess you mean the way(id=4372580, natural=wood). That is being hidden
by way(id=4044516, landuse=residential). The reason is pretty
straightforward -- neither area has a layer= attribute so the rendering
order of these two features is currently undefined. 

I have just set layer=-1 on the large landuse area which should ensure
that any other object will be rendered over the top of this.

So the real fix will be to set the landuse layer in mapnik to -1.

comment:4 Changed 13 years ago by jburgess@…

Resolution: fixed
Status: assignedclosed

osm2pgsql has had the following for ages which implements this...

/* landuse tends to cover large areas and we want it under other polygons */ if (landuse)

z_order -= 1;

This biases the landuse polygon to be under any other polygon which doesn't explicitly have a nagative layer= tag.

There was some discussion about this on the mailing list/IRC and I believe everyone agreed that other polygons should generally be rendered on top of the landuse rendering.

Note: See TracTickets for help on using tickets.