With the recent switch of LoMaps to using mapsforge V4, I discovered that I was relying on a "feature" which was just a side effect of V3 and V4 being both independent renderers with independent settings, which are obviously global. I had preset "Hike & Bike" internal theme for LoMap and Elevate Cycling for OAM.
Currently, when switching between OAM and LoMaps I need to additionally switch the theme, which is understandably a pain compared to previous state, where I only needed to touch theme settings if I wanted to switch theme profile or toggle specific features (in case of Elevate).
And obviously custom made themes can, and do, target specific map distributions which keep or drop some OSM specific details. I could provide some examples if necessary, but I think the case is clear.
I would like to propose a new feature of cascading configuration of renderer, so that settings could be specified on each layer:
- global (current situation)
- map / file (new thing)
- theme (also currently persisted, but only per theme)
I could imagine this as a map structure which gets populated by properties configured on each layer, with properties from higher layer overriding existing ones. Obviously I have no idea, how that would fit in current solution ... but can only hope not too much refactor 🙃