enzet / map-machine

Python renderer for OpenStreetMap with custom icons intended to display as many map features as possible
MIT License
503 stars 31 forks source link

Color areas based on various landuse tag values #129

Open Zero3 opened 2 years ago

Zero3 commented 2 years ago

I suggest using some of the landuse tag values to color areas. For example, landuse=village_green areas should be colored green. There are probably also some other relevant values for the tag.

enzet commented 2 years ago

Thanks for the issue, I'll take a look.

enzet commented 2 years ago

Tags from AreasTab.

Leisure and recreation

Agriculture and industry

BudgieInWA commented 2 years ago

When I looked at doing this in a past project, I ended up with two distinct layers:

I would render the ground cover underneath, and render the usage layer on top, trying to use different techniques to let the groundcover show through. Translucent colours, stripes of colour, patterns of symbols, etc.

The approach worked well, because I could use all sorts of data to determine the groundcover, without worrying about how that data needed to be represented on the map itself. E.g., I would start by painting park areas as grass (guessing that parks imply grass without any further info), then painting gardens, bushland, footways and pedestrian areas over the top, replacing the grass guess where appropriate. Then, the park area is also represented in the "usage" layer on top, showing that the area is "treated like a park".