mapbox / mapbox/mapbox-maps-android

Persistent Marker Flickering on Android Map View

Open
#2,693 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug :beetle:
Dominant language
Kotlin
Stars
578
Forks
161
PR merge metrics
No merged PRs in 30d

Description

Environment

  • Android OS version: [e.g., Android 13 (API 33)]
  • Devices affected: [e.g., Pixel 7 Pro, Samsung S23, Android Emulator]
  • Maps SDK Version: [e.g., v10.16.1 or v11.0.0]

Observed behavior and steps to reproduce

We are experiencing a visual regression where map markers (annotations) flicker, flash, or temporarily vanish and reappear. This is most noticeable during camera movement or when the map state is updated.

Steps to reproduce:

  1. Initialize MapView.
  2. Add a data source containing point annotations (using [e.g., PointAnnotationManager or a SymbolLayer]).
  3. Pan, zoom, or rotate the map camera quickly.
  4. Observation: Markers do not move smoothly with the map; instead, they flicker or toggle visibility rapidly.

Evidence

https://github.com/user-attachments/assets/4e1e4d1d-8c92-4b23-8d7d-9455daf294a3

Expected behavior

The markers should remain visually stable and anchored to their coordinates without flashing. The visibility state should be consistent regardless of camera velocity or minor zoom level changes.

Notes / preliminary analysis

We suspect the issue originates from the rendering engine's collision detection or Z-ordering logic.

  • Collision Logic: It appears the engine is recalculating icon-allow-overlap or text-allow-overlap on every frame, causing icons to be hidden and reshown unnecessarily.
  • View Annotations: If using View Annotations, there may be a desynchronization between the Android View system and the GL Surface updates.
  • Texture Atlas: If using custom bitmaps, the symbol layer might be reloading the image source repeatedly.

Additional links and references

  • Code Snippet:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the supplied reproduction steps and evidence, then inspect the referenced GlobeView.kt and GlobeNativeComponent.ts files. Reproduce the flickering with MapView during camera movement and determine which annotation setup is affected; done means markers remain stable and anchored without flashing.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
computer-graphics, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.