Skip to content

Stop --extend-zooms-if-still-dropping when zooming doesn't help - #386

Draft
ThibaudDauce wants to merge 1 commit into
felt:mainfrom
opendatateam:fix/extend-zooms-colocated-features
Draft

Stop --extend-zooms-if-still-dropping when zooming doesn't help#386
ThibaudDauce wants to merge 1 commit into
felt:mainfrom
opendatateam:fix/extend-zooms-colocated-features

Conversation

@ThibaudDauce

@ThibaudDauce ThibaudDauce commented Apr 2, 2026

Copy link
Copy Markdown

When features are co-located (identical coordinates), zooming in cannot resolve tile overflow because the same features always end up in the same tile regardless of resolution. Previously this caused tippecanoe to loop from the calculated maxzoom all the way to zoom 24, wasting time generating tiles that never improve.

After the first zoom extension, compare the worst tile's feature count and size with the previous zoom level. If neither metric improved, stop extending because further zooming is futile.

Not working in a lot of cases, I think we can early return only if the distance between all points is 0. Will try this next.

Maybe fixes #338, #378

@ThibaudDauce
ThibaudDauce force-pushed the fix/extend-zooms-colocated-features branch from 2ac32ac to 894c2a1 Compare April 6, 2026 10:26
When many features share identical coordinates, zooming in cannot
resolve tile overflow because co-located features always end up in the
same sub-tile regardless of resolution.

Track whether all features in each overflowing tile share the same
quadkey index. When every overflowing tile across all threads contains
only co-located features, stop extending zoom levels since further
subdivision is futile.

Also skip generating child tiles for overflowing tiles where all
features are co-located, avoiding redundant processing at deeper zooms.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Endless “sparsest X %” loop when --coalesce-densest-as-needed --extend-zooms-if-still-dropping

1 participant