unclusteredNodes

fun unclusteredNodes(nodes: List<Node>, zoom: Int, radiusPx: Int, minPoints: Int, maxClusterZoom: Int): List<Node>(source)

The nodes clustering will leave standing on their own at zoom.

Both the chips and the precision circles are only wanted for these. Clustering decides the split inside the source at render time, and there is no API that reports it back, so this applies the same rule supercluster does: a point joins a cluster when at least minPoints points fall within radiusPx of each other in tile pixels. Its own indexes are built per whole zoom level, which is why the caller should pass a floored zoom — it also keeps this off the recompose path for the fractional zoom of a pinch.

Distances are measured in Web Mercator world pixels, the space clustering itself works in, rather than in degrees — a degree of longitude is a very different distance at the top of the map than at the equator.