I've been searching for a while how different map engines calculate zoom level for place names. I've found that OSM uses a mixture of type and population of a place, but other engines like Google and Mapbox seem to ignore population at all. I see that Google somehow uses roads to calculate the level for a place.
What parameters do engines usually use to calculate the rank (in addition to population)? I guess the algorithm should be pretty simple, given the amount of geodata. And what parameters can be used to create more or less even distribution of names on the map?