You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(web): declutter text by S-52 importance, not anchor draw-order
The general text fanned into nine per-anchor style layers (text-<halign>-
<valign>) because text-anchor was historically not data-driven. MapLibre keeps
one collision index but places symbols layer-by-layer, so a label's survival
depended on WHICH anchor sublayer drew first (center-anchored always beat
right-anchored) rather than on its importance.
MapLibre 5.24 makes text-anchor and symbol-sort-key data-driven, so collapse
the nine layers into one `text` layer:
- text-anchor: data-driven match on the baked halign/valign (placement
unchanged).
- symbol-sort-key: ranked by S-52 §14.4 text group (tgrp) — important text (11)
> names (21/26/29) > descriptive, minus font size for within-tier ties. Lower
wins, so a dense approach thins to the navigationally important labels.
- light-text keeps its own earlier always-wins layer, now with a size-based
sort-key.
Collapse the two live updaters (setScheme restyle, setMariner text-group
filter) onto the single `text` id and drop the now-dead TEXT_VARIANTS/textAnchor.
Pure client change, no re-bake. Verified on server-mode d5 Annapolis: same
label budget but channel/feature names now survive collisions; text-group
toggle and day/night restyle still work.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments