Skip to main content

What the style needs from the tileset

Our basemap comes from a planetiler fork of the OpenMapTiles profile, built by alpimaps_data_generator. This page is the running list of what the styles want out of it and what each item buys — the input to a schema change, not a record of one.

Everything here was read off a real build with the style preview gaps panel: Rhône-Alpes, 2026-08-28, planetiler 8f911c0c, OMT 3.16.0, compared against OpenFreeMap.

Nothing on this list blocks a style from rendering. A style that reads a field the tiles do not carry has to fall back on its own — see the shield fallback.

Blocking a feature already written

FieldWhereBuys
networktransportation_nameroad shields. Commented out at TransportationName.java:268. Without it no shield can tell an interstate from a departmental road, and every ref falls to the neutral plate
iso_a2transportation_nameshield colours per country. A French N is red, a Dutch N is yellow, a Belgian N is blue; the ref's letter alone cannot separate them. MapTiler's road_label carries it for exactly this reason
maritime, classboundarya coastline boundary cannot be told from a land one, so both draw the same

network is worth more than the shields. Stock OMT collapses the OSM route network onto a 14-value enum — us-interstate, ca-transcanada, gb-motorway, e-road, … — which has no French, German or Italian value at all. Emitting the raw OSM network (FR:A-road, DE:BAB) instead lets the style read the route class directly rather than guessing it from the ref's first letter, and it is how OSM Americana does per-country shields.

Wanted by the OpenStreetMap-oriented variants

Layer or fieldBuys
treecanopy dots. Both MapTiler v4 and Mapbox Standard carry one
street_furniturebenches, crossings, traffic signals, drinking water, picnic tables
motorway_junctionnumbered exits, with their own plate
poi.networkmetro and RER roundels — the badge is per network, and class/subclass cannot name one
place.iso_a2country-keyed place labels
building.coloura mapped building colour instead of one flat fill
poi.agg_stopgrouping the platforms of one station into a single label
expressway, horse, mtb_scaleon transportation, all three commented out in the fork

Not wanted — do not add these

  • ref_length. MapLibre has length, CartoCSS has length() (CartoCSSMapnikTranslator.cpp:606), and one stretchable sprite covers every ref length, so there is no per-length artwork to pick.
  • route_1_*route_n_*. Hiking and cycling relations already live in their own archive. On transportation_name they are the single largest field group in stock OMT — 80-odd columns.
  • A localized name equal to the default. The fork already drops those and should keep doing it; the style coalesces name:xx onto name.

The rule for a missing field

A field this list asks for is read with a fallback, never assumed. road-shield-plate reads ["coalesce", ["get", "iso_a2"], ""], so a tileset without it takes no country branch and colours the plate by class instead — grey for a motorway, white for the rest. Adding iso_a2 to the tiles changes the picture without touching the style, and removing it again is not a crash.

The same applies the other way: the fork carries fields stock OpenMapTiles does not, and the styles should use them where they are and cope where they are not.

Already in the fork — do not re-add

transportation carries tracktype, sac_scale, surface_detail, difficulty, maxspeed, official, access, surface, oneway, toll, bicycle, foot. There are building_name, landcover_name and landuse_name layers, and a Route.java for route relations. Contours and terrain-RGB are separate archives.