Skip to content

Subject: Symbol labels on vector-tile polygons — collision hiding and cross-tile duplicates #13681

Description

@AoliAoCHEN

mapbox-gl-js version

v3.1.0

Browser and version

Chrome / Edge (recent). Not browser-specific in our testing.

Expected behavior

Each visible polygon should show one readable label. A polygon clipped across tiles should not produce multiple labels for the same feature.

Actual behavior

We consistently see two problems:

Collision hiding — With default placement (text-allow-overlap: false), many labels disappear in dense areas even when the polygon is visible and zoom constraints are met. Labels flicker in/out while panning.

Cross-tile duplicates — When one polygon spans multiple tiles, the same name often appears 2–4 times near tile boundaries, because placement runs on each tile-clipped geometry fragment.

We also tried text-allow-overlap: true with text-ignore-placement: true and symbol-avoid-edges: false. That shows more labels, but duplicates and overlap get worse. We have not found a satisfactory configuration that addresses both issues.

Steps to reproduce

1.Load a vector source with polygon .pbf tiles.
2.Add fill + symbol layers on the same source-layer.
3.Set 'text-field': ['get', '<name_field>'].
4.Zoom to 16+ and pan across tile boundaries.
5.Observe missing labels (default placement) and/or duplicate labels (overlap enabled).

Link to the demonstration

No response

Steps to trigger the unexpected behavior

No response

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions