hotosm / HDM-CartoCSS

CartoCSS project focused on the Humanitarian Data Model
Other
136 stars 41 forks source link

Not rendering every country capital in the map #281

Closed naoliv closed 6 years ago

naoliv commented 8 years ago

As we can see at https://www.openstreetmap.org/#map=5/-17.686/-58.491&layers=H not every country has its capital properly rendered in the map (with its name and a star):

At least Brazil and Peru are missing it.

What exactly HDM is using to render them?

I was thinking that the criteria was a node with admin_level=2 (since Brasília lacks it), but Lima has it and isn't rendered too.

Whatever the criteria is, maybe there is some kind of problem with it?

yohanboniface commented 8 years ago

This is the bit of SQL:

CASE WHEN capital='yes' AND admin_level='2' THEN 'country' ELSE NULL END AS is_capital

And a bit of context: https://github.com/hotosm/HDM-CartoCSS/pull/130

skorasaurus commented 8 years ago

Investigating this.

Lima looks to be an odd case: my hunch is that its place tag is "neighbourhood;city" is breaking things.

Brasilia doesn't appear to have any abnormal tags at the moment.

I believe those are the only two whose capitals aren't be properly displayed. At some zooms, Buenos Aires is not displaying because its label collides with the capital of Uruguay, Montevideo

naoliv commented 8 years ago

Is it possible to query the admin_centre node with capital=yes of the admin_level=2 relation instead?

Specially Brasília, it's part of an admin_level=2, admin_level=4 and an admin_level=8; while some people say that it should use the highest level (admin_level=2) in the node, I don't agree (as the relations are already properly representing the correct values).

skorasaurus commented 8 years ago

@naoliv are there any other capitals besides Lima et Brasilia that you don't see and expect to see?

naoliv commented 8 years ago

With a very quick look (so probably I am missing some countries) I found:

Cockburn Town isn't displayed too (likewise Brasília, it lacks admin_level=2)

With Montserrat I guess it will be another exception: Plymouth has a capital role in the relation and Brades the admin_centre role. Wikipedia says that Plymouth is the de jure capital and Brades the de facto one. I don't know which one should be displayed (both?).

Ouagadougou is admin_centre of Burkina Faso, but it has admin_level=8

Porto-Novo (admin_centre of Benin) also lacks admin_level=2

Abuja (admin_centre of Nigeria) has admin_level=2, but isn't displayed, probably because it has capital=2 instead capital=yes

Vaiaku (from Tuvalu) lacks admin_level

Dhaka (from Bangladesh) has capital=2 and no admin_level

Fakaofo (from Tokelau) basically lacks everything, even a name

At least giving this very quick look, I guess that, if possible, querying for the admin_centre node of admin_level=2 relations should give the most satisfactory results.

Zalitoar commented 7 years ago

Hi people! At Latin American community's group in Telegram, we were talking about this and we made some editions. we added to Brasilia, Asunción and Lima (capitals of Brasil, Paraguay and Peru) the admin_level=2 tag so we think that now they will appear as capitals.

Looking it in overpass-turbo... (admin_level=2 and capital=yes) appears as the following image: image

yohanboniface commented 6 years ago

Seems like this can be closed. Thanks @Zalitoar !