Hi everyone,
I am writing this to bring renewed attention to the discussion regarding the rendering of area:highway=* in the standard OpenStreetMap Carto style. I recently left a comment on the relevant issue in the GitHub repository, but given the limitations of that tracker for broader community consensus, I believe this topic deserves a dedicated discussion here.
The Current State of Affairs For over a decade, area:highway has evolved from an experimental proposal to the “de facto” standard for mapping the physical extent of road surfaces. Despite the wiki labeling it as “abandoned,” our database tells a different story: millions of objects, dense coverage in countries like Poland and Germany, and widespread support in data consumers like OsmAnd and StreetComplete.
However, the standard layer on OSM.org remains blind to this data. This disconnect creates a “chicken-and-egg” problem that is actively harming our map data.
1. The “Blind Mapper” Paradox (Quality Assurance) Currently, mappers who take the time to micromap intersections, turn lanes, and varying road widths are working without visual feedback. Unless they use third-party tools, they cannot see:
-
Geometry Errors: Gaps between the road area and the curb, or overlapping polygons.
-
Alignment Issues: Whether the linear centerline is truly centered within the physical carriageway.
-
Landuse Gaps: The unsightly “voids” that appear between landuse polygons (like forests) and the linear road network.
By refusing to render area:highway, we are not just failing to show “eye candy”; we are disabling the primary feedback loop that mappers use to validate their work. We cannot expect high-quality area data if we hide it from the people creating it.
2. Stopping “Tagging for the Renderer” We all know the frustration of seeing highway=pedestrian + area=yes used incorrectly on wide streets or traffic islands just to get them to render. This practice corrupts our routing graphs and confuses data consumers.
The Fix: If area:highway were rendered, mappers would have a legitimate, semantic way to achieve the visual result they want (representing the pavement area) without resorting to tagging misuse. Rendering area:highway is, in effect, a defensive measure for our routing data.
3. Addressing Technical Concerns I acknowledge the valid concerns raised by style maintainers regarding “Z-Order” complexity and database performance. The interaction between road areas, bridges, and tunnels is non-trivial in the current stack. However, looking at the success of OsmAnd, Streets GL, and the Polish Community Style, it is clear these challenges are solvable.
A Proposal for a Conservative Rollout I am not suggesting a radical overhaul that clutters the map at low zoom levels. I propose we advocate for a targeted implementation:
-
High Zoom Only (z19+): Render
area:highwayonly at the highest zoom levels where micromapping is relevant. This minimizes performance impact and visual noise. -
Simplified Layering: Start by rendering these areas strictly below the linear road network but above general landuse. This preserves the visibility of the routing graph (names, refs, directionality) while filling the visual gaps.
-
Subtle Styling: Use low-contrast colors that match existing highway fills to maintain the map’s legibility.
Why This Matters Now As OSM matures, “completeness” is shifting from adding missing roads to refining existing infrastructure. Micromapping is the future of active contribution in well-mapped regions. By refusing to render the primary tag used for this activity, we risk alienating our most dedicated contributors.
I invite you to read my full comment on the issue and share your thoughts. Is it time we treat area:highway not as an abandoned experiment, but as a critical component of our data model that deserves visibility.