Places are rendered twice

The IL wiki says:

But it appears this causes place names to be rendered twice on

I cannot seem to find such a guideline anywhere else on OSM, please correct me if I’m wrong.

Check out:
If there’s an issue with the rendering you should try to see if it’s everywhere or just and issue with a specific place.
Bad tagging is usually the issue.
Otherwise if there’s nothing wrong with the tagging you can open an issue for OSM and let them know they have a bug in their rendering rules.

I know there is an issue with the renderer; a “place” polygon is not rendered. But the proper solution is NOT putting a place tag on a polygon and a node. We end up with duplicates in searches and renderers, and we violate Good_practice#One_feature.2C_one_OSM_element.

Some places like Turkey have the same problem.

But many places in the world do not have the duplication issue because they use different tagging schemes. NY appears to use a “boundary:administrative” tag for the polygon, and not a place tag. Some avoid the polygon altogether. See this for more solutions.

Is the Wiki up to date? I am not really finding “place” polygons that have rendering issues.
Edit: It appears landuse=residential is the one that’s rendering the names when combined with place.

I’ve scanned many cities and countries and I believe we use the wrong tags.

No one puts the place=* tag on both a landuse=residential and a node like we do.

Places have a type=boundary relation, indicating the outer polygon, and a node for the center. The node is a member of the relation as label or admin_centre.

In some cases, I’ve seen only a landuse=residential,place=* (usually suburb or neighborhood), with no relation.

Some place borders also tagged by landuse=residential and make a text label for it.
So landuse=residential could be moved to another new way/polygon which usually smaller than entire place border.

To clarify: There should be exactly one place tag per place. So far these are the schemes I found:

  • Only a place node.
  • A place node which is an admin_centre/label member of an administrative boundary relation. (If there’s landuse=residential, it’s not tagged with place and it has no name).
  • a landuse=residential with a place tag and without a central place node. (So far I’ve seen this for small things like neighborhoods and suburbs)

What we currently do:

  • A place node, a landuse=residential with a place tag, and an admin boundary relation, with or without the admin_centre/label member. The result is search and rendering duplication. e.g. haifa shows up as a city and a residential area.

Edit: fixed wording errors.

I propose we remove/move place, name, population, etc tags from all landuse=residential, unless the place has no central node. I think I can write a script for that. Is that acceptable?

I think there was a problem on Mapnik with suburbs defined as area - the name is not displayed in most cases.
So I’ve added named node to have a name on map.
We should make a table with all combinations and find which of them rendered good at Mapnik.

On areas, a place tag will not render a name. But if you add landuse=residential, place=suburb, name=*, the name will render thanks to landuse=residential.

Okay, let me revise my proposal:

if it has an admin boundary, add the node as admin_centre or label, and moveall tags from the landuse=residential area to the central node. (The area would have the landuse=residential tag only).

If it has no admin boundary and it’s a suburb or neighborhood or small village (larger things always have a boundary in Israel), only keep an area with landuse=residential, place=, name=, and remove the center node. Move all tags from center node to the area.

Please keep the population tag on residential areas intact.
I plan to use it to remove cluttering details from cities in the Israel MTB map while still showing them in small towns and villages. Unlike the place tag it shouldn’t cause rendering problems in other maps.


I’ll start small and try cleaning up a place or two, and see how well they render.

Here’s the test result.

Case 1:

[Daliyat Al Karmel]( al-Karmel)

It renders once, shows up in search results once. Seems perfect. I also retained the population tag on the residential area.

All relevant primitives:

case 2:

As stated earlier, if the place is tiny and has no admin boundary (small villages, neighborhoods, suburbs), I think we should either have:

  1. A central place node only, with no area whatsoever.
  2. No central node, and just a single area with both landuse=residential and a place tag. The landuse tag will make the name render.

Todo test this.

Some minor observations:

  • I think name tag must be perfectly the same for the boundary and the place node, otherwise Nominatim will show duplicates.

  • If there’s a landuse=residential,place=,name=, and a place node, I think Nominatim will not show duplicates if the name tag is perfectly the same, but there will still be double rendering.

That could work too, but in my opinion it’s less cluttered to just use landuse=residential+place+name on one area if there’s no known administrative boundary, because in such cases the exact place boundary isn’t really known and a distinction between the landuse and the place is not important, I think.

When the admin boundary is known tagging like “case 1” above should be optimal.

Does everyone agree we should retag everything which has an admin boundary just like Daliat el Carmel and Osfiya are currently tagged?

We should do whatever the rest of the world does; we shouldn’t implement our own data model.

(I think that’s exactly what you’re proposing.)

P.S. I am a bit surprised that the “name” tag appears both on the relation and on the admin_centre node.