How to tag this unusual building floor layout

I have fully surveyed a mall in my city that is full of slopes. Now, I want to indoor map it. However, due to sloped terrain, its floor layout is unusual, as shown in this cross-section visualization I made:

Basement 5 (B5), Upper Basement (UB), Lower Ground (LG), and Upper Ground (UG) all interface the ground.

How should I tag this (especially when it comes to level=)?

Based on my knowledge, the building is building:levels=9, a shop at Basement 5 is level=0 + level:ref=B5, a shop at Lower ground is level=6 + level:ref=LG ecc.

1 Like

Why building:levels=9, if I may ask? Shouldn’t it be 8 since we’re counting from 0?

Also, there is no tag to indicate levels that interface with ground? In this case, LG is the primary entrance, and people generally don’t regard B5 as the ground floor.

Also also, interesting that you coupled level:ref in each POI, and not in the level relation with indoor=level.

We’re numbering from 0 for the purpose of the level tag, but building:levels we’re counting how many levels there are. The highest level value in a building with building:levels=9 would be level=8.

Not yet, unfortunately. Or at least only very indirectly. (You could perhaps check whether the level has an entrance=* node which is connected to a highway=* without tags such as bridge=*)

You do have the option of using min_level=-5 and max_level=3 on the building outline to shift the range of level values from [0, 8] to [-5, 3].

Unfortunately, indoor=level elements are not yet widely supported. But I agree that this would be less redundant than copying the level:ref onto each POI.

Yes, it is either 9 or 3 building levels, because we only count building levels over ground (although the naming suggests that the “lower ground” is also reaching out of the ground and it could be 4 building levels).
The basement levels do not count to the building:levels, nor do roof levels (only the gods of OSM know why), so depending on your choice for the building:levels, you should add
building:levels:underground=0 or 6 or 5.

Actual basement levels do not count towards building:levels, but the diagram shows that these levels are above-ground toward one side because of the sloped terrain – despite their name.

And what matters for counting building:levels is where terrain is lowest. So if that diagram is correct, it’s building:levels=9.

3 Likes

it is kind of blurry. The fact they name it “basement” is an indication how it is perceived. It is also not defined what “terrain” means, is it any surface not inside the building? E.g. often there are ramps leading to a basement level, is the ground right before the ramp enters the building “terrain”? And if not, what if there is a small strip of terrain besides the ramp? And if the strip is wider, is there a limit where it turns from “ramp” into “terrain”? IMHO a more sensible definition would have included the main entrance(s). Around here, it is very common that the inner courtyards of buildings are 1-2 levels below the ground level at the street. The general perception is the areas around these is underground unless there is a connection around the building without a step in the terrain.

E.g. here:

the left building has its entrance from the left street, the terrain runs around the building, so the ground level is perceived to be inside the hole they dug, while the same building on the right, which has its entrance to the road in the bottom, and which has a ramp down to the same level as the terrain of the right building, is perceived to have its ground level one level above (IMHO)

Another example is here, a supermarket 2 levels below the surrounding ground (on the street level):

ground view:

My impression is that tagging guidance on wiki is rather clear for this case - that Tordanik is correct.

But I rather doubt any data consumers are depending strongly on it, so the most important thing will be probably for the tagging practice to stay consistent within a region, if only to avoid unintentional edit wars.