A matching development SDK with commonLineSymbols also supports shared planar line symbols, including true per-glyph curved geometry, target ownership, joint icon/text groups and shared budgets. Earlier point-only scope and pending line-symbol notes below are superseded for this bounded subset. Complex shaping, tilted/globe/terrain placement and complete road stitching remain pending.
Symbol collision policy expressions
Shared point-symbol icon/text allow-overlap, ignore-placement and optional accept boolean constants or expressions. Icon-padding/text-padding accept constants or numeric expressions in 0..128 logical pixels. Allow/ignore/optional default to false; padding defaults to 2.
map.setLayoutProperty('icons','icon-allow-overlap', ['get','allowOverlap']);
map.setLayoutProperty('icons','icon-ignore-placement', ['get','ignorePlacement']);
map.setLayoutProperty('icons','icon-padding', ['get','padding']);
map.setLayoutProperty('labels','text-optional', ['get','textOptional']);
map.setGlobalStateProperty('overlap', false);
map.setLayoutProperty('labels','text-allow-overlap',
['boolean',['global-state','overlap'],false]);
await map.sqs.flush({render:true});
Policies evaluate per feature from attributes, zoom and global state. Allow-overlap controls whether existing boxes can hide a component; ignore-placement controls whether that component occupies collision space. Joint optional dependencies remain: text-optional allows an image to survive a failed text placement; icon-optional does the reverse. Invalid types/ranges reject the candidate instead of silently using defaults.
Within the shared collision domain, dynamic auto ordering uses stable viewport ordering if any feature in the layer requires it. Symbol-sort-key and symbol-z-order provide explicit ordering. Independent URL-basemap collision domains, complete MapLibre ordering/line placement and integer-zoom layout policy remain separate work. Layout still rejects feature-state.
The portable script contains nine actual native QuickJS/browser main-thread/Worker checks. Joint optional dependencies have a focused model. Software-GPU results do not imply mobile or other-machine acceptance.
08.39 aligns shared symbol integer layout zoom and fractional paint zoom; see the layout zoom rule.