Why Your Groups Dots Disappear When You Zoom Out

I was debugging a map rendering issue for a side project last month, a Mapbox layer that plotted delivery waypoints across a metro area. I had 8 markers on the map, all representing distinct locations spread across roughly fifteen miles of city. At street-level zoom, everything looked clean. Then I zoomed out to see the full metro view, and the markers collapsed into what looked like a single dot. I stared at it, convinced I had a data bug, before realizing they were all still there, just stacked on top of each other because the pixel distance between their geographic coordinates had shrunk below the width of the marker icons.

Why Fixed-Size Markers Break at Low Zoom

The Coordinate-to-Pixel Problem

Every map marker has a geographic position in latitude and longitude, but the marker itself renders as a fixed number of pixels on screen regardless of zoom level. At high zoom, those pixels represent a few meters of real-world space, and at low zoom, the same pixel count might cover several miles. Two markers that are a quarter mile apart in the real world can overlap completely when the zoom level compresses that distance into fewer pixels than the marker width. The root cause is straightforward: standard map rendering treats every marker as an independent element with no awareness of its neighbors, so each one draws at full size without checking whether another marker already occupies those same pixels. That sent me down a rabbit hole about how map SDKs handle marker density at different zoom levels, and what I found was less intuitive than I expected. (Technically this is a Mercator projection issue, where the ratio of meters-per-pixel changes exponentially with each zoom step, but the practical result is the same: zoom out enough and separate markers become a single blob.)

It Gets Worse With Groups

My friend Anil experienced this firsthand on a group hike last fall. He was tracking our hiking group on his phone, zoomed out to see where everyone was relative to the trailhead, and thought two people had left because their dots merged into one. He spent ten minutes texting them before someone pointed out he just needed to zoom back in. The overlap probability increases faster than the group size does, which is why this is barely noticeable with a pair of markers but becomes a constant issue once you have five or more on the same stretch of road.

How Adaptive Rendering Solves It

Clustering vs. Scaling

Clustering groups nearby markers into a single circle with a count badge, which works for massive datasets like store locators but feels wrong for a group of friends where you want individuals, not a number. The alternative is adaptive scaling, where markers change representation based on zoom: full-sized labels up close, shrinking and simplifying as you pull back. Konvoyage uses adaptive scaling because a cluster badge tells you almost nothing useful about who is actually where.

What Happens on Each Zoom Change

The renderer recalculates on every zoom event, checking pixel distance between all markers in the viewport. If two would overlap at their current size, it shrinks them, offsets them, or switches to a minimal dot that takes fewer pixels, maintaining distinctness at every scale.

Why This Matters More Than It Sounds

When markers overlap invisibly, you get false absences: fewer dots than people, which makes someone start wondering if a group member missed a turn or pulled over without saying anything. The data is correct but the rendering made it look wrong, and that kind of misinformation is worse than having no data at all. I used to think the fix was just making markers smaller, but smaller markers are harder to tap and still stack at low zoom. The actual solution is markers that know about each other and adjust on the fly, so nobody zooms out and concludes half the group vanished.

Leave a Comment