From 55ff6a442809e60b990d4b24eddda43bdc577e93 Mon Sep 17 00:00:00 2001 From: qqz003 Date: Tue, 24 Jun 2025 09:37:27 +0800 Subject: [PATCH] Fix the symbol blink issue by only placing the symbol in current level (#3534) Co-authored-by: Xiaolian Qin --- src/mbgl/text/placement.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp index fe774da2e..71c2b92bf 100644 --- a/src/mbgl/text/placement.cpp +++ b/src/mbgl/text/placement.cpp @@ -276,6 +276,12 @@ JointPlacement Placement::placeSymbol(const SymbolInstance& symbolInstance, cons // a parent tile that _should_ be placed. return kUnplaced; } + + // Place the symbol only at the current level to prevent it from blinking during the transition. + if (ctx.getOverscaledID().overscaledZ != int(placementZoom)) { + return kUnplaced; + } + const SymbolBucket& bucket = ctx.getBucket(); const mat4& posMatrix = ctx.getRenderTile().matrix; const auto& collisionGroup = ctx.collisionGroup;