Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Label sizes too similar between Istanbul and neighbors #278

Open
wipfli opened this issue Jul 29, 2024 · 1 comment
Open

Label sizes too similar between Istanbul and neighbors #278

wipfli opened this issue Jul 29, 2024 · 1 comment

Comments

@wipfli
Copy link
Collaborator

wipfli commented Jul 29, 2024

I find that the label for Istanbul looks too similar in size to the neighboring quarters and towns:

image

https://maps.protomaps.com/#map=10.98/41.0111/29.0027&theme=light&tiles=https://build.protomaps.com/20240729.pmtiles

QRank might be of help here:

image

https://wipfli.github.io/qrank-map/#map=10.98/41.0111/29.0027

@nvkelso
Copy link
Collaborator

nvkelso commented Jul 29, 2024

Great observation! Let's dive in...

Besides the city of Istanbul label, most of the labels in around the big city should really be neighbourhoods and/or localadmin of some type, see how Who's On First has it setup here (WIP, blog post forthcoming):

image image

Looking at the OSM data that Protomaps uses, there are mostly place=suburb (to kind=neighbourhood) with a few place=quarter (to kind=macrohood) and less common place=town (to kind=locality).

In your screenshot most of the "localities" have a population of more than 250,000 people, while Istanbul proper has more than 15,000,000. So using OSM data we do get "too many" localities, but they at least have different population sizes and we can adjust the style using that indicator.

Right now the style only size grades by above or below a single population_rank which, while it does vary a tiny bit by zoom, is too coarse. Really there should be several grades of city labels, more like:

  • very large large place labels for cities say over 1M people
  • large place labels for cities say over 250k people
  • medium place labels for cities say over 50k
  • small place labels for cities say over 5k
  • very small place labels for tiny cities / no population cities

There doesn't have to be a huge range of text sizes, but more than what we have now would improve legibility and hierarchy. The biggest cities should be really big text compared to the smaller cities, though, and possibly even bolded for some zooms.

Which could look something like (from that WOF example linked above, referencing the population rank breaks here):

"text-size": [
	"interpolate",
	["linear"],
	["zoom"],
	4,
	[
		"case",
		[">=", ["get", "pmap:population_rank"], 11],
		12,
		11
	],
	6.99,
	[
		"case",
		[">=", ["get", "pmap:population_rank"], 11],
		13,
		[">=", ["get", "pmap:population_rank"], 9],
		12,
		[">=", ["get", "pmap:population_rank"], 7],
		11,
		[">=", ["get", "pmap:population_rank"], 6],
		10,
		10,
	],
	10,
	[
		"case",
		[">=", ["get", "pmap:population_rank"], 11],
		16,
		[">=", ["get", "pmap:population_rank"], 9],
		15,
		[">=", ["get", "pmap:population_rank"], 7],
		14,
		[">=", ["get", "pmap:population_rank"], 4],
		12,
		[">=", ["get", "pmap:population_rank"], 2],
		11,
		10,
	],
	11,
	[
		"case",
		[">=", ["get", "pmap:population_rank"], 11],
		20,
		[">=", ["get", "pmap:population_rank"], 9],
		18,
		[">=", ["get", "pmap:population_rank"], 7],
		16,
		[">=", ["get", "pmap:population_rank"], 4],
		15,
		[">=", ["get", "pmap:population_rank"], 2],
		14,
		[">=", ["get", "pmap:population_rank"], 1],
		13,
		11,
	],
	13,
	[
		"case",
		[">=", ["get", "pmap:population_rank"], 11],
		22,
		[">=", ["get", "pmap:population_rank"], 9],
		20,
		[">=", ["get", "pmap:population_rank"], 7],
		18,
		[">=", ["get", "pmap:population_rank"], 4],
		17,
		[">=", ["get", "pmap:population_rank"], 2],
		16,
		[">=", ["get", "pmap:population_rank"], 1],
		15,
		12,
	],
	15,
	[
		"case",
		[">=", ["get", "pmap:population_rank"], 11],
		24,
		[">=", ["get", "pmap:population_rank"], 9],
		22,
		[">=", ["get", "pmap:population_rank"], 7],
		20,
		[">=", ["get", "pmap:population_rank"], 4],
		19,
		[">=", ["get", "pmap:population_rank"], 2],
		18,
		[">=", ["get", "pmap:population_rank"], 1],
		17,
		16,
	],
],

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants